Hello, World

After fifteen years of building other people's platforms, I'm finally giving my own site a place to write. Expect notes on Adobe Experience Manager, Java services, cloud infrastructure, and the occasional detour into whatever I'm tinkering with.

How this blog works

Every post is a plain Markdown file in the repo. At build time it gets compiled into typed data — no CMS, no database, no runtime markdown parsing. The whole thing ships as static data on a Cloudflare Worker.

Code blocks get highlighted at build time too:

export function readingTimeMinutes(text: string): number {
	const words = text.trim().split(/\s+/).filter(Boolean).length;
	return Math.max(1, Math.round(words / 200));
}

A few things I like about this setup:

  • Writing a post is git add, git commit, git push.
  • The frontmatter is schema-validated, so a typo fails the build instead of shipping a broken page.

Systems that stay maintainable long after the launch — that applies to blogs too.

More soon.