What I use
The tools behind my day-to-day work, from my desk to the services my side projects run on.
Desk & hardware
MacBook Air M1
My personal laptop.
MacBook Air M4
My work laptop at Module.
iPad Pro M4
Sometimes a second screen, through Sidecar.
Lenovo Q24i-1L
My external monitor.
Jin Office Ascend
An electric height-adjustable desk with a monitor riser, so I can switch between sitting and standing.
GreenSoul Jupiter Pro
An ergonomic chair for the sitting part.
Editor & code quality
VS Code
Where I write most of my code, set up to format on save and apply ESLint fixes as I go.
Prettier
Formatting is never a code review topic. With the Tailwind plugin, class order isn't either.
ESLint
Catches the bugs that types don't.
Fallow
Dead code, duplication and complexity checks that comment on every pull request, this site's included.
AI & workflow
Claude Code
My go-to coding agent for reviews, planning and the trickier changes.
Codex
A second agent that picks up well-specified tasks.
OpenSpec
Every change starts as a short proposal, design and task list that I approve before any code is written.
Dex
A task tracker that lives in the repo, so the backlog is versioned right alongside the code.
Impeccable
Design skills and anti-pattern checks that keep AI-built UI from looking AI-built.
What I build with
Next.js
My default for anything on the web, from marketing sites to full products. This site runs on it.
TypeScript
For anything that will outlive the weekend.
Tailwind CSS & shadcn/ui
Fast styling and accessible primitives I own and can change.
Effect
Typed errors, dependency injection and retries on the back-end at Module.
React Native & Expo
Wordwagon is built with Expo and shipped to the stores with EAS.
Turborepo
Keeps Eras' marketing site, product and shared packages in one fast monorepo.
pnpm & Bun
pnpm for installs that stay fast and strict. Bun when I want one tool for everything.
Services
Supabase
Postgres, auth and storage for Eras.
Vercel & Netlify
Hosting with a preview for every pull request. This site lives on Vercel.
PostHog
Product analytics, so I know what people actually use.
Sentry
Hears about crashes before users have to tell me.
Firebase
Analytics for Wordwagon on iOS and Android.
Claude API
Powers the AI features in Eras.
Found something new?
Fill my cup: espresso, then milk, then froth. Up to three pours each.
– likes
Pour an espresso