All posts

Why We Built HorangPlayer

Every Mac user has experienced the frustration. You download a video file — maybe an MKV from a friend, a WebM clip, or an AVI from an old archive — and double-click it. QuickTime opens, thinks for a moment, and tells you it can't play the file.

So you install VLC. It plays everything, but the interface feels like it was designed for Windows XP. It doesn't respect macOS conventions — no native title bar, no proper fullscreen animation, no system integration.

Then you discover IINA. Beautiful interface, plays everything thanks to mpv under the hood. But it hasn't seen a major update in a while, the UI can feel sluggish during panel animations, and there's no bookmark system.

That's why we built HorangPlayer.

The Vision

We wanted a video player that combines the best of all worlds:

  • IINA's engine — mpv/libmpv for universal format support and buttery-smooth playback
  • QuickTime's polish — a native macOS interface that feels right at home
  • Features nobody else offers — timestamp bookmarks with thumbnails, persistent per-file settings, A-B loop

What Makes It Different

HorangPlayer is built with SwiftUI for the entire interface. Not AppKit wrappers, not Cocoa bindings — pure SwiftUI with @Observable for reactive state management. This means the UI is modern, responsive, and follows Apple's latest design patterns.

Under the hood, the mpv engine handles decoding. This gives us support for virtually every video format in existence: MKV, WebM, AVI, MP4, FLAC audio, VP9, AV1, H.265 — you name it.

Core Principles

  1. Play everything — No more "format not supported" dialogs
  2. Feel native — SwiftUI interface that respects macOS conventions
  3. Stay fast — Hardware-accelerated decoding, efficient rendering
  4. Respect privacy — 100% offline, no telemetry, no network requests
  5. Free forever — Open source, no ads, no subscriptions

HorangPlayer isn't just another video player. It's the player macOS deserves.