ProcrastiNOT
A native macOS and iOS task manager with AI features, built as a real App Store product.
The Problem
Most task managers are either too simple (lacking structure for complex projects) or too heavy (requiring a system to manage the system). AI-enhanced task managers exist but tend to bolt AI onto an existing product as a gimmick rather than designing around it.
The specific pain point: procrastination isn't a willpower problem, it's an information problem. Which task is actually most important right now? What's blocking me? ProcrastiNOT is built around answering those questions intelligently.
Approach
ProcrastiNOT is a native SwiftUI application using SwiftData for persistence, targeting both macOS and iOS as a real App Store product — not a demo or prototype.
Development follows a tiered sprint structure. Tiers completed to date:
- Natural language command bar —
TaskCommandParserandTaskCommandExecutorhandle freeform input like "add call dentist tomorrow high priority" and translate it to structured task creation - Focus Mode — AI-powered task selection that surfaces the single most important task based on priority, deadlines, and procrastination history
- Procrastination tracking — records when tasks are deferred, builds a history, and uses it to inform Focus Mode recommendations
- AIInsightsView sidebar — persistent sidebar showing patterns, suggestions, and encouragement based on task history
Tier 6 (iOS) is next, bringing the full feature set to iPhone and iPad with platform-appropriate UI adaptations.
Outcome
Tier 5 complete with all core macOS features functional. The natural language parser handles a wide range of input patterns. Focus Mode is operational. A category filter dropdown bug (auto-advancing on selection) has been identified and queued for the next session.
Stack
Swift and SwiftUI for all UI. SwiftData for local persistence — no server, no account required, full privacy. Claude API for the AI features (Focus Mode recommendations, insights generation). Xcode for build and distribution.
What I Learned
Designing a natural language parser that feels magical but behaves predictably is genuinely hard. The key insight was defining a strict grammar of intent patterns and mapping freeform input to that grammar, rather than trying to handle arbitrary text.