NAS Streaming Platform
A personal Netflix-style experience streaming from my NAS, with automatic metadata and sync via Trakt, Letterboxd, and TMDB.
Problem Statement
I own a large media library on NAS hardware, but off-the-shelf apps did not combine the streaming UX I wanted with the social tracking I already use.
Metadata was inconsistent across files, and watch state did not flow automatically to Trakt or Letterboxd.
I wanted a system that feels like a modern streaming product — but runs on infrastructure I control.
My Approaches
Option A: Use Plex/Jellyfin out of the box. Partially viable — good playback, but limited control over UX and deep Letterboxd/Trakt automation.
Option B: Custom frontend + NAS backend with integration-first metadata pipeline. Chosen — full UX control and automated social sync.
Option C: Cloud-hosted media. Rejected — cost, privacy, and I already have the library locally.
How I Built
NAS stores raw media; a metadata layer enriches files via TMDB for posters, descriptions, and categorization.
Watch progress syncs to Trakt; film diary and ratings flow to Letterboxd where configured.
Frontend presents browse, search, and continue-watching patterns familiar from commercial streaming apps.
AI tooling accelerated API contract design, integration mapping, and UI scaffolding — engineering decisions stayed human-driven.
Tech Stack & Choices
| Technology | Role | Why |
|---|---|---|
| NAS (self-hosted) | Media storage | Full ownership of library and bandwidth; no recurring cloud storage fees. |
| TMDB API | Metadata | Rich movie/TV metadata, artwork, and search — industry-standard catalog. |
| Trakt + Letterboxd | Social tracking | Automatic watch history and film logging without manual double-entry. |
| Custom streaming frontend | Playback UX | Tailored browse and player experience instead of generic media server UI. |
Screenshots & Results
- Scaffold in place — fill with metrics once live (e.g. library size, sync success rate).
- Target: instant resume playback for in-progress titles.
- Goal: zero manual logging to Trakt/Letterboxd after a watch session.