Back home

What I use to build the web.

A short list of the tools I reach for. Boring choices on purpose — they stay out of the way so the design and the content can do the work.

Build

Next.js (App Router)
React framework with static generation by default. Fast pages without an SPA tax.
TypeScript
Strict mode. Catches the boring bugs before they ship.
Tailwind CSS
Utility-first. Lets me ship a custom design without a custom CSS bundle.
Geist (font)
One sans-serif. Hierarchy from scale, not from font count.

Backend & data

Sanity
Headless CMS. Lets clients update content from a phone in 30 seconds.
Resend
Transactional email for contact forms and notifications.
PHP / Python
When a project needs custom backend logic outside the JS world.
Postgres
Default database when one is needed. Boring on purpose.

Hosting & ops

Vercel
Default hosting for marketing sites. Free tier covers most clients.
Cloudflare
DNS, caching, and a free TLS edge in front of slower origins.
GitHub
Source of truth. Every project is yours when we're done.

Workflow

Cal.com
Discovery calls. Open source, no awkward third-party branding.
Stripe + Wise
Payments. Whichever is easier for you.
Linear
Internal task tracking. Clients see weekly previews, not Jira.

Want to talk about a project? Get in touch.