Minimal task tracking app with natural language input. Local-first, offline-capable, optional sync.
- Natural language task creation with #tags and due:dates
- Smart grouping (Due Today / Due Later)
- Inline editing
- Completed tasks sink to bottom
- Optional sync with sync.thatsit.app
- Data Layer: Dexie (IndexedDB) for local storage
- State: Zustand for reactive state management
- Parser: Natural language parsing for tags/dates
- UI: React components with Tailwind CSS
- Sync: Optional integration with sync backend
src/lib/parser.ts- Natural language parsingsrc/lib/taskOperations.ts- CRUD operationssrc/store/taskStore.ts- Global statesrc/components/TaskItem.tsx- Individual task UIsrc/components/TaskList.tsx- Grouped task display
- ALWAYS use @thatsit/ui components when available
- Keep task creation simple (one input field)
- Preserve natural language in task.title for editing
- Completed tasks sort to bottom but stay in same group
- Use date-fns for all date operations
- All operations must update _syncStatus for future sync
Run tests before committing:
pnpm testKey test files:
src/lib/parser.test.ts- Parser correctnesssrc/lib/taskOperations.test.ts- CRUD operations
pnpm install- Install dependenciespnpm dev- Start development serverpnpm build- Build for productionpnpm test- Run tests