Yourentiredayononescreen
A single-user dashboard that syncs your calendar, tracks habits, runs timers, and talks to AI. Self-hosted on Vercel and Supabase.
Daily Timeline
Today's Briefing
Dismiss- 08:30 - Team standup
- 14:00 - Client call
- +2 more
- Deploy v1.0 changes
- Update API docs
- +1 more
- Ship landing page
Ask AI
April 2026
Focus Timer
Goals
+ AddHabits
+ AddToday's To-Dos
2/5Quick Links
+ LinkDaily Timeline
Today's Briefing
Dismiss- 08:30 - Team standup
- 14:00 - Client call
- +2 more
- Deploy v1.0 changes
- Update API docs
- +1 more
- Ship landing page
Ask AI
April 2026
Focus Timer
Goals
+ AddHabits
+ AddToday's To-Dos
2/5Quick Links
+ Link10 modules, one screen
Everything you need for your day, nothing you don't.
Daily Timeline
Daily Timeline
Drag-drop schedule blocks with two-way Google Calendar sync.
April 2026
Mini Calendar
Monthly calendar view with event indicators and timeline navigation.
Ask AI
Ask AI
Chat with 5 selectable AI models that can act on your dashboard.
Focus Timer
Pomodoro
Focus timer with push notifications and session logging.
Today's Briefing
Dismiss- 08:30 - Team standup
- 14:00 - Client call
- +2 more
- Deploy v1.0 changes
- Update API docs
- +1 more
- Ship landing page
Morning Briefing
Auto-generated daily summary of habits, goals, todos, and events.
Goals
+ AddGoals
Track daily, weekly, monthly, and long-term goals with completion state.
Habits
+ AddHabits
Daily and weekly habit tracking with streaks and completion rates.
Today's To-Dos
2/5Todos
Recurring tasks, timeline scheduling, and Apple Reminders import.
Quick Links
+ LinkQuick Links
Pinned URLs with favicons and XSS-hardened validation.
Weekly Review
7-day performance summary with habit rates, focus hours, and streaks.
Built for daily use
A closer look at the modules you will use every day.
Daily Timeline
Daily Timeline
A vertical timeline from 5am to midnight where you drag custom blocks to plan your day. Google Calendar events appear inline with clickable Join Meeting buttons. Syncs bidirectionally: create, update, or delete a block and the change propagates to GCal and back.
- Two-way Google Calendar sync with 30-day bulk fetch on load
- Auto-extend sync range when navigating to future or past days
- Drag-and-drop custom blocks with meeting link field
- Compact all-day event rendering above the hourly grid
Ask AI
An OpenRouter-powered chat panel with a model selector offering Gemini 2.5 Flash, MiniMax M1, DeepSeek V3, Qwen 2.5 72B, and Claude Haiku. The AI is timezone-aware and can execute action blocks to create todos, timeline blocks, goals, toggle habits, and complete todos directly from the conversation.
- 5 selectable models via OpenRouter (Gemini, MiniMax, DeepSeek, Qwen, Claude Haiku)
- Action blocks that create todos, timeline blocks, and goals from chat
- Toggle habits and complete todos via conversational commands
- Local timezone awareness for scheduling and date references
Pomodoro
A configurable Pomodoro timer with 15, 25, 45, and 60-minute presets. Uses the Web Audio API for completion beeps and sends push notifications when a session ends. Every completed session is logged to the database with timestamps, and a daily summary shows total focus minutes and session count.
- Customizable durations: 15, 25, 45, or 60 minutes
- Web Audio API beep on session completion
- Push notifications when timer finishes (even if tab is backgrounded)
- Session logging to database with timestamps
Habits
Track habits on a daily or weekly frequency. Each habit shows a streak counter with emoji tiers that increase as your streak grows. Weekly and monthly completion rates are calculated automatically and displayed per habit.
- Daily and weekly frequency options
- Streak counter with tiered emoji indicators
- Weekly completion rate calculated per habit
- Monthly completion rate calculated per habit
What powers it
Production stack, no vendor lock-in, fully self-hostable.
Next.js
App framework
App router with server components, API routes for calendar sync and AI chat, and static generation for public pages.
TypeScript
Type safety
Strict mode across the entire codebase with typed API responses, database rows, and component props.
Supabase
Database and auth
Postgres with Row Level Security, 9 versioned migrations, and a service-role key for server-side calendar sync.
Google Calendar API
Two-way calendar sync
OAuth 2.0 with CSRF state parameter, 30-day bulk fetch on load, and bidirectional create/update/delete sync.
OpenRouter
AI model gateway
Routes chat requests to 5 selectable models (Gemini 2.5 Flash, MiniMax M1, DeepSeek V3, Qwen 2.5 72B, Claude Haiku) with action-block execution.
Tailwind CSS
Styling
Utility-first CSS with dark mode support, consistent design tokens, and zero custom CSS files.
Vercel
Hosting and deploy
Zero-config deployment with automatic preview branches, edge functions for API routes, and global CDN.
PWA / Service Worker
Mobile experience
Add-to-Home-Screen install banner, push notifications for Pomodoro timers, and offline-ready caching.
Security defaults
Single-user does not mean single-effort security. Every layer is locked down.
HMAC-SHA256 session tokens
Sessions are signed with HMAC-SHA256 and stored in HttpOnly cookies with expiration. No JWTs, no localStorage tokens.
Timing-safe password comparison
Password verification uses constant-time comparison to prevent timing attacks from leaking valid credentials.
Brute-force rate limiting
Login is limited to 5 attempts per IP address with a 15-minute lockout window. Lockout state is tracked server-side.
OAuth CSRF protection
Google OAuth flow uses a random state parameter stored in an HttpOnly Secure cookie, validated on callback to prevent cross-site request forgery.
Row Level Security lockdown
Supabase RLS policies restrict all table access to the authenticated user. The google_oauth_tokens table gives zero access to the anon key.
Fail-closed in production
If SESSION_SECRET is missing at boot, the app refuses to start. No fallback to insecure defaults.
WCAG accessibility compliance
No viewport zoom restrictions (WCAG 1.4.4), proper theme-color meta tags, and semantic HTML throughout the PWA.
XSS prevention
Quick Links validates all URLs server-side and blocks javascript: schemes. User input is sanitized before rendering.