Built with Astro, with React islands for the interactive pieces, essays authored in Markdown/MDX, and Tailwind CSS for layout. Comments run on Giscus, backed by GitHub Discussions. Hosted on Cloudflare Pages, deployed from GitHub Actions.

Display type is Newsreader, body text is Inter, and numbers, dates, and code run in IBM Plex Mono.

Posts are drafted in authoring/ and go through a small publishing pipeline before landing in src/content/blog/: a script projects draft frontmatter into the site's schema, computes token counts and read time from the actual text, assigns the next issue number, and opens a pull request with a preview deploy. The token count shown on every post is a real count from the same tokenizer, not a guess.

Earlier writing, from 2010 through 2019, is archived from the original Ozmium blog with its original text, lightly re-formatted for this site.