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

Movies Diary thumbnail 1

Links