Tools
of the trade
Every project gets the tools that fit it, not the ones I happen to like. Here is what I work with, what each tool is good at and when I reach for it.
CMS & site builders
Where content gets edited: classic, headless and visual, depending on who edits what and how often.
WordPress
WordPress is the most widely used CMS on the web. When it's the right choice, how I set it up to stay fast and secure, and what to watch out for.Contentful
Contentful is a headless CMS for structured content across websites, apps and channels. Its strengths, its limits and when I use it.Storyblok
Storyblok is a headless CMS with a visual editor: editors build pages from components and see changes live. When it fits and how I set it up.Sanity
Sanity is a headless content platform with a fully customisable editing studio and real-time collaboration. Its strengths and when I use it.EmDash
EmDash is a newer open-source CMS built on Astro and TypeScript, with a WordPress-like model of pages, posts and plugins. What it offers and when it fits.Webflow
Webflow is a visual website builder with a built-in CMS and hosting. When it's a good fit for marketing teams, and where its limits are.Framer
Framer is a design-first website builder with built-in animation, CMS and hosting. When it's the right tool and where its limits are.
Frontend
Frameworks and styling for fast, accessible pages and web apps.
Astro
Astro is a web framework for fast, content-driven websites that ship almost no JavaScript by default. Why I build most marketing sites with it.SvelteKit
SvelteKit is the app framework for Svelte: fast, compact web apps with server rendering, routing and forms built in. When I use it.Next.js
Next.js is the most widely used React framework for web apps and large websites. Its strengths, its trade-offs and when I build with it.Tailwind CSS
Tailwind CSS is a utility-first CSS framework that turns a design system into code. Why I use it for consistent, maintainable styling.
Animation
Motion that guides attention, from small transitions to scroll-driven scenes.
Commerce & payments
Shops, checkouts and payments, from a single product to a full catalogue.
Shopify
Shopify is a hosted e-commerce platform for shops of every size. When it fits, how I set it up and how it compares to self-hosted shops.Shopware
Shopware is an open e-commerce platform from Germany, strong in B2B, complex catalogues and the requirements of European markets. When I use it.Stripe
Stripe is a payment platform for online payments, subscriptions and invoices, built into websites and apps. How and when I use it.
Backend
APIs, databases and the logic behind web apps.
Laravel
Laravel is a PHP framework for web applications, APIs and custom backends, with batteries included. When I build with it.Ruby on Rails
Ruby on Rails is a mature web framework for building complete web applications with a small team. Why it's still a strong choice and when I use it.NestJS
NestJS is a TypeScript framework for structured, scalable backends and APIs on Node.js. When its structure pays off.Go
Go is a compact, fast programming language for services, APIs and tools that run reliably with few resources. When I use it.PocketBase
PocketBase is an open-source backend in a single file: database, authentication, file storage and an admin panel. When it's the right fit.
Design
Where interfaces, layouts and design systems take shape before they are built.
Hosting & infrastructure
Where sites run: fast around the world, secure and with little to maintain.
