Edendale is a free, open-source video player and personal watch/review tracker. It plays a user's own movies and shows, enriches them with TMDB metadata, and keeps library and watch data under the user's control.
- Play local video from individual files, imported folders, and supported network sources.
- Build a private library from device-local records and file access.
- Classify files locally before starting optional TMDB enrichment.
- Browse metadata for movies, shows, people, seasons, episodes, trailers, and release dates.
- Track progress, ratings, reviews, and user-media state without an Edendale account.
- Use the navigation, accessibility, input, storage, and media capabilities native to each supported platform.
Trailers open only after an explicit user action. Edendale contains no analytics.
Edendale uses one long-lived branch per platform. Each branch owns its source, tests, dependencies, CI workflow, release configuration, and documentation. There is no shared executable runtime and no platform consumes another platform's implementation.
| Branch | Responsibility |
|---|---|
main |
Universal documentation and repository metadata only |
apple |
Apple application and Apple-specific delivery |
android |
Android application and Android-specific delivery |
windows |
Windows application and Windows-specific delivery |
web |
Static website and Web-specific delivery |
The platform branches begin with the same universal Markdown files:
README.md— product and repository overview.AGENTS.md— rules for automated contributors.CLAUDE.md— concise agent entry point.DESIGN.md— shared visual and interaction language.MODEL.md— optional propose-first task protocol.
TASKS.md is intentionally not part of the new repository. Work is tracked
through the platform branch's issue and pull-request workflow.
mainremains free of application source, build systems, generated output, deployment workflows, and platform secrets.- A platform branch contains only the files needed to build, test, package, and deploy that platform.
- CI triggers only for its owning branch and uses only that platform's toolchain, credentials, and protected deployment environment.
- Product behavior is kept aligned through documentation and native parity tests, not a shared library, generated bridge, or copied build output.
- Universal documentation changes land on
mainfirst and are then propagated to platform branches without bringing platform code back intomain.
Every platform branch must be independently buildable and deployable. Its workflow should:
- Trigger only for that branch and its pull requests.
- Restore only the platform's dependencies.
- Run that platform's checks and tests.
- Produce only that platform's artifacts.
- Gate credential-bearing release steps behind a protected environment.
Build commands, prerequisites, artifact names, and release procedures belong in
the README.md of the relevant platform branch after its implementation is
added.
All platforms follow the Cinematic Minimalism system in DESIGN.md. Implementations use native UI, navigation, accessibility, and input conventions while preserving Edendale's shared hierarchy, color semantics, typography, and privacy principles.
- Native first: every platform is understandable, testable, and buildable without another platform's toolchain.
- Private by design: no Edendale account, telemetry, or analytics.
- Your data stays yours: local libraries remain local; any documented sync uses a user-controlled platform service.
- Performance first: classify and persist quickly, then enrich in the background.
- Isolated delivery: a platform can change, test, and release without affecting another platform's pipeline.
Edendale is licensed under the Mozilla Public License 2.0.
This product uses the TMDB API but is not endorsed or certified by TMDB.