GhostPizza: a restaurant site with Lighthouse 100 and no JavaScript on public pages
I rewrote a pizzeria's website from Laravel to Bun and Hono so that the owner would notice no visual change and a customer's phone would notice all of them.
Posts about the technologies I work with and lessons from real work: what worked, what did not and why. Always with a terminal session or a screenshot.
I rewrote a pizzeria's website from Laravel to Bun and Hono so that the owner would notice no visual change and a customer's phone would notice all of them.
Before the contract on my production cluster's two small machines ran out, I moved etcd and everything else onto a single dedicated server without rebuilding the cluster. The move took one night, and two surprises along the way taught me more than the plan did.
A 2015 Samsung UE60J6240 still has an acceptable panel, but its own software turned it into e-waste: slow, with ads in the interface and sending telemetry to the manufacturer. Instead of binning it, I stripped the factory system down to a single job: picture and sound over HDMI, with no ads and no telemetry.
My cluster accepted network policies without complaint and enforced none of them. Swapping the network for Cilium on both clusters is a story about why "Synced" in Argo CD is not proof.
For me a deployment is a commit that changes one image tag, followed by a deliberate click on sync. Here is how that loop works, why nothing deploys itself, and what Renovate added to it.
After two weeks with k3s I rebuilt my home cluster from scratch on Talos Linux, an OS you cannot log in to. Three virtual machines became one, and its whole configuration fits in one file in git.
Kubernetes was the biggest gap in my skills, so instead of reading about it I ran it on my home server and set up copies of real services on it. A few days later the whole cluster could be rebuilt from one repository, passwords included.
In October 2024 someone kicked and banned the members of the Discord server of a community whose bot I have been building for years. Discord had no "unban all" button, so I wrote one myself in discord.js.