A minimalist, mobile-first Progressive Web App that helps users define yearly goals, break them into monthly milestones, build daily habits, and reflect consistently.
- Read: docs/START_HERE.md
- Follow: docs/IMPLEMENTATION_CHECKLIST.md
- Live! π
- START_HERE.md - Overview & quick links
- IMPLEMENTATION_CHECKLIST.md - 7-step deployment
- QUICK_REFERENCE.md - 1-page cheat sheet
- SUPABASE_SETUP.md - Cloud configuration
- GITHUB_PAGES_DEPLOYMENT.md - Deploy guide
- COMPLETE_GUIDE.md - Full user guide
- TECH_STACK.md - Architecture & technology
npm install
npm run serve
# Visit http://localhost:8080Goal Accelerator PWA
A minimalist, mobile-first Progressive Web App that helps users define yearly goals, break them into monthly milestones, build daily habits, and reflect consistently β with hard constraints (max 6 goals & habits) to prevent overwhelm.
Designed to feel like a calm coach β not a spreadsheet.
The existing Google Sheet is powerful but:
- Visually overwhelming
- Desktop-first
- Not intuitive for daily use
- Too manual (checkbox grids, formulas)
- Encourages over-planning
Users need a guided, simple, mobile-first system that:
- Reduces cognitive load
- Encourages consistency
- Makes daily habit tracking frictionless
- Encourages reflection
- Prevents goal overload
- Launch MVP PWA
- Achieve <30 second daily interaction time
- Achieve 70%+ habit completion retention over 30 days
- Ship V1 in under 6 weeks
- Define what success means personally
- Identify weak life areas (Wheel of Life)
- Set β€6 yearly goals
- Break goals into actionable habits
- Track habits in under 30 seconds per day
- Reflect monthly and yearly
- Social features
- Multi-year tracking
- Gamification economy
- Leaderboards
- AI goal generation
- Unlimited goals/habits
- Native mobile apps
- Complex analytics dashboards
- Individual high-performer
- Self-directed
- Values simplicity
- Overwhelmed by overly complex systems
- Wants structure but not friction
- Welcome screen
- Define βWhat would make this year successful?β
- Complete Wheel of Life (slider-based)
- Create up to 6 yearly goals
- Plan current month only:
- Define monthly milestone
- Define smallest daily habit
- Land on current month dashboard
- Open app
- See today's habits
- Tap to complete
- See streak + strength update
- Close app
Target: <30 seconds
- App detects month end
- Prompts reflection
- User answers:
- What worked?
- What didnβt?
- What can I change?
- Shows month summary stats
- Prompts next month planning
- Define Success
- Large journal input
- Autosave
- Wheel of Life
- 8 sliders (0β10)
- Radar chart visualization
- Highlight lowest 2 categories
- Yearly Goals
- Max 6
- Required: category + title
- Optional: why
- Cannot add more than 6
- For current month only:
- Define monthly milestone per goal
- Define 1 habit per goal (max 6 habits total)
- Habit frequency: daily only (V1)
- Each habit displays:
- Title
- Streak (current month only)
- Strength % (month completion rate)
- Daily toggle:
- Tap = mark complete
- Animate fill
- If all habits complete β Golden Day
- Golden Day:
- Visual highlight
- Counter displayed
- Displays:
- Yearly goals completed count
- Monthly goals completed count
- Avg habit strength
- Monthly trend chart
- Wheel of Life comparison (start vs current)
- Weekly
- Optional prompt every Sunday
- Monthly
- Required before next month unlocks
- Yearly
- 7 guided questions
- Mobile-first
- Minimal cognitive load
- Hard constraints (max 6 goals/habits)
- Progressive disclosure
- Celebrate consistency
- Calm tone (non-judgmental)
- Daily active usage rate
- Habit completion rate
- Month-to-month retention
- % users who complete reflection
- Time-to-complete daily session
- Auth
- Database
- Basic CRUD
- Guided setup
- Habit tracking
- Streak logic
- Charts
- Wheel comparison
- Reflection system
- Service worker
- Offline support
- Deploy to GitHub Pages
- HTML
- Tailwind CSS
- Vanilla JS
- Supabase (Auth + Postgres)
- GitHub Pages (Static hosting)
- Client-side only PWA.
- Static frontend
- Supabase as BaaS
- No custom backend server
- Supabase RLS enabled
- users: Handled by Supabase Auth
- year_settings: Stores yearly success definitions
- wheel_of_life: Tracks life area scores
- yearly_goals: Stores yearly goals
- monthly_goals: Tracks monthly milestones
- habits: Tracks daily habits
- habit_logs: Logs daily habit completions
- reflections: Stores user reflections
(completed_days / total_days_in_month) * 100
- Query
habit_logsordered by date desc - Count consecutive
completed = true - Stop at first
false
- For date D:
- IF all habits for month have
completed = truefor date D - THEN
golden_day = true
- IF all habits for month have
- Store in derived calculation (no DB table required V1).
/: Month view/onboarding/dashboard/reflect/settings
Single-page architecture preferred.
manifest.jsonservice-worker.js- Offline caching of:
index.html- CSS
- JS
- Supabase requests require network
- Supabase Row Level Security
- All tables enforce:
user_id = auth.uid()
- Initial load < 2 seconds
- Habit toggle latency < 200ms
- Mobile Lighthouse score > 90
- Static files pushed to GitHub
- GitHub Pages enabled
- Supabase project URL + anon key stored in JS config
- Redirect URLs configured in Supabase
/index.html
/js/
app.js
supabase.js
habits.js
/styles/
tailwind.css
/manifest.json
/service-worker.js