Skip to content

Spaced repetition

Spaced repetition turns pages you want to actually remember into flashcards, without you writing a single card by hand. Flag a page or directory, and a background agent derives cards from its content and keeps them in sync as you edit. A dedicated review page runs you through the cards that are due, front then back, graded on a keyboard, on intervals computed by FSRS.

Set metadata.srs.enabled: true on any page, or on a directory to cover everything under it (see page metadata for how metadata inherits). The toggle lives right on the page: flip it on and a card list appears showing every derived card with a due chip, so you can see at a glance what’s queued without leaving the page.

metadata:
srs:
enabled: true

An agent, flashcard-deriver, maintains the card set for every opted-in page. It runs outbox-triggered: any edit to an opted-in page fires it, debounced so an editing burst coalesces into one re-derive rather than one per keystroke, the same debounce shape the search indexer uses for re-embedding. Card generation is idempotent, so re-deriving after a small edit updates only what changed rather than minting duplicate cards for untouched content.

The review page runs at /p/flashcards. Open it directly, or arrive from the not-now screen’s flashcard CTA.

  1. Pick a scope

    Choose a specific topic (an opted-in page or directory) or review a mixed session pulling due cards from everywhere you’ve enabled SRS.

  2. Reveal

    Each card shows its front first. A key press (or click) reveals the back.

  3. Grade

    Grade the card Hard, OK, Easy, or Archive. The grade feeds directly into ts-fsrs, which computes the card’s next interval; Archive pulls a card out of rotation entirely rather than scheduling it again.

  4. Next

    The session advances to the next due card automatically. The whole flow is keyboard-first: reveal, grade, and advance without reaching for the mouse.

Every card carries a panel back to its source, so if a grade surprises you, “wait, is that still true?”, you jump straight to the originating page and node rather than trusting the card in isolation. Review access is ACL-scoped like everything else in the knowledge base: you only ever review cards derived from pages you can read.

The review page isn’t only for scheduled study. It’s also the destination for the not-now screen’s “Review due flashcards instead” call to action: when a restriction locks a surface (mail, the task queue, IM), one of the configured screens offers a flashcard session as the productive alternative to whatever you were trying to open. Grading a few due cards is a legitimate way to spend the wait.