Featured project

Driftwood

A static-first CMS that compiles Markdown to a prerendered site and a typed search index in one pass.

  • TypeScript
  • Bun
  • SvelteKit
  • SQLite
  • FTS5

Driftwood is the toolchain behind sites like this one: point it at a folder of Markdown, get back a prerendered, SEO-clean site and a search index that's ready at build time, with no database on the request path.

The problem

I kept rebuilding the same pipeline for personal sites — read Markdown, parse frontmatter, sanitize, render, generate feeds — and getting it subtly wrong each time (draft posts leaking into feeds, slugs drifting from filenames). I wanted one honest, typed pipeline.

What I built

A Bun-native build step that globs content, validates frontmatter against a schema, renders Markdown with raw HTML disabled and then sanitizes the output, and emits both static routes and an FTS5 index in a single pass. Filenames are the slugs — there's no second source of truth to disagree with. The search index is built once and shipped, so query time never touches a network.

Outcome

Clean Lighthouse scores out of the box and a content workflow that's just editing files in git. The constraint that paid off most: no dynamic surface on the critical path.