JotJot Docs

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:

FeaturePurpose
Due datesDate-based task tracking and overdue detection
RecurrenceRRULE-based repeating tasks (daily, weekly, custom patterns)
Personal projectsThematic 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

AspectJoyJot
WorkspaceMultiple per user (one per team)One per user (personal)
ProjectsFuture multi-product groupingThematic: Personal, Sport, etc.
Item typesepic, story, task, bug, rework, decision, ideaAlways "task"
RecurrenceNot supportedRRULE-based repeating tasks
Due datesNot a core featureFirst-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.