Skip to content

🏴 Empowerment

If a page titled “empowerment” on a software docs site sounds overblown to you, I get it. Hear me out before you dismiss it.

“Knowledge is a weapon.” It’s on the cover of odio.love, and it’s not a slogan. odio is built on the belief that free software is a path to emancipation, a way to take back control of the hardware you already own, and sometimes just a way to learn something real along the way.

odio installs in one command, updates in one command, and works out of the box. That isn’t so you never have to open the hood. It’s the opposite. It’s so that opening the hood carries no real risk.

It’s DevOps thinking ported to multimedia. Your streamer isn’t a precious appliance you tiptoe around, it’s a reproducible host: cheap to rebuild, safe to poke at, boring to restore. Same philosophy that runs production infrastructure, applied to the box that plays your music.

The odio user’s home directory is tiny, a handful of kilobytes. Two folders hold your customizations, ~/.config and ~/.cache, plus /boot/config.txt for DAC overlays and overclocking. Back those up, and you can wipe the whole system, reflash, and be back where you were in minutes.

Which means you can actually try things. Install an extension, listed or not. Poke at a systemd unit. Tweak a software config file. Most of them should hold basic documentation and unused config options to explore. If you break it and can’t fix it, you reflash and move on, a little sharper than before.

odio isn’t one monolithic app, it’s independent components talking standard protocols: MPD, DLNA, MPRIS, D-Bus, SSE events. You’re not configuring a product, you’re composing a system. The Home Assistant, Music Assistant, and HTPC setups are all just other pieces plugged onto the same surface.

The same doors are open to you. Write a script against the API. Build an extension. Pipe another source into the TCP sink. Create something that didn’t exist before, because nothing in odio was designed to stop you. Quite the opposite, really.

DX matters almost as much as UX. Two audiences usually pull in opposite directions: enthusiasts who want it to just work, and devs and makers who want to crack everything open. odio tries to serve both, one-command install and sensible defaults on one side, standard protocols and clean APIs on the other, ideally with a path from the first to the second as curiosity grows.

It’s an honest challenge, and not one I’d claim to have fully solved. Keeping the first experience smooth without flattening the underlying system into a black box takes constant attention. Both camps matter, and losing either one would be losing the point.

Running free software on your own hardware is one of the few moves left that isn’t mediated by a vendor deciding what your device is allowed to do. No account to log into. No feature locked behind a firmware tier. No silent telemetry. No end of service when the company pivots. The Pi on your shelf stays yours, and the software on it stays auditable and replaceable.

That’s worth something on its own. It’s also why odio exists. Not out of blanket hostility to the industry, but because the multimedia one has disappointed too many times: streamers abandoned after a firmware pivot, features locked behind accounts that outlive the device, working hardware pushed toward the drawer once the vendor moves on.

“Knowledge is a weapon” doesn’t mean much if the knowledge stays in the maintainer’s head. The docs you’re reading are what turn one working setup into something anyone else can run, and they’re where most of the real teaching happens.

Some guides move fast and assume you’re at ease with a shell, a config file, a systemd unit. That’s deliberate for now. Until odio’s setup, upgrade, and admin UX are where I want them, a bit of technical comfort should be enough to avoid frustration, still within reach for any enthusiast. It isn’t meant to stay that way. How fast it changes depends on both the baseline UX improving and on open doc issues getting worked through.

They’re also the easiest place to contribute. Find a page that confused you, open the docs repo, edit the markdown, open a PR. No build pipeline to learn, no architecture to absorb, just clearer words than were there before. If a sentence tripped you up, it’ll trip the next person too, and fixing it is a real contribution.

Sharing knowledge has always been a passion of mine. The free software philosophy, the idea that you could open anything, read it, change it, share it back, is what made me fall in love with computing in the first place. That stands in direct opposition to what the software industry has largely become: surveillance, ads, planned obsolescence. I’d been forgetting that a bit in recent years.

I came up as a sysadmin, not a coder, and free software is one of the tool that’s let me learn, change direction, and keep growing across every role I’ve had. odio itself came out of that path: six years of tinkering, largely for myself, before it felt worth publishing. Working on it reminded me of all of it, and pushed me to build something I actually want to stand behind. Honestly, it made me a better engineer than I was before I started.

If odio is useful to you, that’s already great. If it also pushes you to open a config file you didn’t understand yesterday and understand it by tonight, that’s the real win.

One honest thing, though: I can come across as blunt at times, no hostility meant. I’m genuinely trying to help people grow, and I’ll lose patience fast with anyone who looks down on others or tries to make them feel smaller.

Every feature that came from someone other than the maintainer keeps their name on it. The webradios integration wouldn’t look the way it does without @pbattino. PRs keep their author, discussions credit whoever shaped the direction, extensions link back to the people running them.

Free software without attribution is just free labor. Your name stays on what you built, and contributing to something real, something that keeps working for other people long after you stopped touching it, is worth being proud of.