Overview
Most planning tools handle one slice of a life: a to-do list here, a habit tracker there, a journal somewhere else. None of them connect the daily work back to the long-term goals it's supposed to serve, or help you reflect on how the week actually went.
Life Planner brings that whole system into one web app. Life areas hold nested goals, goals link to the tasks and habits that move them forward, and an AI coach reads that context and can turn a conversation into a scheduled day.
I built it over roughly six weeks in July and August 2026. Version 0.1.0 is deployed on Railway and in active, early-stage use.
What it does
Goals and plans
- Nested goal trees under life areas, with timeframes, status, and drag reordering
- A plan per goal linking its tasks, habits, and notes, plus a list of things to stop doing
- Projects with progress tracking
Tasks, habits, and calendar
- Tasks with priorities, recurrence, and timezone-aware due windows
- Tasks shareable by email with no account required
- Habits with streaks and a calendar week grid with a repeating weekly schedule
AI coach
- Uses your goals, habits, recent journal entries, and check-ins as context
- Schedules your day from chat as calendar blocks
- Available from a floating button anywhere in the app
Reflection
- Morning day-plan, evening reflection, and gratitude check-ins
- Journal with mood tracking and per-entry password protection
- Weekly review wizard with stats and an AI-generated insight
Focus and insights
- Work and rest focus sessions tied to goals and projects
- Charts for task completion, 12-week habit trends, 30-day mood, and focus time
- Four working-memory games, including Dual N-Back
Personal touches
- Animated time-of-day sky with optional weather effects and rain ambience
- 10 color themes and vision boards with image uploads
How it's built
A coach that acts on the plan
The coach runs on Claude Sonnet through the Anthropic API, with the user's goals, habits, recent journal entries, and check-ins in its context. When it schedules a day, it returns structured JSON that's validated with Zod before being turned into calendar blocks. Conversation history is saved.
Reminders that never send twice
A scheduler starts from the Next.js instrumentation hook and sends event reminders 15 minutes ahead, with check-in reminders by email through Resend. Each send first claims a database row with a date-scoped dedupe key, so restarts can't produce duplicates.
Private journal entries
Journal entries can each be password protected, and protected content is redacted on the server before it reaches the client.
An API with a service layer
Next.js route handlers form a versioned REST API over a service layer on PostgreSQL and Prisma, with a typed response envelope, an auth wrapper, pagination, Zod validation at the boundaries, and Swagger docs. The app keeps working when AI, email, or storage keys are missing.
Small, tested increments
It was built test-first with Vitest and Testing Library, ending up with 139 test files. 163 commits landed through 51 merged pull requests, and the schema grew through 35 Prisma migrations.