My Testing Strategy: Unit, E2E, Load, and Chaos Testing Explained
A practical breakdown of the four test types I use on every production app, with tools and trade-offs for each.
Articles on microfrontend architecture, frontend platform engineering, and scaling frontend teams.
A practical breakdown of the four test types I use on every production app, with tools and trade-offs for each.
A reference for getting Coolify running and configuring apps: server setup, swap, OrbStack local dev, and deploying via volumes or ports.
How I wired up Drizzle ORM with Bun's native SQLite driver.
How I set up automated deployments to a VPS without a public IP address, using a self-hosted GitHub Actions runner.
The directory structure I use for TanStack Start apps, with explanations of each convention and why the routing layer is laid out the way it is.
Common commands for interacting with Homebrew, the macOS package manager
Why I replaced fontsource's auto-injected @font-face rules with manual declarations to trim unnecessary @font-face rules and load Latin-only subsets.
How I set up PostHog in a statically prerendered TanStack Start site, covering SSR-safe initialisation, SPA pageview tracking, and proxying through Vercel.
How I replaced the auto-generated sitemap in TanStack Start with a hand-rolled server route to get real lastmod dates and per-URL priority control.
How I built a realistic SSR load test rig for TanStack Start, wired up prom-client for Prometheus metrics, and what the results looked like under load.
How to configure TanStack Start's static prerender target and deploy it correctly to Vercel, including the non-obvious vercel.json settings that make routing work.
A deep dive into the options for handling Markdown content in Next.js applications
A quick guide on how to use GitHub Models with the AI SDK
My current macOS development setup guide, covering installing apps and configuring system settings
Every couple years I like to redesign my portfolio using the trending technologies in the web development community. This year I wanted to try out Next.js with App Router, Tailwind CSS and Content Collections.
I've recently been working with Next.js and React Server Components, which provides a nice way to build fullstack web applications quickly. One of the trickiest parts was working with forms and server actions, these are my notes on what I figured out.
I found some tricks with getting a Nomad dev environment working reliably on Mac, particularly a Apple Silicon Mac.
I was looking at a simple way to do GitOps with Nomad for my Homelab. Unlike the Kubernetes ecosystem, there doesn't seem to be many examples of GitOps workflows in Nomad.
Setting up webapps can be time consuming, particularly when the goal is to build a quick proof of concept of something
I like to change my color theme based on the environment I'm working in, this guide outlines how to setup single-click dark mode switching on macOS.
My notes on using devcontainers for frontend development
I wanted to install Linux on a portable SSD I had and make it bootable from my Macbook, so it needed UEFI support. I didn't find a nice method of doing it online, so I found my own way.
CORS (Cross Origin Resource Sharing) allows access to resources from other domains, a good use case for this is a web app trying to fetch data from an API on another domain. These are my notes on setting up CORS with Python.