Default stack
This is the setup I reach for when the product is mostly pages, forms, and content that should load before the coffee cools — not because other stacks are lesser, but because the predictability and efficiency pays rent.
Astro
Ship HTML, hydrate only the widgets that earn it, borrow React or Solid for the stubborn bits.
Tailwind CSS v4
Tokens in CSS, utilities at build time — fewer bespoke stylesheets to babysit later.
Cloudflare Workers
Static assets and edge handlers in one bill; geographic latency stops being an excuse.
TypeScript
Strict end-to-end — props, loaders, env — so refactors do not turn into whack-a-mole.
Discovery-shaped
Structured data, clean titles, human URLs — the unglamorous work search engines actually read.
Accessible by contract
Keyboard paths, focus order, captions — negotiated upfront, verified before launch.
What you get
Portfolio
atflux
1 March 2026
Multi-brand creative and consultancy hub. Astro monorepo with subdomain routing on Cloudflare Workers, shared component library, and per-brand theming for Flow, Shoots, and Tech.
Liberation in Motion
1 November 2025
A fast, accessible website for a somatic bodywork and trauma therapy practice. Built on Astro with Cloudflare Workers, full SEO, and a provider-agnostic contact form system.
Website work
New build or refresh — goals, must-haves, timeline, and your budget or range? Let's find out if we're the right fit together!