Flixate is a local-first PWA for finding movies and series worth watching. The app has a representative fixture for everyday development and a production pipeline for the generated US+NL+UK streaming catalog. Seen history and named watchlists are stored locally by default and can optionally synchronize between devices through the user's own hidden Google Drive app-data folder; Flixate has no application server or database.
Open the live app at https://hnsr.github.io/flixate/.
Discovery starts with the first 100 matches after searching, filtering, and sorting the whole catalog. Show 100 more extends the list until all matches are available; changing search, filters, or sort starts a fresh batch. Narrow by score, genre, type, or release year, and save favorite filter combinations in this browser. Use Manage watchlists to create personal lists and Lists on a title to add it to one or more of them. Individual lists are not limited to 100 titles.
Cards show the title's original language beside its type and year when TMDB provides it. This is not a list of available dubbing or subtitle languages.
Open Exclude genres beneath the genre filter to hide titles tagged with any selected genre (for example, Documentary or Animation). Exclusions take precedence over matching included genres and are remembered in this browser, saved filter presets, and JSON backups.
npm install
npm run devVite prints the local URL. No TMDB credential is needed for the fixture-backed app.
The ignored .env credentials are used only by the catalog-building scripts.
npm run catalog
VITE_CATALOG_MANIFEST_URL=data/live/manifest.json npm run devThe first catalog build reads TMDB and can take around 10–15 minutes. Raw responses
are cached under ignored .cache/phase0/; generated files are written to ignored
public/data/live/. A same-snapshot retry is restartable from that cache. Use
npm run catalog:sample for a small pipeline smoke test that writes to
artifacts/catalog-sample/ without replacing a complete local snapshot.
npm run typecheck
npm test
npm run test:e2e
npm run build
npm run audit:productionGitHub Pages deployment is live through two workflows:
- a push to
maindownloads and validates the latest catalog artifact, then builds and deploys only the app; - a nightly or manually requested catalog refresh crawls TMDB, validates and retains a new seven-day catalog artifact, then deploys it with the current app.
Run npm run catalog:validate to verify a downloaded or locally generated live
snapshot. See the Phase 3 deployment report for setup, format-change,
and recovery instructions.
- Product and architecture plan
- Plan review
- Phase 0 feasibility report
- Phase 1 implementation report
- Phase 2 implementation report
- Phase 3 deployment report
- Phase 4 implementation report
- Cross-device sync plan
- Google Drive OAuth feasibility spike
- Sync S1 implementation report
- Sync S2 implementation report
- Sync S3 implementation and rollout report
- Google Drive sync guide
- Sync S4 production rollout report