Skip to main content

Uses

What I reach for

The stack that runs this site and the work behind kwil-db, with one reason each. No aspirational tools. Everything here earns its place in production. Hardware and editor I'll add as I get to them.

Languages & data

Go

One static binary. The deploy story fits in a sentence.

PostgreSQL

Boring durability, beaten on for thirty years. I trust its failure modes over mine.

TypeScript

The cheapest tests I keep.

Zod

Parse input at the edge, then trust it everywhere inside.

Web

Next.js

App Router. One framework for the page and the API behind it.

Tailwind

Design tokens live in the markup, so there is no stylesheet to drift out of sync.

shadcn/ui

Components I own in the repo, not a dependency I rent.

Drizzle

SQL I can still read, with types I did not hand-write.

Ship & run

Vercel

git push is the deploy. I spend the saved minutes on the actual problem.

Neon

Postgres over HTTP that scales to zero between requests.

pnpm

A sane lockfile and a disk that is not full of duplicate node_modules.

Resend

Transactional email that is just an API call.

AI in the loop

Claude

Structured outputs, so the model returns schema-valid JSON instead of a parsing gamble.

Claude Code

Agentic coding in the terminal. Parts of this site were built with it.