Server-Side Feeds & Offline-First Persistence
A catalog of more than 5,000 passages lives in Supabase Postgres. Decks are served by paginated RPCs that filter, de-duplicate, and rank on the server, with row-level security on every table. A bundled starter library and an on-device cache put the first card on screen instantly and keep the app readable offline.
Kept passages and custom decks persist locally in SwiftData and sync to an optional account. Per-deck state and a staged buffer keep rapid deck switching free of repeats, and For You re-ranks upcoming cards from what a reader keeps and skips.