Nook is a spaced repetition app. You import an Anki deck, review the cards with FSRS-6 scheduling, and it keeps working when your connection drops. It's built as one app for one person: your collection lives in your own Cloudflare account, so there's no sign-up, no password, and no account to manage.
I built this by prompting Amp, with no manual code. My setup is on /uses.
.apkg decks, including note templates, styling, and mediaThe repo keeps its design decisions as ADRs in docs/adr. Four of them:
batch() instead of transactions: D1 doesn't have transactions, so multi-statement writes go through one batchA Worker can't read an .apkg archive, because workerd's node:sqlite is a stub. So the import runs in a Web Worker in the browser and streams notes, cards, and media into D1 and R2 in batches. The import is keyed by the archive's content hash, so importing the same file twice overwrites instead of duplicating, and a run that fails halfway resumes where it stopped.
There's no card editor. You import, you don't author. There's also no delete yet.