Development
Home Media

Tellyfin

A LAN-first pseudo-live television system that turns an existing Jellyfin media library into automatically generated channels, persistent schedules, and a conventional electronic program guide.
Discuss this venture
The Friction

Why this problem persists.

On-demand media libraries make every viewing session begin with browsing and choosing. They do not provide the passive, channel-based experience of a persistent television lineup with current and upcoming programming ready to tune.

The Product

What we are building.

Tellyfin combines a headless Rust server that owns television state with a Tauri and React Windows client for guide navigation and native playback. It synchronizes Jellyfin media, generates deterministic channel lineups and rolling schedules, and plays media directly from Jellyfin through embedded libmpv contexts.

Who It Serves

The intended users.

Jellyfin media-library users
Home media enthusiasts
Windows home-media users
Key Capabilities

What the product does.

Jellyfin discovery and full-catalog synchronization

Deterministic automatic channel generation

Persistent rolling schedules and current-program resolution

Electronic program guide with time navigation and program details

Channel rename, hide, regeneration, and program-skip controls

Direct play, direct stream, and HLS-transcoded Jellyfin playback

Dual embedded libmpv players for prepared schedule transitions

Native playback controls, track selection, and recovery behavior

Windows Credential Manager authentication and opaque media handles

OpenAPI-generated TypeScript contracts and live SSE invalidation

Why Existing Options Fall Short

The structural gap.

Jellyfin is designed around on-demand library browsing: users choose a specific item each time they want to watch. That model does not create the passive rhythm of television, where a stable lineup is already in progress and a guide makes current and upcoming programs visible. A browser-only player also introduces media, codec, subtitle, hardware-decoding, and recovery constraints that work against a dependable native television experience.

Current Status
Development

Tellyfin is an advanced MVP in active development. Phases 1–3 are implemented, including the server and desktop architecture, Jellyfin synchronization, automatic channel generation, persistent schedules, electronic program guide, channel controls, typed API contracts, secure client authentication, and embedded dual-libmpv playback. Phase 4 remains focused on release hardening through end-to-end, real-LAN, restart, outage, migration, long-running playback, performance, clean-machine, and documentation validation.

The MackJoy Difference

Built on a shared foundation.

Tellyfin combines several disciplines that the MackJoy portfolio has developed independently — Rust systems engineering, Tauri desktop architecture, React interfaces, persistent data systems, and generated API contracts — in one media orchestration platform. It extends the native application foundation demonstrated by Playmate into embedded video, Windows child-window integration, credential isolation, and server-authoritative scheduling, creating reusable patterns for future desktop and systems work.

Partnership Opportunities

We are actively seeking collaborators.

Pilot
Start a conversation
Technical Foundation

How it is built.

The headless server uses Rust, Tokio, Axum, SQLite, SQLx, Serde, and Utoipa, with Server-Sent Events for client invalidation. The Windows client uses Tauri 2, React 19, TypeScript, Material UI 7, TanStack Query, and Vite. Its native Rust layer hosts two libmpv contexts in Win32 child windows, resolves Jellyfin playback sources, and keeps credentials and authenticated URLs out of JavaScript. OpenAPI generated from Rust models provides the contract for generated TypeScript operation types.

Related Ventures

Part of a connected portfolio.