AI-powered productivity platform. Decompose goals, focus deep, track progress.
FocusFlow bridges the gap between simple to-do lists and complex project management. The core innovation is AI Task Decomposition — paste a vague goal like "Launch a Shopify Store" and the AI breaks it into actionable, bite-sized subtasks.
Combined with a built-in Pomodoro focus timer, drag-and-drop task organization, and Supabase-backed accounts, FocusFlow transforms chaotic mental load into structured, executable flow.
| Feature | Description |
|---|---|
| 🔐 Accounts | Email/password auth via Supabase, with row-level security isolating each user's data |
| 🧠 AI Task Breakdown | OpenAI-powered decomposition of complex projects into manageable steps |
| ⏱️ Focus Timer | Pomodoro timer with presets, custom durations, and break tracking |
| 📋 Drag & Drop Tasks | Reactive fluid UI with DND Kit for effortless prioritization |
| 📊 Analytics | Recharts-powered dashboards — weekly sessions, priority breakdowns |
| 📅 Calendar | Monthly calendar with task indicators and daily task view |
| 🎨 Premium UI | Calm, glass-morphism design system with light/dark themes and 5 accent colors |
# Clone
git clone https://github.com/ibrahembuilds/focusflow.git
cd focusflow
# Install
npm install
# Configure environment (see .env.example)
cp .env.example .env
# Develop
npm run dev
# Build
npm run buildFocusFlow needs two services configured — see .env.example for the full list:
- Supabase — create a project, run
supabase/schema.sqlin the SQL editor, then setVITE_SUPABASE_URLandVITE_SUPABASE_ANON_KEY. - OpenAI — used by the AI task breakdown feature. The app deploys to Netlify; set
OPENAI_API_KEY(and optionallyOPENAI_MODEL) as environment variables in Netlify's site settings — they're read server-side by the edge function atnetlify/edge-functions/decompose.ts, never exposed to the browser.
src/
├── components/
│ ├── auth/ # Login, Signup, ProtectedRoute, AuthLayout
│ ├── Landing.tsx # Public marketing page
│ ├── Timer.tsx # Pomodoro with SVG ring
│ ├── TaskList.tsx # DND Kit drag-and-drop
│ ├── AIDecompose.tsx # OpenAI API integration
│ ├── Dashboard.tsx # Stats + weekly charts
│ ├── CalendarView.tsx # Monthly calendar
│ ├── Analytics.tsx # Recharts charts
│ ├── Sidebar.tsx # Navigation + account menu
│ ├── Settings.tsx # Config + data management
│ └── Seo.tsx # Per-route meta tags
├── lib/
│ ├── auth.tsx # Supabase Auth context
│ ├── supabase.ts # Supabase client
│ ├── sync.ts # Task/session sync with Supabase
│ └── api.ts # AI decompose API client
├── store.ts # Zustand state management
└── index.css # Full design system
- React 19 + TypeScript + Vite 8
- React Router 7 — routing and protected routes
- Supabase — auth and Postgres-backed data storage
- Zustand — state management
- DND Kit — drag and drop
- Recharts — data visualization
- Lucide React — icons
- OpenAI API — AI task decomposition
MIT © Ibrahem Ahmed
