Build notes

Now there is an app.

Today the companion app does what it was made for: from a phone, add a podcast, line up episodes and send them to the player. The first version went up on GitHub eleven days ago, and until this morning it couldn’t show a single feed.

An app, because the player has no screen and no keyboard, so a parent needs somewhere to choose what goes on it. The phone finds the player over Bluetooth and hands it the Wi-Fi password, so it gets online without anyone typing into it. After that, a parent can see what’s playing and play, pause, skip or turn it down from across the room, and set quiet hours and a volume cap. If the network drops, the player keeps playing what it already has.

A red 3D-printed box with a knob and two buttons on its top and a round speaker grille on its front, beside a second print of the same box in white, on a cluttered desk.

The player the app pairs with: the red box closed, with the knob and two buttons on top, and a second print of the shell in white, October 17, 2025.

It nearly didn’t get here. For a week the iPhone couldn’t pair at all. Then a review found why nothing showed up: three files the app needed had never been written. Every screen was designed, and the app couldn’t even build. I’ve been handing more of the coding to AI, and this is the first time I’ve hit its limits in a big way. The app and the player are two separate codebases that have to work together, and across that much code it lost track and pointed at files that didn’t exist. I only found them by going through the code myself. Those files went in today.

Two changes on the player came from watching small hands. Mashing the buttons could start three episodes at once, so now it ignores presses while it’s busy. And a short loading sound plays while a download runs, kept quiet so it doesn’t startle. Pairing also needs a press on the player’s own button now, so a phone outside can’t pair through the wall.

Next: make the library make sense to a parent. The app has feeds and playlists, and I couldn’t tell you in one sentence what the difference is. Stories and music is the split that makes sense on the device, so it should make sense in the app.

All build notes