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.