- Features — everything the reader does, by area.
- Screenshot gallery
- Running in production (Docker) — the installer and its packages, the everyday scripts, TLS or reverse proxy, mail, updates, backups.
- First-run setup — creating the initial admin.
- OAuth sign-in (Google and Apple) — provider setup for operators, and the redirect/exchange contract for the SPA.
- How a "For you" run works — what happens after pressing Refresh, closing the browser, stopping, resuming.
- Account backup and restore — what a backup file carries, what it deliberately drops, and what a restore does to the account.
A multi-user RSS/Atom feed reader: a Symfony 7.4 LTS JSON API in backend/,
with the Angular 20 SPA that delivers the reader UI and auth in frontend/.
For the development stack — live-reloading frontend, xdebug, and Mailpit catching all outgoing mail locally — use the dev installer (it additionally needs mkcert):
curl -fsSL https://raw.githubusercontent.com/larspohlmann/simple-feed-reader/main/scripts/install-dev.sh | bash- Local Docker environment — the manual walkthrough: the whole stack (MySQL, PHP, nginx with TLS, Mailpit) in Docker.
- Frontend workspace — the Angular 20 SPA: dev server, the quality gate, theming, and the bearer-token auth model.
- Architecture: client contract and native-client readiness — the cross-cutting rules for how clients talk to the backend, and the standing constraint that keeps a future native iOS app viable.
- Design language — tokens, the shared component catalog and the recorded exceptions.
- The project homepage — the static page in
docs/homepage/, its screenshots shared with the gallery, and how it deploys. - Cutting a release — how a
vX.Y.Ztag onmainbecomes the version the install and update scripts hand to users. - Design spec and implementation plans
- Contributing — issue-first workflow, branch conventions, and the quality gate.