How I start Spotify on any Alexa with Home Assistant

At home, my music comes from Spotify Premium, and most of my playback devices are Amazon Alexa devices.
I wanted my daughter to start her favorite songs without handling a phone or a screen. Tap an NFC card on the reader and the music starts: a kind of Toniebox, just built myself. The reader is a DIY build based on an ESP32 microcontroller and ESPHome Builder, following the adonno/tagreader template.
The obvious Home Assistant approach is the official Spotify integration plus media_player.play_media. That is not enough for a cold start, though. The integration can use play_media sensibly only when something is already playing. Starting a specific song, playlist or podcast from a stopped player is therefore not supported by this path. This is a limitation of the integration and its current media_player behavior, not a configuration mistake.
The solution is a small Python script. It asks the Spotify Web API for available Spotify […]

Optimizing code-bude.net for PageSpeed: What I changed and what actually helped

Diagram showing the measurement of load time, layout shift, images, CSS and fontsPageSpeed is not an oracle. Bytes lie much less often than a single score.
I had run code-bude.net long enough to know its little points of friction. A homepage with 22 external CSS files, more than 100 KB of HTML and 1.2 MB PNG title images in listing views was no longer a charming bit of history. Lighthouse estimated 6.25 MB of image savings. The score moved between 27 and 55 depending on the run. That is not a measurement. It is a weather forecast with a very small cloud.
I worked in two rounds. First came images, CSS, critical CSS and fonts. Then I tackled Site Health findings, CLS, accessibility, security headers and icon fonts. The scores are useful […]

From Bookstats to LibrisLog: How to Migrate Your Reading Statistics

Bookstats will not continue operating in the near future. The app announcement cited serious health problems affecting the person who keeps the project running. No fixed shutdown date or export deadline was given, and nobody knows what will happen to the server data after a shutdown. If your library still lives in Bookstats, I would export it now rather than wait.
The question of alternatives also came up in the Reddit thread about the Bookstats shutdown and the Bookcrossing thread about alternatives. I personally pointed to LibrisLog because it can import Bookstats export files and is designed for people who want to keep control of their own library data. The source code is openly available on GitHub. That reply is what led to this migration guide.
I am the developer of LibrisLog, and I ran the migration myself using my own Bookstats export. It contained 178 book rows. The workflow is pleasantly […]

LibrisLog 1.9.0: Smarter Import Search, Public Profiles and More

LibrisLog 1.9.0 is a substantial feature release rather than a tiny maintenance bump. Released on September 15, 2026, it focuses on import search, shareable profiles and the small points of friction that tend to turn a book tracker into a spreadsheet with feelings.
Edition groups and an import basket
Search results from different providers that describe the same book are now grouped into expandable edition groups. LibrisLog matches editions by ISBN or, when no ISBN is available, by title and authors. That makes it much easier to compare variants and pick the right one without losing results in a long, repetitive list.
The selected edition is highlighted, and a new import basket lets you collect results before importing them. The basket can be reviewed, individual entries can be removed, and everything can be imported in one go. Reading status, possession status and medium are kept with each entry, while duplicate additions are prevented.

When the App You Love Dies, Build Your Own — Introducing LibrisLog

I was a happy Dante user. For those who don’t know it, Dante was a solid Android book tracker. Scan a barcode, look up metadata, track your reading progress. Simple, effective, and most importantly: it worked. Until it didn’t.
Adding books by title or barcode? The search API the app relied on had stopped responding, so neither ISBN lookups nor name searches worked anymore. Backups? Gone too. Dante had gone quiet: No updates in a long time, and the features that depended on external services had stopped working. I get it, though. Focus shifts. I’ve been there myself. I recently handed one of my own projects over to a new maintainer because I couldn’t keep up anymore. But understanding why doesn’t make it any less frustrating when it’s your bookshelf that’s stuck.
And that’s where the real pain started. Getting my own data out of Dante was a nightmare. There was no export function anymore. […]

en.code-bude.net
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.