Krisztián Hadi

2026 · Juuku, open source

Solving a very niche problem, worth 5 GitHub stars

Juuku is a free, open-source remote for Navidrome's jukebox mode. Library, queue, player, favorites, lyrics, volume. All of it on your phone or any browser.

Role
Design and build, sole author
Stack
React, one container, MIT
Time
Seven days to the first release, 2026
Outcome
Our living room, five other homes, 5 GitHub stars
The same home screen on a phone, with a mini player above the tab bar.
The Juuku home screen on a wide screen, with the sidebar and the player docked along the bottom.
Mobile first, but it works at any screen size, so you can control the music from your desktop too.

Problem

The idea is simple: a box plays the music, so nobody's loud Instagram feed hijacks the room over Bluetooth or AirDrop. Navidrome, the self-hosted media server, has had jukebox mode for years: the server plays through mpv next to the speakers. What it never had, for some reason, is an interface.

There are dozens of excellent Subsonic clients, and every one of them streams to the device in your hand. Driving speakers on the server side is a tiny niche. Search turned up no viable remote, just Reddit threads, months or years old, asking how to control jukebox mode from a phone. The answers were nothing, or a pointer to a client that no longer installs.

So one weekend I got fed up and started building my own.

My role

Everything: design, build and release. I built it with AI agents, and enforced the test suite, the accessibility pass, the security review and the container hardening, and kept finding the simpler path when the agent was three layers deep in a clever one.

Lyrics

Synced lyrics for Monument, the current line lit, the ones around it faded.

Album

The Do It Again album page, with the playing track highlighted.

Player

The full player with the cover, progress, transport and volume.
Synced lyrics were the most important feature for my most important user, my wife Anikó.

Key decisions

  • Only add what Navidrome doesn't have. The server already had every capability. I didn't want a bloated app that does jukebox control on the side, but a lightweight controller.
  • One queue for the room. Navidrome's jukebox has one global queue and one set of speakers, so there's no personal queue. Whoever taps next, the room hears it. Just like the house parties 20 years ago, with one computer in the room.
  • One source of truth. Anyone who opens the app sees what's playing right away, and the volume doesn't jump to max and give you a heart attack the next morning.
  • Themes per device, not per account, because two people sharing one app don't have to agree, and we didn't.
  • Refuse things early: no account system, no native app. It's just a remote.
An album page in the Mocha theme: warm brown, an orange accent and a serif title. The same album page in the Modern theme. The same album page in the Geek theme.
The same album page in three themes: Mocha, Modern and Geek. Each one changes the typefaces and icons along with the colors.

Outcome

The first release took seven days, 143 commits and 30 tagged releases, MIT from the first public commit. It runs our living room every day.

I'm still working on it: bug fixes, and features I miss or other users ask for, like Last.fm scrobbling.

Once the app worked, I went back and answered those old Reddit threads. People replied and actually became happy users. Five other homes run their own copy, going by the GitHub stars. Small niche, real need.