How airencracken/tidings works
Tidings is a household RSS/Atom reader served by one Go application backed by SQLite. A member signs in, adds or discovers feeds (or imports OPML), then reads a finite story table and manages read, saved, and skipped state; scheduled or requested fetching supplies stories to that table. The graph preserves the documented household, account, export/restore, article-copy, and administration capabilities. Some route wiring and background-service details are unsampled, so only documented or excerpt-supported relationships are drawn.
Main entry points: app.go Routes and pages · store.go SQLite store · fetch.go Feed fetching · articles.go Story and full text
Components 20
Application runtime
- HTTP service
cmd/tidings/main.go - Routes and pages
internal/reader/app.go
Reading experience
- Story table
internal/reader/app.go - Story and full text
internal/reader/articles.go - Article cleanup
internal/reader/article_html.go - Keyboard controls
internal/reader/static/keyboard.js
Feeds and discovery
- Feed fetching
internal/reader/fetch.go - Fetch scheduling
internal/reader/scheduling.go - Feed discovery
internal/reader/discovery.go - Suggested sources
internal/reader/catalog.go - OPML import/export
internal/reader/opml.go - Feed groups and tags
internal/reader/groups.go
Household administration
- Sign-in and sessions
internal/reader/auth.go - Household sources
internal/reader/store.go - Invitations and members
internal/reader/invitations.go - Instance metrics
internal/reader/metrics.go
Persistence and recovery
- Backups and export
internal/reader/backup.go - Data restore
internal/reader/restore.go - SQLite store
internal/reader/store.go
Other components
- Reader or owner
Connections 23
- Reader or owner → Routes and pages: uses pages
- Routes and pages → Sign-in and sessions: authenticates
internal/reader/app.go - Routes and pages → SQLite store: loads session
internal/reader/app.go - Reader or owner → Story table: reads stories
- Routes and pages → Story table: renders
internal/reader/app.go - Story table → Story and full text: opens story
- Story and full text → Article cleanup: cleans markup
- Reader or owner → Keyboard controls: uses shortcuts
- Reader or owner → Feed discovery: finds feeds
- Reader or owner → Suggested sources: browses suggestions
- Reader or owner → OPML import/export: imports or exports
- Reader or owner → Feed groups and tags: organizes sources
- Routes and pages → Feed fetching: starts refresh
internal/reader/app.go - Fetch scheduling → Feed fetching: schedules checks
- Feed fetching → SQLite store: stores feed stories
- Reader or owner → Household sources: opts into table
- Reader or owner → Invitations and members: manages membership
- Reader or owner → Instance metrics: views metrics
- Reader or owner → Backups and export: downloads data
- HTTP service → Data restore: runs restore
cmd/tidings/main.go - Backups and export → SQLite store: backs up data
- Data restore → SQLite store: restores data
- Routes and pages → SQLite store: reads and writes
internal/reader/store.go