···15151616These entities are visible to anyone with access to the PDS (essentially public).
17171818-- Deck (`app.malfestio.deck`): The collection of cards/notes.
1919-- Card (`app.malfestio.card`): The flashcard content (Front/Back).
2020-- Note (`app.malfestio.note`): The source knowledge note.
2121-- Article (`app.malfestio.source.article`): Metadata/snapshot of an external article.
2222-- Lecture (`app.malfestio.source.lecture`): Metadata/outline of an external video/audio.
2323-- Collection (`app.malfestio.collection`): Curated lists of decks.
2424-- Comment (`app.malfestio.thread.comment`): Public discussion.
1818+- Deck (`org.stormlightlabs.malfestio.deck`): The collection of cards/notes.
1919+- Card (`org.stormlightlabs.malfestio.card`): The flashcard content (Front/Back).
2020+- Note (`org.stormlightlabs.malfestio.note`): The source knowledge note.
2121+- Article (`org.stormlightlabs.malfestio.source.article`): Metadata/snapshot of an external article.
2222+- Lecture (`org.stormlightlabs.malfestio.source.lecture`): Metadata/outline of an external video/audio.
2323+- Collection (`org.stormlightlabs.malfestio.collection`): Curated lists of decks.
2424+- Comment (`org.stormlightlabs.malfestio.thread.comment`): Public discussion.
25252626> **Rule**: If a user puts sensitive information in a Card, they must be warned that
2727> publishing the Deck makes it public.
+1-1
docs/todo.md
···131131132132**Indexing:**
133133134134-- [ ] Subscribe to `com.atproto.sync.subscribeRepos` (or Jetstream) for `app.malfestio.*` records
134134+- [ ] Subscribe to `com.atproto.sync.subscribeRepos` (or Jetstream) for `org.stormlightlabs.malfestio.*` records
135135- [ ] Index posts with compound cursor (timestamp::CID) for deterministic pagination
136136- [ ] Garbage collect indexed data older than 48 hours (except pinned content)
137137
+8-8
lexicons/README.md
···11111212### Namespace + NSID conventions
13131414-- `app.malfestio.note`
1515-- `app.malfestio.card`
1616-- `app.malfestio.deck`
1717-- `app.malfestio.source.article`
1818-- `app.malfestio.source.lecture`
1919-- `app.malfestio.collection`
2020-- `app.malfestio.thread.comment`
1414+- `org.stormlightlabs.malfestio.note`
1515+- `org.stormlightlabs.malfestio.card`
1616+- `org.stormlightlabs.malfestio.deck`
1717+- `org.stormlightlabs.malfestio.source.article`
1818+- `org.stormlightlabs.malfestio.source.lecture`
1919+- `org.stormlightlabs.malfestio.collection`
2020+- `org.stormlightlabs.malfestio.thread.comment`
21212222### Lexicon basics
2323···38382. **No Renaming**: Do not rename fields.
3939 If a semantic change is needed, add a new field and deprecate the old one.
40403. **No Type Changes**: Once published, a field's type is fixed.
4141-4. **Version by Copying**: If a breaking change is absolutely required, create a new Lexicon with a new major version or a new name (e.g., `app.malfestio.noteV2`).
4141+4. **Version by Copying**: If a breaking change is absolutely required, create a new Lexicon with a new major version or a new name (e.g., `org.stormlightlabs.malfestio.noteV2`).
···11+-- Migration: Add card_type column to cards table
22+-- Date: 2026-01-02
33+-- Issue: card_type was not being persisted, always returning 'basic'
44+55+ALTER TABLE cards ADD COLUMN IF NOT EXISTS card_type TEXT DEFAULT 'basic';