Software I use and gadgets I love
The list of all the tools, software, and hardware I use (or used to use) to stay productive and ship great things.
Frameworks
gatsbyjs.com
My static site generator back in 2018, with built-in lazy-loading and image optimization that felt like magic.
nextjs.org
I discovered Next.js v9 after hitting the same routing, code-splitting and SSR hurdles with plain React, and got hooked on its simplicity. Every major version makes it simpler still. It's my go-to for any web project, my new Ruby on Rails.
nitro.build
Write your server once and deploy it anywhere: Node, serverless, or the edge. Zero config, and a joy to build APIs with.
rubyonrails.org
Where it all started for me, and its principles and patterns still shape my work today.
Libraries
authjs.dev
Auth.js (previously NextAuth.js) is intuitive, covers most authentication use cases, and is now my go-to for Next.js projects.
chakra-ui.com
Before Tailwind CSS, Chakra UI was one of my favorite React component libraries: well designed, accessible, themeable and composable.
headlessui.dev
Made by the Tailwind CSS team, it's my go-to component library for Tailwind projects.
radix-ui.com
Beautifully detailed unstyled components I reach for wherever Headless UI doesn't cut it.
react-hook-form.com
Complex forms in React quickly become a monstrous mess. React Hook Form is the easiest and most performant way to handle them. I use it for every form, even a single input and a submit button.
tanstack.com
THE way to manage async server state; I can't imagine building a web app without it.
reactrouter.com
Still the most popular routing library for React, and my pick for standalone React projects.
reactjs.org
React blew my mind and got me into frontend development. I taught myself the basics in early 2018 and have mostly worked in its ecosystem since.
rebassjs.org
One of the first component libraries I used, its constraint-based design was exactly what I needed at the time.
redux.js.org
I love its one-way data flow and predictability, but the boilerplate is a lot and there are better alternatives today.
ui.shadcn.com
My go-to way to build UIs today. Accessible components styled with Tailwind CSS, copied into my codebase so I own every line.
swr.vercel.app
Async state management by the Next.js team, with lots of features behind a simple API.
tailwindcss.com
Its intuitive class conventions and beautiful theme set developers up for success like few frameworks do. It stays simple while being extremely powerful. Refactoring UI, by the same team, is a must-read too.
trpc.io
I thought nothing could beat React Query for working with APIs. tRPC brings type safety to data fetching, where it usually ends in frontend projects. A big wow moment.
xstate.js.org
Like TypeScript, XState took time to click, but once it did, I was hooked. State machines are a mind shift worth making for anyone building complex UIs. David Khourshid's videos make it fun to learn.
zod.dev
Zod has been my go-to validation library for years. Its native TypeScript integration is grandiose: define a schema once and get the types for free.
Languages
developer.mozilla.org
CSS has become incredibly powerful, advanced layouts and animations take little code when understood properly.
developer.mozilla.org
Writing clean, accessible HTML is still a useful skill, one I no longer neglect.
developer.mozilla.org
Coming from Ruby, it took some getting used to, but it's a beautiful language when used properly.
typescriptlang.org
TypeScript didn't impress me at first; it felt like it was getting in the way. As codebases grew, getting the types right always paid off. It's now my go-to language for every project.
SDKs
airtable.com
I've used Airtable's API as a backend or CMS for a few projects, a great way to get started quickly.
firebase.google.com
Backend as a service that can be tricky to work with but covers a lot of use cases.
developers.google.com
I used it to build a real-time, bi-directional calendar sync; the webhooks are tricky, but we made it work.
stripe.com
Their API docs are the gold standard of developer experience. Since 2018, Stripe has let me build payment flows as a one-person show. Every time I come back, it's even more enjoyable to use.
sdk.vercel.ai
Makes snappy chat UIs easy, across AI providers, on the frontend and backend.
Editor & Terminal
claude.com
My daily driver and second coding brain. It plans, edits, and ships alongside me in the terminal.
terax.app
My terminal of choice. Editor, AI agents, and web preview in one lightweight, open-source app, without leaving the shell.
code.visualstudio.com
A Sublime Text lover for years, I had to admit VS Code became the best code editor out there.
github.com
A tiny shell script that lets me 'z' around directories instead of 'cd'ing like a caveman.
Build & Code Quality
biomejs.dev
Formatting and linting in one fast toolchain, with a single config. It's so fast I barely notice it running.
prettier.io
Prettier changed my dev life, and it's indispensable for teamwork. Its Tailwind plugin took my Tailwind CSS game to a new level. I can't believe I used to format code by hand.
turborepo.dev
Turborepo makes monorepos painless. It builds and deploys multiple packages from a single repository, and its caching keeps builds fast.
Dev Utilities
docker.com
I've barely scratched the surface, but it makes running databases locally so much easier.
mozilla.org
I find its devtools more advanced than Chrome's, the network panel especially.
postman.com
A game changer when I started working with APIs, and the ultimate tool for API development.
Productivity
cleanshot.com
My go-to for annotated screenshots and quick screen recordings, lightyears better than the native Mac tools.
Workstation
apple.com
Plenty of headroom for dev servers, builds, and a handful of coding agents running side by side.
therooststand.com
This tiny, beautifully engineered stand saved my neck and back through years of working and nomading. It turns any café into my office in 30 seconds. Still the best.
samsung.com
The high-resolution external monitor I dreamed of during all my travel years.