May 11 · 7 min read · I run four Astro sites. Three of them shipped the same SEO bug for months. Every blog post on those sites told Twitter, Facebook, and LinkedIn that it was a website, not an article. This post is what happened, why I did not catch it for weeks, and th...
Join discussion
May 10 · 5 min read · How I ended up buying vinelabs.de TL;DR: I bought vinelabs.de last weekend. Was not planning to. The trigger was the author field of a manifest file, the same kind you fill into a composer.json, a package.json, a Cargo.toml, or whatever your stack ...
Join discussion
May 8 · 3 min read · Week 2 of running three AI-curated directory sites. Five things that caught me off-guard between Monday and Friday. 1. @astrojs/sitemap generates /sitemap-0.xml, not /sitemap-index.xml I spent most of Tuesday assuming Google Search Console was silent...
Join discussionMay 8 · 5 min read · What the smoke check found This morning I ran a manual smoke check on all three Cloudflare Pages sites — aiappdex.com, findindiegame.com, ossfind.com — as part of investigating an unrelated robots.txt issue. Every robots.txt declared: Sitemap: https:...
Join discussionMay 7 · 5 min read · The Find Games Like directory I'm building at findindiegame.com is built entirely on Steam data: a nightly ETL pulls from the Steam API, generates content with Claude Haiku, and writes rows into Turso libSQL. Every game in the system has an integer a...
Join discussionApr 20 · 18 min read · This tutorial shows you how to run WordPress as a headless CMS with an Astro frontend deployed to Cloudflare Pages. For a project I was recently working on, the requirement was to use WordPress as the
Join discussion
Apr 18 · 4 min read · TL;DR: I stopped relying on blog cover images for my Open Graph (OG) previews. Instead, I wired up Satori and Sharp to generate branded, text-rich social cards programmatically at build time in Astro.
Join discussion
Apr 11 · 2 min read · Most of my agency work involves local businesses/cafes, auto shops, dentists and every single site needs Schema.org markup for LocalBusiness. I used to write this by hand. Nested JSON brackets, Openin
Join discussion