Movies Diary
A self-hosted, server-side rendered movie logging system with a full REST API. Built entirely in Rust with no JavaScript in the HTML interface — just HTML forms and an RSS feed.
Highlights:
- Immutable, append-only viewing ledger (tracks re-watches)
- ActivityPub federation — follow remote users, broadcast reviews as federated Notes, shared inbox, paginated outbox
- Full-text search via SQLite FTS5 or PostgreSQL tsvector + GIN
- Background poster fetching, TMDB enrichment (cast, crew, genres, box office), image conversion to AVIF/WebP
- File importer: CSV, TSV, JSON, XLSX from Letterboxd, IMDb, etc.
- Dual database support: SQLite and PostgreSQL
- Terminal UI client
- OpenAPI documentation (Swagger UI + Scalar)
Technical details:
- Architecture Hexagonal (Ports & Adapters) with DDD
- Backend Rust, Axum, SQLx
- Templates Askama (SSR)
- Event bus SQLite/PostgreSQL queue or NATS JetStream
- Federation ActivityPub (AP)
Technologies
Rust
Axum
SQLite
PostgreSQL
ActivityPub
Askama
NATS
Docker
Gallery
