Welcome to the tommarler.com blog
This site now has a /blog/ route fed from markdown in content/blog/. At build time, scripts/build-blog.mjs reads front matter with gray-matter, renders the body to HTML, and writes static pages that match the existing design in src/style.css.
Why a build step instead of hand-written HTML?
The /writing/ pages are curated long-form pieces maintained as HTML. The blog is the fast lane: drop a .md file, run npm run build, and Draftsmith (or any publisher) gets a canonical URL with full SEO — title, description, OpenGraph, and Article JSON-LD — without touching layout markup.
What gets generated
Each post becomes /blog/{slug}/ with:
- A prose article body (headings, lists, paragraphs, code)
- Per-post canonical URL on
tommarler.com - Structured data as
BlogPostingfor search and AI crawlers
The index at /blog/ lists every post sorted by date. The homepage writing section picks up the latest entries automatically when you rebuild.
Try it yourself
Add another file under content/blog/, set title, description, date, and optional category in the front matter, then:
npm run build
npm run preview
Open /blog/your-slug/ locally to confirm it renders. That's the acceptance path for POK-378.