Roadmap
This roadmap assumes Streamline is a single-user, self-hosted app that runs on a homeserver beside tools like Plex, Jellyfin, Radarr, and Sonarr.
Out of scope:
- SaaS concerns
- Multi-user profiles
- Team or enterprise administration
Shipped
Section titled “Shipped”These were on this roadmap and are now in the app:
- gunicorn behind a systemd unit (
streamline-web.service) - A Docker image (amd64 and arm64) and a Compose setup with mounted data, cache, and config
- Password protection (
STREAMLINE_PASSWORD) and CSRF protection for all write actions /healthzand/status, reporting provider, models, cache counts, last profile build, IMDb refresh, and running jobs- A note when the taste profile is out of date
- Result card actions: Save, Seen it, Not interested, and More like this / It was fine / Less like this
- Watchlist page and a searchable history of past recommendations
- Plex: plays and ratings arrive by webhook (nothing is written to Plex)
- On Deck: followed shows with new episodes ready, and a Coming soon list
- Home Assistant: read-only API and an iCal feed
Phase 1: Release Gate
Section titled “Phase 1: Release Gate”These items should be finished before calling the app a solid homeserver release.
Deployment and runtime
Section titled “Deployment and runtime”- Keep the systemd unit as an optional deployment path, not the primary one
Safety and access control
Section titled “Safety and access control”- Support a documented reverse-proxy-auth mode for users who already protect apps at the proxy layer
- Keep localhost-first defaults
Background jobs and status
Section titled “Background jobs and status”- Move setup, profile rebuild, and provider refresh work out of the request thread
- Add a job status view with current state, last run time, duration, and error output
Reliability
Section titled “Reliability”- Stop swallowing ingestion errors silently
- Surface source-specific failures in the UI
- Remove shared mutable request state from the web app
- Make usage tracking request-local instead of process-global
- Fix startup checks so the web runner only requires keys for the configured provider
Operations
Section titled “Operations”- Add last import time and last failure to
/status - Expose version/build information in the UI
Phase 2: Strong v1.0 Features
Section titled “Phase 2: Strong v1.0 Features”These features make the app materially more useful for daily homeserver use.
Feedback loop
Section titled “Feedback loop”- Let users review and undo recent feedback from the web UI
Recommendation workflow
Section titled “Recommendation workflow”- Show clear result states:
- in your library
- available on your streaming services
- available elsewhere
- not currently available
Import and data quality
Section titled “Import and data quality”- Add an import health dashboard with last sync time, item counts, unmatched titles, and override count
- Add a web UI for reviewing unmatched titles and editing overrides without hand-editing JSON
- Add scheduled refresh jobs for metadata, provider availability, and taste profile rebuilds
Library workflow
Section titled “Library workflow”- Add a local “add to library” queue even before external integrations land
- Add library gap analysis for titles that strongly fit the profile but are missing from the library
Phase 3: Ecosystem Integrations
Section titled “Phase 3: Ecosystem Integrations”These integrations are the highest-value expansion path for a homeserver audience.
Media servers
Section titled “Media servers”- Jellyfin import and watch-state sync
- Emby import and watch-state sync
Download and request tools
Section titled “Download and request tools”- Radarr handoff for movie recommendations
- Sonarr handoff for series recommendations
- Overseerr or Jellyseerr handoff for users who prefer a request workflow
Metadata bridges
Section titled “Metadata bridges”- Trakt import for users with existing watch history outside local media servers
Follow-up automation
Section titled “Follow-up automation”- Track saved titles and surface them when they become available in the local library
- Track saved titles and surface them when they become available on configured streaming services
Priority Order
Section titled “Priority Order”- Deployment and runtime hardening
- Background jobs and status visibility
- Library-aware recommendation states
- Jellyfin import
- Radarr and Sonarr handoff
