FlowState is an energy-aware productivity web app.
It helps you manage tasks while tracking session health signals such as energy level, error rate, velocity, and burnout risk.
- User auth flow (mocked locally): register, login, logout.
- Task management with per-task timers.
- Session telemetry engine:
velocity(tasks per hour)error rateenergy levelwork patternclassification (Deep Focus,Drifting,Struggling,Burnout Risk)- computed burnout risk score
- Recovery support:
- rest mode timer
- sound alerts when tasks/rest complete
- rest logging
- Analytics dashboard:
- energy vs velocity time series
- task difficulty distribution
- resilience summary metrics
- Theme support (light/dark)
- Settings for burnout sensitivity, energy decay rate, and user profile preferences
- Data export and reset controls
- React 19
- TypeScript
- Vite
- React Router
- Recharts
- Lucide icons
- Browser
localStoragefor persistence
App.tsx: route wiring and protected dashboard routescomponents/LandingPage.tsx: marketing/intro pagecomponents/Dashboard.tsx: core task/timer/telemetry UXcomponents/Analytics.tsx: charts and session analysis viewscomponents/Settings.tsx: user and engine preferencescontext/AuthContext.tsx: auth state managementcontext/ThemeContext.tsx: theme state managementlib/engagementEngine.ts: metric calculations and suggestionslib/storageService.ts: all persistence (tasks, logs, analytics, settings, timer/session state)lib/auth.ts: mock auth service
- Node.js 18+ (Node.js 20+ recommended)
npm installnpm run devnpm run buildnpm run previewFlowState stores app state in localStorage using keys like:
flowstate_userflowstate_tasksflowstate_task_logsflowstate_rest_logsflowstate_settingsflowstate_analytics_historyflowstate_timer_stateflowstate_session_stats
This means data is local to the browser/profile by default.
- Auth is mocked and not secure for production use.
- No real backend/database integration yet.
- Supabase client in
lib/supabaseClient.tsis currently a placeholder. - Multi-device sync is not implemented (except manual export/import workflows you add later).
- Replace mock auth with real authentication.
- Move persistence from
localStorageto a backend (for sync and durability). - Add automated tests for engagement engine and timer behavior.
- Add true import flow to complement export.