This site
Statamic 6 on Laravel 12.
PHP 8.2, deployed via Forge. Vite for assets, Tailwind for utility classes, hand-written SCSS for everything else.
Uses
The tools, the hosting, the hardware, and all the small bits and pieces that quietly keep a freelance practice running. I update this page when something genuinely changes, rather than for the sake of it.
Last updated · 9 May 2026
This site is hand-built. It isn't a template, and it isn't a page-builder. It's exactly the same stack I'd recommend to clients running editorial websites at scale.
I name what I use here deliberately. If a tool is on this page, it's because it has genuinely proved itself in real client work over the years, not because it had a slick landing page.
This site
PHP 8.2, deployed via Forge. Vite for assets, Tailwind for utility classes, hand-written SCSS for everything else.
Codebase
Pest for PHP testing, Laravel Pint for formatting, GitHub Actions for CI. Conventional commits, trunk-based, deploys on green main.
The everyday tools that get the work shipped. None of these are particularly exotic, and that's the point. They've each earned their place by being the one I keep coming back to over the years.
001 / Editor
Laravel-friendly extensions: Intelephense, Tailwind IntelliSense, GitLens. Settings-sync across machines.
002 / Terminal
Wezterm for a sane font-rendering pipeline, Starship for prompt, zsh for everything else.
003 / Local dev
One install, every PHP project on a clean .test domain. Replaced Valet and Docker for everything but the truly weird.
004 / Browser
Arc for daily, Chrome for testing and DevTools. Safari and Firefox for cross-browser sweeps before launch.
Boring infrastructure. Predictable, observable, easy to hand to the next developer.
Most client sites land on the same setup. The exceptions are well-justified, not impulse choices.
Hosting
Laravel Forge on DigitalOcean droplets. UK region by default, sized to the workload rather than to a price tier.
DNS, CDN
Cloudflare for the Page Rules, the image resizing, and edge caching wherever it genuinely makes a difference.
Backups
Nightly via Forge to S3-compatible storage. Tested restores quarterly, because backups you haven't restored aren't really backups.
Monitoring
BetterStack for uptime and status pages, Sentry for application errors. Both EU-hosted.
The site is hosted with green-energy providers. I’m a member of Ecologi for monthly carbon offsetting tied to client work and household. Not perfect but better than nothing, and I’d rather be honest about that than pretend otherwise.
The desk that does the work. Replaced thoughtfully, not annually.
Each piece earns its place by lasting. The MacBook is on its third year and the headphones on their fourth. Buying once and well still saves more in the end than chasing the latest of anything.
Daily driver
M3 Pro, 36 GB of RAM. Carries everything from local Laravel stacks to the heavier client builds without breaking sweat.
Display
One display is enough. Switching contexts is the real cost, not the number of screens, and a single big window helps me stay in one piece of work at a time.
Keyboard
Split, columnar, low-profile. Took a fortnight to relearn typing on it, and I would not go back to a regular keyboard now.
Mouse
Heavy, accurate, lasts forever. Replaced one in eight years and only because the scroll wheel finally gave up.
Audio
Noise-cancelling earned its money the first time the road outside the office got dug up. Worth every penny on a deep-work day.
Curious how the site itself was built?