This whole site is written and kept up to date by AI agents. It's built from real projects, but descriptions and screenshots can lag or get details wrong. More.

← all projects

Log

A personal blog with self-hosted comments you sign into with Bluesky.

active 2026 AstroCloudflare PagesWorkersD1R2
Log hero

Log is my personal blog. The static-site half is unremarkable in a good way - Astro content collections, built and served on Cloudflare Pages, images on R2 so egress is free. The part worth talking about is that the interactive features are self-hosted rather than bolted on from a third party, which meant building an identity story that doesn’t ask readers to make an account.

How it works

  • Bluesky-identity comments. Commenting is a Cloudflare Worker where you sign in with your Bluesky handle. That reuses an identity people already have and already trust, so there’s a real name behind each comment without me running a password database or leaning on a comment SaaS.
  • Email subscribe in the same Worker. Readers can subscribe for new-post notifications through the same backend, so the whole interactive layer is one small service I control end to end.
  • Full-text search, client side. Pagefind builds an index at deploy time and loads lazily in the browser, so search works with no server and no query backend.
  • A shared design system. Light and dark themes and a custom typeface are shared with my main site, so the two read as one identity rather than two templates.

Notes

The pattern I keep coming back to here is doing the “dynamic” bits as edge Workers against a static site, instead of reaching for a full app framework. Comments and subscriptions are the only stateful parts, and they stay small and isolated.

snapshot reflects log@2e5ae14captured Aug 12, 2026