learn and share notes on atproto (wip) 馃 malfestio.stormlightlabs.org/
readability solid axum atproto srs
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

1# Malfestio 2 3Malfestio is a learning OS: flashcards + notes + lectures + articles, designed for daily study. 4 5Social layer: publish/share/remix learning artifacts; follow curators; discuss. 6 7## Personas 8 9- **Learner**: studies daily; imports content; wants fast "review queue". 10- **Creator**: makes decks/notes; publishes updates; wants feedback + forks. 11- **Curator/Teacher**: bundles content into learning paths; annotates lectures/articles. 12- **Moderator/Community admin**: handles reports, takedowns, spam. 13 14## Principles 15 16- Local-first study experience; offline study must not feel "second-class". 17- Shareable artifacts are portable: Lexicon-defined schemas + stable IDs. 18- Privacy by design: progress + recall history are private unless explicitly 19 shared. 20 21### Data Model 22 23- Note: markdown + structure + citations + links to sources. 24- Card: front/back (+ optional cloze, audio, image, code block). 25- Deck: ordered/clustered cards (+ metadata, tags). 26- Lecture: external URL + outline + timestamps + linked notes/cards. 27- Article: URL + extracted text (readability style heuristics) + highlights + 28 linked notes/cards. 29- Collection/Path: curated bundle of decks + notes + sources. 30 31## System Architecture 32 33### Frontend (SolidJS) 34 35- App shell + router-driven workspaces (Library / Study / Create / Social). 36- Signals as primary state primitive; keep study session state in signals/store. 37 38### Backend (Rust) 39 40- Axum API gateway: REST/XRPC-ish endpoints, tower middleware, typed extractors. 41- Services (logical, not necessarily microservices): 42 - Identity/Auth service (local + optional ATProto OAuth integration) 43 - Content service (notes/cards/decks/sources) 44 - Study service (queue generation + grading + scheduling) 45 - Social service (follows, feeds, comments, notifications) 46 - Search service (indexing + query) 47 - Moderation service (reports, takedowns, rules) 48 49### Storage 50 51- Postgres: canonical app DB (users, private study state, cache of published records). 52- Object storage: images/audio, extracted article snapshots (if you store them). 53- Search index: separate system (Meilisearch/Typesense/ZincSearch-pick one later). 54 55### Eventing 56 57- Internal outbox pattern (DB table) for: 58 - reindex jobs, notification fanout, federation publish steps