A sample iOS app demonstrating real-time data sync with Convex DB and authentication via Clerk. Built with SwiftUI.
- User authentication (Sign Up, Sign In) via Clerk
- Real-time Todo list using Convex DB
- Modular SwiftUI views
- Sample backend functions in TypeScript
ConvexQuickStart/ # iOS SwiftUI app
ConvexQuickStartTests/ # Unit tests
ConvexQuickStartUITests/ # UI tests
convex/ # Convex backend (TypeScript)
sampleData.jsonl # Sample data
-
Clone the repo
git clone <repo-url> cd ConvexQuickStart touch .env.local echo "CONVEX_DEPLOYMENT=<convex-deployment>" >> .env.local echo "CONVEX_URL=<convex-url>" >> .env.local
-
Convex Backend
- Install Convex CLI:
npm install -g convex@latest - Initialize Convex:
convex init - Deploy backend:
convex deploy - Update Convex URL in the iOS app
- Install Convex CLI:
-
Clerk Setup
- Create a Clerk project
- Get your Clerk publishable key and add it to the app
-
Run the iOS App
- Open
ConvexQuickStart.xcodeprojin Xcode - Build and run
- Open
- Sign up or sign in
- Add/edit/delete todo items (real-time sync)
- Functions:
convex/tasks.ts - Data models:
convex/_generated/
- Unit:
ConvexQuickStartTests/ - UI:
ConvexQuickStartUITests/













