a local-first atmospheric chalky task planner
Svelte 48%
TypeScript 47%
CSS 3%
JavaScript 2%
HTML <1%
Dockerfile <1%

README.md

chalky.town #

A local-first task planner on ATProto.

All your tasks are stored first in IndexedDB, so everything stays with you, works offline, and is super fast 8). ATProto handles identity and syncing across devices.

Task syncing is either:

  • Private — kept in a permissioned space on chalky.town's HappyView instance, which can move to PDS permissioned spaces when the permissioned data proposal lands.
  • Public — synced to your PDS, same as any other ATProto app.

The choice is explicit and made when you first log in. Everything is stored on-device until then.

dev #

pnpm install
pnpm dev

pnpm build for a production build, pnpm check for type checking.

Stack #

  • Svelte 5 + Vite for the app
  • idb (IndexedDB) as the primary store, with a background sync to the network
  • HappyView for OAuth and permissioned spaces
  • lexicons/ holds the town.chalky.* task lexicons — any other implementor of these could become your new app