ChronoMind — AI-Powered Contextual Clock & Timer
Product: ChronoMind
Repo: learning_ai_clock
Version: 0.1 (MVP)
Date: February 2026
Author: Saravana
1. Origin (Raw Idea)
Build an alarm clock to set a specified date and time and also give a warning maybe with a configured 1 hour to 2 hours before that. For example if the alarm is going to go off in 2 hours, so that the user can remember or take action or let it ring depending on the critical task they are supposed to do during the time.
2. Vision
ChronoMind is a context-aware, AI-augmented clock/timer application that understands why you set a timer — not just when. It provides intelligent pre-warnings, adaptive escalation, routine orchestration, and natural language interaction. It bridges the gap between dumb alarms and full calendar apps by focusing on one thing: making sure you never miss what matters, and always have time to prepare.
The Problem with Current Timers & Clocks
| Gap |
Current Market |
ChronoMind |
| No pre-warnings |
Alarm fires once, at the exact time |
Configurable cascade: 2h → 1h → 30m → 15m → 5m → NOW |
| No context |
"Alarm at 3:00 PM" — why? |
"Meeting with Sarah in 2 hours — prep slides?" |
| No urgency levels |
Every alarm sounds the same |
Critical (can't miss) → Important → Casual → Gentle |
| No prep-time awareness |
You set alarm for meeting at 3pm, forget 20min prep |
Auto-adds prep buffer: "Start preparing at 2:40 PM" |
| No travel awareness |
Alarm for dentist at 2pm, 30min drive away |
"Leave by 1:25 PM (traffic is heavy today)" |
| No chaining |
Timer for pasta, but forget sauce timing |
Linked timers: "Boil water → Add pasta → Start sauce at T-3min" |
| No routines |
Set same 5 alarms every morning manually |
"Morning routine" = Wake → Meditate (10m) → Exercise (30m) → Shower (15m) → Leave |
| No countdown to events |
Separate app for "days until vacation" |
Built-in event countdown with milestone warnings |
| No shared timers |
Can't coordinate with family/team |
"Pizza timer" visible to everyone in household |
| No natural language |
Tap through 4 screens to set a timer |
"Remind me to call Mom 2 hours before my flight" |
| No adaptive snooze |
Fixed 5/10min snooze |
Snooze learns: "You always snooze this one 3 times — should I set it 15min earlier?" |
| No focus integration |
Timer has no concept of deep work |
"Block notifications for 90min, warn me 10min before standup" |
| No voice |
Visual-only or basic "Hey Siri" |
Full voice control: "What's my next timer?" / "Push everything back 30 minutes" |
3. Target Platforms
| Phase |
Platform |
Tech Stack |
| MVP |
Web app (PWA) |
Next.js 14, React 18, CSS custom properties |
| v1.1 |
macOS menu bar |
Tauri or SwiftUI |
| v1.2 |
iOS app |
SwiftUI (native) |
| v2.0 |
Android |
Jetpack Compose |
| v2.0 |
Windows |
Tauri |
MVP is web-first — works on any device, installable as PWA with notification support.
4. Core Concepts
4.1 Timer Types
| Type |
Description |
Example |
| Alarm |
Fires at a specific date/time |
"Wake up at 6:30 AM" |
| Countdown |
Fires after a duration |
"Timer for 25 minutes" |
| Event Countdown |
Days/hours until a future date |
"14 days until vacation" |
| Routine |
Ordered sequence of timed steps |
"Morning routine (5 steps, 75 min total)" |
| Linked Timer |
Timer that triggers another timer |
"When pasta timer ends, start sauce timer" |
| Recurring |
Repeats on a schedule |
"Every weekday at 9:00 AM" |
| Shared |
Visible/controllable by multiple people |
"Family dinner timer" |
4.2 Urgency Levels
Every timer has an urgency level that controls notification behavior:
┌─────────────┬────────────────────────────────────────────────────────────────┐
│ Level │ Behavior │
├─────────────┼────────────────────────────────────────────────────────────────┤
│ CRITICAL │ Full screen takeover, persistent sound, vibration, cannot │
│ │ dismiss without acknowledgment. Pre-warnings at 2h, 1h, 30m, │
│ │ 15m, 5m, 1m. Example: flight departure, job interview. │
│ │ │
│ IMPORTANT │ Prominent notification with sound. Pre-warnings at 1h, 30m, │
│ │ 15m, 5m. Snooze allowed (max 3x). Example: team meeting, │
│ │ doctor appointment. │
│ │ │
│ STANDARD │ Normal notification with gentle sound. Pre-warnings at 30m, │
│ │ 5m. Snooze allowed. Example: laundry, cooking timer. │
│ │ │
│ GENTLE │ Silent notification (badge/banner only). Single pre-warning │
│ │ at 15m. Auto-dismiss after 2 minutes. Example: "check on │
│ │ bread in oven", casual reminder. │
│ │ │
│ PASSIVE │ No notification at all — just visible in the app timeline. │
│ │ For event countdowns and tracking. Example: "days until │
│ │ vacation", "months until lease renewal". │
└─────────────┴────────────────────────────────────────────────────────────────┘
4.3 Pre-Warning Cascade
The core differentiator. Every timer can have a configurable cascade of pre-warnings before the main alarm fires.
Example: Flight at 2:00 PM (CRITICAL)
10:00 AM [-4h] "Flight to NYC in 4 hours. Have you packed?"
11:00 AM [-3h] "Flight in 3 hours. Check-in reminder."
12:00 PM [-2h] "Flight in 2 hours. Start getting ready."
12:30 PM [-90m] "Flight in 90 minutes. Suggested: leave in 45 min."
1:00 PM [-1h] "Flight in 1 HOUR. Leave NOW if driving."
1:30 PM [-30m] "Flight in 30 minutes. You should be at airport."
1:45 PM [-15m] "BOARDING SOON — 15 minutes."
2:00 PM [ 0 ] "FLIGHT TIME — NOW"
Default cascade presets:
| Preset |
Warnings At |
Best For |
| Aggressive |
4h, 3h, 2h, 90m, 1h, 30m, 15m, 5m, 1m |
Flights, once-in-a-lifetime events |
| Standard |
2h, 1h, 30m, 15m, 5m |
Meetings, appointments |
| Light |
1h, 15m, 5m |
Cooking, laundry, casual |
| Minimal |
15m |
Gentle reminders |
| None |
— (fire only) |
Simple countdown timers |
| Custom |
User-defined |
Any |
4.4 Prep Time & Travel Time
Timers can optionally include prep time and travel time that shifts warnings earlier.
Example: Dentist at 2:00 PM
+ Prep time: 15 min (get dressed, grab wallet)
+ Travel time: 25 min (auto-estimated or manual)
+ Buffer: 5 min (arrive early)
Effective "start preparing" time: 1:15 PM
Effective "leave by" time: 1:30 PM
Warnings shift to target 1:15 PM for prep, 1:30 PM for departure.
Travel time estimation (v1.1+):
- Manual entry (MVP)
- Integration with maps API for real-time traffic estimates (v2)
- Learn from past patterns: "You usually take 35 min to get to the office"
5. Feature Breakdown
5.1 MVP (v0.1) — Web PWA
| # |
Feature |
Priority |
Description |
| 1 |
Create alarm |
P0 |
Set date/time, label, urgency level |
| 2 |
Create countdown |
P0 |
Set duration, label, urgency level |
| 3 |
Pre-warning cascade |
P0 |
Configure cascade per timer (presets + custom) |
| 4 |
Urgency levels |
P0 |
5 levels controlling notification style |
| 5 |
Active timers dashboard |
P0 |
See all timers, sorted by "next to fire" |
| 6 |
Browser notifications |
P0 |
Push notifications via Web Notifications API |
| 7 |
Sound alerts |
P0 |
Multiple alarm sounds, volume per urgency |
| 8 |
Snooze / dismiss |
P0 |
Snooze with configurable duration, dismiss with confirmation for CRITICAL |
| 9 |
Recurring timers |
P1 |
Daily, weekday, weekly, monthly, custom cron |
| 10 |
Timer labels + notes |
P1 |
Add context: "Call Dr. Smith — phone: 555-1234" |
| 11 |
Dark mode |
P1 |
Full dark theme (default) |
| 12 |
PWA install |
P1 |
Installable on mobile/desktop via browser |
| 13 |
Local storage |
P1 |
All data in IndexedDB — no account needed |
| 14 |
Timer history |
P2 |
Past timers log with stats |
| 15 |
Keyboard shortcuts |
P2 |
Quick-create, navigate, snooze |
| 16 |
Quick timer |
P0 |
One-tap presets: 5m, 15m, 25m (pomodoro), 1h |
5.2 v1.0 — Intelligence Layer
| # |
Feature |
Description |
| 17 |
Natural language input |
"Remind me to call Mom at 3pm with 1 hour warning" |
| 18 |
Routines |
Create ordered sequences of timed steps |
| 19 |
Linked timers |
"When timer A ends, start timer B" |
| 20 |
Prep time |
Add preparation buffer before any timer |
| 21 |
Adaptive snooze |
Learn snooze patterns, suggest earlier alarm |
| 22 |
Focus mode |
Block notifications, only allow CRITICAL through |
| 23 |
Event countdowns |
"132 days until wedding" with milestone warnings |
| 24 |
Categories / tags |
Work, Personal, Health, Cooking, etc. |
| 25 |
Statistics |
How many timers set, snooze rate, on-time rate |
5.3 v2.0 — Platform Expansion
| # |
Feature |
Description |
| 26 |
Shared timers |
Family/team timers visible to invited users |
| 27 |
Calendar sync |
Import from Google/Apple/Outlook calendars |
| 28 |
Travel time (live) |
Maps API integration for real-time estimates |
| 29 |
Voice control |
"What's my next alarm?" / "Push everything back 30 minutes" |
| 30 |
Native apps |
macOS menu bar, iOS, Android, Windows |
| 31 |
Watch complications |
Apple Watch, Wear OS |
| 32 |
Widgets |
iOS/Android home screen widgets |
| 33 |
API |
REST API for programmatic timer management |
| 34 |
Zapier / webhooks |
Timer events trigger external actions |
| 35 |
AI suggestions |
"You have a gap between 2-3pm, want to schedule focus time?" |
6. Routines (Deep Dive)
Routines are a killer feature that no current timer app does well. A routine is an ordered sequence of timed activities with transitions.
Example: Morning Routine
Morning Routine Total: 1h 35m
Step 1: Wake Up + Hydrate 5 min 6:00 - 6:05
Step 2: Meditation 15 min 6:05 - 6:20
Step 3: Exercise 30 min 6:20 - 6:50
Step 4: Shower + Get Ready 20 min 6:50 - 7:10
Step 5: Breakfast 15 min 7:10 - 7:25
Step 6: Commute Buffer 10 min 7:25 - 7:35
Notification at each step transition
"Skip step" and "Extend +5min" buttons on each notification
Tracks actual vs planned duration over time
Example: Cooking Routine (Linked Timers)
Thanksgiving Dinner Prep (work backwards from 6:00 PM serve time)
2:00 PM Turkey in oven (4 hours)
4:30 PM Start mashed potatoes (45 min)
5:00 PM Start gravy (30 min)
5:15 PM Rolls in oven (25 min)
5:30 PM Set table (15 min)
5:45 PM Turkey resting (15 min, auto-started when turkey timer ends)
6:00 PM Serve!
All timers visible in one timeline view with progress bars.
Example: Pomodoro Focus Session
Focus Session: "Write PRD"
Round 1: 25 min work -> 5 min break
Round 2: 25 min work -> 5 min break
Round 3: 25 min work -> 5 min break
Round 4: 25 min work -> 15 min long break
Total: 2h 10m
Focus mode active (only CRITICAL timers break through)
Track completed rounds, interruptions
7. User Interface
7.1 Design Principles
| Principle |
Rationale |
| Glanceable |
See time-to-next-alarm in < 1 second |
| One-tap creation |
Quick timer presets always visible |
| Dark-first |
Alarm apps are used in bed, at night |
| Information density |
Power users want to see all timers at once |
| Accessible |
Large touch targets, high contrast, screen reader support |
| Beautiful sounds |
Alarm sounds that don't trigger anxiety |
7.2 Key Screens
SCREEN MAP
Dashboard Create Routines
(Home) Timer
- Clock - Alarm - Templates
- Next up - Countdown - Active
- Timeline - Event - History
- Quick - Routine
presets - NL input
Focus History Settings
Mode & Stats
- Pomodoro - Past - Sounds
- Custom timers - Defaults
- DND sync - Streaks - Theme
- Insights - Backup
- Import
7.3 Dashboard Layout
┌──────────────────────────────────────────────────────────────────────┐
│ ChronoMind Settings │
├──────────────────────────────────────────────────────────────────────┤
│ │
│ 10:42:38 AM │
│ Thursday, Feb 27 │
│ │
│ -- NEXT UP --------------------------------------------------------│
│ | [IMPORTANT] Team Standup in 1h 18m │
│ | Pre-warning in 18 min - Prep: review tickets (15 min) │
│ ------------------------------------------------------------------ │
│ │
│ -- QUICK TIMER --------------------------------------------------- │
│ | [ 5m ] [ 15m ] [ 25m ] [ 1h ] [ Custom ] [ NL Input ] │
│ ------------------------------------------------------------------ │
│ │
│ -- TIMELINE ------------------------------------------------------ │
│ | | │
│ | 12:00 PM [IMPORTANT] Team Standup ............. in 1h 18m | │
│ | Pre-warning at 11:00 AM (in 18m) | │
│ | | │
│ | 2:00 PM [STANDARD] Dentist Appointment ....... in 3h 18m | │
│ | Leave by 1:30 PM (25 min drive) | │
│ | | │
│ | 5:00 PM [GENTLE] Pick up dry cleaning ........ in 6h 18m | │
│ | | │
│ | 6:30 PM [STANDARD] Pasta timer (linked) ...... in 7h 48m | │
│ | -> Sauce timer starts when this ends | │
│ | | │
│ | -- Tomorrow -------------------------------------------------- | │
│ | 6:00 AM Morning Routine (1h 35m) ............ in 19h 18m | │
│ | 9:00 AM [IMPORTANT] Sprint Planning ......... in 22h 18m | │
│ | | │
│ | -- Event Countdowns ------------------------------------------ | │
│ | [PASSIVE] Vacation in 47 days | │
│ | [PASSIVE] Lease renewal in 132 days | │
│ | | │
│ ------------------------------------------------------------------ │
│ │
│ -- ACTIVE ROUTINES ---------------------------------------------- │
│ | Morning Routine Weekdays at 6:00 AM [Edit] | │
│ | Pomodoro Focus On-demand [Start] | │
│ | Wind Down Daily at 9:30 PM [Edit] | │
│ ------------------------------------------------------------------ │
│ │
└──────────────────────────────────────────────────────────────────────┘
8. Technical Architecture (MVP)
8.1 Stack
| Layer |
Technology |
Rationale |
| Framework |
Next.js 14 (Pages Router) |
Fast, SSR for landing, PWA-friendly |
| UI |
React 18 + CSS custom properties |
No Tailwind — clean vanilla CSS like MindLyst web |
| State |
Zustand |
Lightweight, persists to IndexedDB |
| Storage |
IndexedDB (via idb) |
Offline-first, no backend needed for MVP |
| Notifications |
Web Notifications API + Service Worker |
Works when app is backgrounded (PWA) |
| Audio |
Web Audio API |
Low-latency alarm sounds |
| Time |
date-fns |
Lightweight date manipulation |
| PWA |
next-pwa |
Service worker, offline support, installable |
| Testing |
Vitest + Playwright |
Unit + E2E |
8.2 Data Model
interface Timer {
id: string; // UUID
type: 'alarm' | 'countdown' | 'event' | 'routine_step';
label: string;
notes?: string;
urgency: 'critical' | 'important' | 'standard' | 'gentle' | 'passive';
// When it fires
targetTime: Date; // For alarms: specific datetime
duration?: number; // For countdowns: milliseconds
startedAt?: Date; // For countdowns: when started
// Pre-warning cascade
cascade: CascadePreset | number[]; // Preset name or custom minutes array
preWarnings: PreWarning[]; // Computed from cascade
// Optional enhancements
prepTime?: number; // Minutes of preparation time
travelTime?: number; // Minutes of travel time
location?: string; // For travel time estimation
// Recurrence
recurrence?: RecurrenceRule;
// Linking
linkedTimerId?: string; // Timer to start when this one fires
routineId?: string; // Parent routine
routineStep?: number; // Step index in routine
// State
status: 'active' | 'paused' | 'fired' | 'dismissed' | 'snoozed';
snoozedUntil?: Date;
snoozeCount: number;
firedAt?: Date;
dismissedAt?: Date;
acknowledgedAt?: Date; // For CRITICAL: must explicitly acknowledge
// Metadata
category?: string;
tags: string[];
createdAt: Date;
updatedAt: Date;
}
interface PreWarning {
minutesBefore: number;
message: string;
firedAt?: Date;
status: 'pending' | 'fired' | 'skipped';
}
interface Routine {
id: string;
name: string;
steps: RoutineStep[];
totalDuration: number; // Computed sum
schedule?: RecurrenceRule; // When this routine runs
status: 'template' | 'active' | 'completed';
startedAt?: Date;
currentStep: number;
}
interface RoutineStep {
label: string;
duration: number; // Minutes
notes?: string;
sound?: string; // Transition sound
skippable: boolean;
extendable: boolean; // Allow +5min
}
type CascadePreset = 'aggressive' | 'standard' | 'light' | 'minimal' | 'none';
interface RecurrenceRule {
frequency: 'daily' | 'weekdays' | 'weekends' | 'weekly' | 'monthly' | 'custom';
daysOfWeek?: number[]; // 0=Sun, 6=Sat
interval?: number; // Every N days/weeks/months
endDate?: Date;
}
8.3 Notification Architecture
Timer Engine (runs in Service Worker)
Timer Store --> Scheduler --> Notification
(IndexedDB) (checks every Dispatcher
30 seconds)
|
┌───────────────────┤
| |
Web Push In-App Alert
(backgrounded) (foregrounded)
- OS banner - Full-screen (CRITICAL)
- Sound - Toast (others)
- Badge - Sound
- Vibration
Key challenge: Browser Service Workers can be killed by the OS. Mitigation:
- Schedule next-fire via
setTimeout with periodic checks every 30s
- Use
navigator.serviceWorker for background notifications
- Fallback:
setInterval poll in active tab
- Critical timers register OS-level alarms where supported (native app)
8.4 Project Structure
learning_ai_clock/
├── docs/
│ ├── raw_idea.md # Original idea
│ └── PRD.md # This document
├── web/ # Next.js 14 web app
│ ├── src/
│ │ ├── pages/ # Pages Router
│ │ │ ├── index.tsx # Landing page
│ │ │ ├── app.tsx # Main app (dashboard)
│ │ │ ├── create.tsx # Create timer
│ │ │ ├── routines.tsx # Routines
│ │ │ ├── focus.tsx # Focus / pomodoro
│ │ │ ├── history.tsx # Timer history
│ │ │ └── settings.tsx # Settings
│ │ ├── components/
│ │ │ ├── Clock.tsx # Large analog/digital clock
│ │ │ ├── TimerCard.tsx # Individual timer display
│ │ │ ├── Timeline.tsx # Vertical timeline of upcoming
│ │ │ ├── QuickTimer.tsx # One-tap preset buttons
│ │ │ ├── CascadeEditor.tsx# Pre-warning cascade config
│ │ │ ├── RoutineEditor.tsx# Routine step editor
│ │ │ ├── AlarmOverlay.tsx # Full-screen alarm (CRITICAL)
│ │ │ └── NLInput.tsx # Natural language input
│ │ ├── lib/
│ │ │ ├── timer-engine.ts # Core scheduling logic
│ │ │ ├── store.ts # Zustand store + IndexedDB
│ │ │ ├── notifications.ts # Web Notifications wrapper
│ │ │ ├── sounds.ts # Web Audio API sounds
│ │ │ ├── cascade.ts # Pre-warning cascade logic
│ │ │ ├── recurrence.ts # Recurrence rule engine
│ │ │ └── nl-parser.ts # Natural language time parser
│ │ └── styles/
│ │ └── globals.css # Full design system
│ ├── public/
│ │ ├── sounds/ # Alarm sound files
│ │ └── icons/ # PWA icons
│ ├── package.json
│ └── next.config.js
├── .gitignore
└── README.md
9. Design System
9.1 Color Palette (Dark Theme)
| Token |
Hex |
Use |
--cm-bg |
#0A0B0F |
Page background |
--cm-surface |
#12141D |
Cards, panels |
--cm-surface-hover |
#1A1D2A |
Hover states |
--cm-border |
#2A2D3A |
Borders |
--cm-text |
#E8ECF4 |
Primary text |
--cm-text-secondary |
#8A92A6 |
Secondary text |
--cm-text-muted |
#5A6178 |
Timestamps, hints |
--cm-critical |
#FF4757 |
Critical urgency |
--cm-important |
#FF9F43 |
Important urgency |
--cm-standard |
#FECA57 |
Standard urgency |
--cm-gentle |
#2ED573 |
Gentle urgency |
--cm-passive |
#5B8DEE |
Passive/info |
--cm-accent |
#5B8DEE |
Primary accent, links |
--cm-accent-glow |
#5B8DEE33 |
Glow effects on timers |
9.2 Typography
| Token |
Font |
Weight |
Use |
--cm-font-display |
Space Grotesk |
700 |
Clock face, timer digits |
--cm-font-body |
Inter |
400/500/600 |
Body text, labels |
--cm-font-mono |
JetBrains Mono |
400 |
Countdown digits, time displays |
9.3 Clock Face Digits
The main clock display uses a large, beautiful monospaced font with a subtle glow effect:
.clock-display {
font-family: var(--cm-font-mono);
font-size: 4rem;
font-variant-numeric: tabular-nums;
letter-spacing: 0.05em;
color: var(--cm-text);
text-shadow: 0 0 30px var(--cm-accent-glow);
}
10. Competitive Analysis
| Feature |
iOS Clock |
Google Clock |
Alarmy |
Due |
Toggl Track |
ChronoMind |
| Basic alarm |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
| Countdown timer |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
| Pre-warnings |
No |
No |
No |
No |
No |
Yes (core) |
| Urgency levels |
No |
No |
Partial |
No |
No |
Yes |
| Cascade config |
No |
No |
No |
No |
No |
Yes |
| Routines |
No |
No |
No |
No |
No |
Yes |
| Linked timers |
No |
No |
No |
No |
No |
Yes |
| Prep time |
No |
No |
No |
No |
No |
Yes |
| Travel time |
No |
No |
No |
No |
No |
Yes |
| Focus / pomodoro |
No |
No |
No |
No |
Yes |
Yes |
| Event countdowns |
No |
No |
No |
No |
No |
Yes |
| Natural language |
Siri |
Google |
No |
No |
No |
Yes |
| Shared timers |
No |
No |
No |
No |
Yes (team) |
Yes (v2) |
| Adaptive snooze |
No |
No |
No |
No |
No |
Yes (v1) |
| Web PWA |
No |
No |
No |
No |
Yes |
Yes |
| Offline-first |
N/A |
N/A |
Yes |
Yes |
No |
Yes |
| Free |
Yes |
Yes |
Freemium |
$7 |
Freemium |
Yes |
ChronoMind's moat: No existing app combines pre-warning cascades + routines + linked timers + urgency levels + focus mode in a single, beautiful, offline-first web app. Most clock apps are feature-frozen utility apps from the early smartphone era.
11. Monetization (Future — v2+)
ChronoMind is free and open-source for personal use. Potential future revenue:
| Tier |
Price |
Features |
| Free |
$0 |
All MVP features, unlimited timers, local storage |
| Pro |
$4/mo |
Cloud sync, shared timers, calendar integration, custom sounds |
| Team |
$8/user/mo |
Team timers, admin dashboard, API access, webhooks |
12. Success Metrics (MVP)
| Metric |
Target |
How to Measure |
| PWA installs |
100 in first month |
Service worker registration |
| Daily active users |
50 |
IndexedDB activity timestamp |
| Timers created/week |
500+ |
In-app analytics |
| Pre-warning engagement |
>60% of timers use cascade |
Default-on, track opt-out |
| Routine usage |
>20% of users create a routine |
Feature adoption tracking |
| Snooze rate |
<30% (means alarms are well-timed) |
Snooze event tracking |
13. Development Phases
Phase 1: MVP (2 weeks)
| Week |
Deliverable |
| Week 1 |
Project setup, data model, timer engine, dashboard UI, create timer flow |
| Week 2 |
Pre-warning cascade, notifications, sounds, PWA, quick timers, dark theme |
Phase 2: Intelligence (2 weeks)
| Week |
Deliverable |
| Week 3 |
Routines, linked timers, focus/pomodoro mode |
| Week 4 |
Natural language input, recurring timers, prep time, history + stats |
Phase 3: Platform (4 weeks)
| Week |
Deliverable |
| Week 5-6 |
macOS menu bar app (Tauri/SwiftUI), cloud sync (optional) |
| Week 7-8 |
iOS native app, shared timers, calendar sync |
14. Open Questions
| # |
Question |
Decision Needed |
| 1 |
Should MVP include cloud sync or be 100% local? |
Decision: local-only MVP, cloud in v1.1 |
| 2 |
Natural language parsing: local regex or LLM API? |
Decision: local regex MVP, optional LLM v2 |
| 3 |
Should the main clock be analog, digital, or both? |
Decision: digital primary, analog option |
| 4 |
PWA notification reliability — is it good enough? |
Test: if <90% delivery, prioritize native |
| 5 |
Should routines support branching (if/else steps)? |
Decision: linear-only MVP, branching v2 |
15. Appendix: Naming
| Option |
Pros |
Cons |
| ChronoMind |
Unique, conveys "smart time" |
Slightly long |
| PreWarn |
Describes core feature |
Too narrow |
| TimeShift |
Cool, implies flexibility |
Vague |
| CascadeTimer |
Describes cascade feature |
Too technical |
| Nudge |
Friendly, approachable |
Generic |
Working name: ChronoMind — subject to change.
16. Summary
ChronoMind fills a real gap: the space between "dumb alarm" and "full calendar app." Every phone has a clock app, but none of them answer the question "how do I make sure I'm prepared for what's coming?"
Three core innovations:
- Pre-warning cascade — configurable escalation so you're never surprised
- Routines — timed sequences that guide you through multi-step activities
- Urgency-aware intelligence — the app understands that a flight and a laundry timer are fundamentally different
The MVP is achievable in 2 weeks as a web PWA with no backend dependency.