Important
πΌ I'm looking for my next role! I'm a product engineer with 18 years of experience, specialising in front-end development and design systems, and I'm available for work from mid-July 2026. If you think I'd be a good fit for your team, email me or take a look at zander.wtf first.
- ZUI β a CSS-first UI library with design tokens, a layered architecture, and optional React, Astro, Solid & Vue components. No build step required.
- Otter β my self-hosted bookmarking app: links, articles, videos and half-watched TV shows, saved and tagged on your own infrastructure. It now has a native SwiftUI iOS app alongside the browser, Raycast and terminal clients.
- astro-d1-search β full-text site search for Astro backed by Cloudflare D1 and SQLite FTS5. Build-time indexing, an injected
/api/searchendpoint, and no third-party service. - Flora β every plant in our house and garden, written up: what it wants, when it flowers, and what needs doing to it before the frost.
- Reps β a daily JavaScript coding puzzle. Solve one function a day in your browser.
- Free Fonts β a curated showcase of free, high-quality typefaces to browse and preview.
- Simmer β a recipe management app.
- zander.wtf β my website/portfolio/blog, built with Astro, where I write about things like the CSS features powering ZUI, my zero-to-one tech stack, and evaluating AI agents through side projects.
- zed-stack-starter β a modern full-stack React starter: Postgres + better-auth + Drizzle ORM, deployed to Cloudflare Workers.
- zed-astro-starter β an opinionated Astro starter with ZUI, ready to deploy to Cloudflare Workers.
- My lab β experiments, little tools and things in progress: a drawing app, a keyboard-only navigation demo, a data transformation dojo, a draggable 24-hour clock and more.
- A flurry of small tools and libraries:
- react-status-bar β a portal-based status bar system for React
- Spotify Favourites β find your actual favourite artists, not just the biggest play counts
- Lang Compare β programming language features side-by-side
- Surround for Zed β a Zed extension written in Rust. Never made it into the extension store, so it's a work in progress: clone the repo and install it locally to use it
- npm packages like strifx, xtractr, url-merge and kit
- my various Raycast extensions
Many of these were built while putting AI coding agents (Claude Code, Cursor, Amp) through their paces on real work β I wrote about that in Things I've been building recently while evaluating AI agents.
- What should actually go in your CLAUDE.md? β The guidance contradicts itself and almost none of it is dated, so here's a map of who says what, what the research supports, and how AGENTS.md fits in
- astro-d1-search: site search for Astro in one integration β I extracted the search implementation I built for this site into an npm package, so you can add full-text search to your own Astro site
- Building site search with Astro and Cloudflare D1 β Replacing Algolia on this very website with a self-owned, full-text search API built on Cloudflare D1 and SQLite FTS5, searchable from the site itself and from Raycast
- text-wrap, overflow-wrap and word-break: which one do I actually want? β A practical guide to CSS's confusingly-similar text wrapping and breaking properties, and when to reach for each one
- The Otter ecosystem β One bookmarking app, many faces β a tour of the web app, browser extensions, iOS share extension, Raycast extension, terminal UI, and desktop experiment that make up Otter
- The ZUI ecosystem β The tooling that has grown up around my CSS-first UI library β framework components, a VS Code extension, a Raycast extension, and a publishable Astro docs theme
- zed-ios-app-starter β A SwiftUI and SwiftData starter for native iOS apps β tabs, onboarding, preferences and theming, with no third-party dependencies
- astro-d1-search released on npm β My site search is now an Astro integration on npm, and this site runs on the package instead of its own copy of the code
- A native iOS app for Otter β A native SwiftUI app for Otter with no web views anywhere, disk-cached bookmarks, and saving from the share sheet, deep links or Shortcuts
- Site-wide search + Raycast extension β Full-text search backed by Cloudflare D1 and FTS5 with no third-party service, plus a Raycast extension built on its JSON API
- Lab experiments + ZUI playground β New lab experiments including an endless, self-generating page, which also became a procedural playground in the ZUI docs
- Letterboxd watchlist for Radarr β A Radarr-compatible endpoint that serves my Letterboxd watchlist as an import list β add a film, and itβs ready to grab
Both lists update automatically from my feeds.
- π Most recently I've been a Staff Software Engineer and web team lead at Dare, maintaining and evolving their energy trading platform and building a new component library.
- I've worked for a wide variety of startups, agencies and companies like Fathom, Utopia Music, Babylon Health, Digital Futures, Heights, Curve and FairFX amongst others.
- π¬ Ask me about design systems, AI-assisted development, or what I think of React
- π« How to reach me: email or Bluesky
- π Pronouns: he/him/his
- β‘ Fun fact: I used to be an assistant cameraman and worked on many TV shows, documentaries and one movie
- ποΈββοΈ Golf
- π΅ββοΈ Mountain biking
- Making π Pizza & ππ₯ BBQ
- πΏ Movies
- π₯ Drumming
- π Salted Caramel
Tip
Feel free to say hello, fork my code or read my blog or checkout my blog/portfolio at zander.wtf