Architecture
Jot's internal architecture - crate structure, data model, and integrations.
Crate Structure
Jot is built on top of Joy's shared library. The jot-core crate extends joy-core with personal task features like recurring tasks and due dates. The jot-cli crate provides the user-facing command-line interface.
What jot-core Adds
Jot extends the base Joy item model with features specific to personal task management:
| Feature | Purpose |
|---|---|
| Due dates | Date-based task tracking and overdue detection |
| Recurrence | RRULE-based repeating tasks (daily, weekly, custom patterns) |
| Personal projects | Thematic grouping for personal use (Personal, Sport, Work) |
Data Model
Jot uses a simplified version of the Joy data model. Every Jot workspace is personal (one per user), and all items are always of type "task".
Key Differences from Joy
| Aspect | Joy | Jot |
|---|---|---|
| Workspace | Multiple per user (one per team) | One per user (personal) |
| Projects | Future multi-product grouping | Thematic: Personal, Sport, etc. |
| Item types | epic, story, task, bug, rework, decision, idea | Always "task" |
| Recurrence | Not supported | RRULE-based repeating tasks |
| Due dates | Not a core feature | First-class with overdue tracking |
Integrations
Jot connects to external systems through the Joyint platform and can receive tasks dispatched from Joy.
Integration Details
- Git - All data is stored as YAML in
.jot/and versioned with Git, same as Joy. - CalDAV - The platform exposes Jot tasks via CalDAV for sync with calendar and reminder apps.
- Apple Reminders - Tasks sync through CalDAV. Due dates and completion status stay in sync.
- Google Calendar - Tasks appear as calendar entries through CalDAV integration.
- Joy dispatch - Team leads can dispatch tasks from a Joy backlog to individual Jot inboxes.