An ADHD-friendly focus app with micro-tasks, timers, dopamine boosts, and gentle encouragement. Built with love.
- Micro-Tasks — Break goals into customizable time chunks with satisfying completions
- Focus Timer — Pomodoro-style timer (25/5) with customizable durations
- "Just 5 Minutes" — The lowest-barrier way to start focusing
- Floating Task Timer — Play any task and track time with a persistent floating bar
- Smart Planner — AI-powered chat that breaks down your goals into prioritized tasks
- Dopamine Menu — A customizable list of healthy dopamine-boosting activities
- Task Roulette — Can't decide? Spin the wheel!
- Rewards System — Points, levels, confetti celebrations, and shimmer animations
- Streak Tracker — Daily streaks with a grace day for off days
- Visual Progress — Weekly charts, daily stats, and progress rings
- Gentle Nudges — Encouraging affirmations and time-aware greetings
- Bilingual — Full English and French language support
npm install
npm run devOpen http://localhost:5173 in your browser.
The Smart Planner uses a Cloudflare Worker to securely proxy AI requests. The API key is stored as an encrypted secret on Cloudflare — it never reaches the browser or the git repository.
-
Install the Cloudflare CLI:
npm install -g wrangler
-
Log in (creates a free account if needed):
wrangler login
-
Install worker dependencies:
cd worker npm install -
Add your Groq API key as a secret (get one free at console.groq.com):
wrangler secret put GROQ_API_KEY
-
Deploy the worker:
wrangler deploy
-
Copy the worker URL from the output and update
.env.production:VITE_AI_API_URL=https://sara-ai.your-name.workers.dev
Run the worker locally alongside the frontend:
# Terminal 1: Worker
cd worker && npx wrangler dev
# Terminal 2: Frontend
npm run devThe frontend .env is pre-configured to use http://localhost:8787.
npm run deploy- iPhone: Open in Safari → tap Share → "Add to Home Screen"
- Android: Open in Chrome → tap menu → "Install app"
- Desktop: Click the install icon in the address bar
- API keys are stored as encrypted Cloudflare Worker secrets, never in source code
- The worker enforces CORS — only requests from the production domain are accepted
- IP-based rate limiting (10 requests/minute) prevents abuse
- Conversation history is truncated to prevent prompt injection via oversized payloads
- All user data (tasks, settings) is stored in the browser's localStorage only — nothing is sent to any server except the AI chat messages
- React 19 + TypeScript
- Vite 7
- Tailwind CSS v4
- Framer Motion 12
- Zustand 5 (state management)
- Cloudflare Workers (AI backend proxy)
- Groq / Llama 3.3 70B (open-source AI)
- canvas-confetti
- PWA via vite-plugin-pwa
AGPL-3.0 — See LICENSE for details.