Blog

What we learned building the things above.

Specific bugs, specific fixes, from the products we run ourselves — not generic advice rewritten to sound like a case study.

Aug 18, 2026

A Technical SEO Checklist for Sites That Render in JavaScript

Most SEO checklists are written for sites that render on the server by default. This one is for the sites that do not — where the gap between what a person sees and what a crawler sees is the whole problem.

Aug 18, 2026

The Nginx Setting That Was Hiding Our Own 500 Errors

backendnginxerror_pagecrawler500

A fallback we had already built never ran, because Nginx only intercepts the error codes it generates itself — not the ones a healthy-looking backend sends on its own.

Aug 15, 2026

A Service Worker Froze Our Prerender on Day One, Forever

stuck cache

Every deploy looked successful. Every crawler kept seeing whatever bundle happened to be live the first time the render service ever started.

Aug 12, 2026

The WordPress Hook That Only Fires Half the Time

is_admin()wp_doing_cron()REST publish

The sitemap was two weeks stale. The plugin was not broken. It had simply never been told the site would publish itself.

Aug 9, 2026

Building a Blog That Publishes Itself

researchwriteimagepublish

Publishing weekly by hand is a task. Publishing weekly without anyone doing the publishing is a different system entirely — and most of the design work is in what happens when a step fails.

Aug 6, 2026

Running Three Products on One PocketBase, Without Them Sharing Data

product 1product 2product 3one PocketBase

Running several products off one backend is a budget decision. Making sure a bug in one can never touch another is the engineering discipline that makes that decision safe.