A proof-based habit tracking app. Habits only count when you prove them — no more self-reported streaks.
Done. lets you create daily habits and requires proof of completion before marking them done. Proof methods include:
- Camera + AI — Take a photo and an AI model verifies it matches your habit
- Buddy verification — Invite a friend to confirm your completion
- Sensor data — Use device sensors (steps, health data)
- External APIs — Connect to Apple Health, Strava, etc.
Other features:
- Streak tracking (current and best)
- Flexible scheduling (daily, weekdays, weekends)
- Predefined habit templates organized by category
- Buddy system for mutual accountability
- Light and dark mode
- Onboarding flow for new users
- Framework: React Native + Expo (managed workflow)
- Language: TypeScript
- Navigation: Expo Router (file-based)
- Styling: TailwindCSS via NativeWind
- Backend: Supabase (PostgreSQL, Auth, Storage, Edge Functions)
- Camera: expo-camera
- AI verification: OpenAI (via Supabase Edge Function)
- Animations: React Native Reanimated + Gesture Handler
- Node.js
- npm
- Expo CLI (
npm install -g expo-cli) - A Supabase project
- An OpenAI API key (for AI proof verification)
-
Clone and install dependencies
git clone <repo-url> cd done-app npm install
-
Set up environment variables
cp .env.example .env
Fill in your values:
EXPO_PUBLIC_SUPABASE_URL=your-supabase-url EXPO_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key OPENAI_API_KEY=your-openai-api-key -
Run database migrations
Apply the SQL migrations in
supabase/migrations/to your Supabase project. -
Start the dev server
npm start
Then press
ifor iOS simulator,afor Android emulator, orwfor web.
| Command | Description |
|---|---|
npm start |
Start the Expo dev server |
npm run ios |
Run on iOS simulator |
npm run android |
Run on Android emulator |
npm run web |
Run in the browser |
npm run lint |
Run ESLint |
app/
├── (auth)/ Auth screens (sign-in, sign-up, forgot-password)
├── (tabs)/ Main tabs (today, profile)
├── create-habit/ Habit creation flow
├── habit/ Habit detail, proof submission, editing
├── onboarding.tsx Onboarding carousel
└── _layout.tsx Root layout
components/ui/ Reusable UI components
contexts/ Auth context provider
hooks/ Data hooks (habits, logs, invitations)
lib/ Supabase client, types, theme, utilities
supabase/migrations/ Database schema migrations
- iOS
- Android
- Web