Nº02 // WRITING
Writing
Occasional notes on Booknetic, WordPress, self-hosting, and the tools I build. I care more about useful products than fancy words — if something saves time, fixes a pain point, or makes a workflow better, I'm interested.
- It's always tea Every other thing on this site is about code. This one isn't. It's about the glass of tea next to the keyboard while I write all the rest.
- The day job and the thing on the side I have a job I actually care about, and I still build my own things at the edges of the day. This is about why — and what it costs to keep both alive.
- Building on a platform you don't own Two of my products redesign parts of Booknetic without touching a single core file. The discipline that makes that possible — and shippable — is the whole point.
- One engine, three plugins I wrote one conditional-logic engine and reused it — verbatim — across three plugins. The hard part wasn't writing it; it was keeping its PHP and JavaScript halves from ever disagreeing.
- How I named Alovio Naming a studio is a research project, not a brainstorm. Here's how 'CoreLabs' became 'Alovio' — the constraints, the near-misses, and the one that stuck.
- Plugin updates are not just version numbers A plugin update may look like a simple version change, but in real products it can affect old data, add-ons, hosting environments, workflows, and user expectations.
- Support is not about templates Support templates can save time, but real support requires context, judgment, product knowledge, and the ability to understand what the customer is actually experiencing.
- Building this site A static, bilingual, zine-styled personal site in Astro — and the small, specific traps I hit making the blog, the language toggle, and the accordion behave.
- How I build a Booknetic addon The repo skeleton, service-first design, and test discipline behind three real commercial Booknetic addons I shipped — built on top of Booknetic's documented addon API.
- Reading the actual code beats vibes The single biggest quality lever when working with AI coding agents is making them read the real source, configs, and failing tests instead of improvising from summaries.
- The N+1 that Redis couldn't save An object cache is useless on a hot path that never asks it — so I stopped tuning Redis and started fixing the SQL underneath my own addon's directory search.
- Everything I self-host A tour of the four-machine fleet I run — a tuned WooCommerce/Booknetic production box, its one-server staging clone, a multi-tenant QA host that got compromised, and a properly-firewalled agent droplet — with the real numbers, file paths, and war stories behind each.
- Conditional logic, free Every competitor locks conditional show/hide logic behind a paid “Pro” tier; I gave it away free, and that decision is the whole strategy behind my WooCommerce product-options plugin.
- Redis cache gotchas Five hard-won lessons from running one Redis instance across many WordPress sites — including the time the cache I installed to fix a slow query did absolutely nothing.
- Multi-tenant is a different game Building addons for a SaaS platform broke three habits I didn't know I had: assuming a current user, assuming my data is only mine, and assuming there's only one front door.