A list of tools, frameworks and equipment that I use to build software - no particular order. Many of these I've been using for some time.
Infrastructure
- Version control -
git
- Remote - github never bet against microsoft
- Hosting - vercel - simple and easy to use.
- Hosting - fly.io - when I need a server.
- Hosting advanced - aws - when I need specific functionality and complexity.
- Database (mostly wrapped by prisma)
- none (if the repository data is enough)
- sqlite3 (for most things)
- postgresql (for more complex things usually
via
fly.io
)
Development environment
All the things I use to develop software.
- Preferred language - typescript - I've been using it for years and it's still the best option.
- Package manager - pnpm - To me the successor to yarn and with some elegantly designed smarts over npm. Also independent.
- Editor - vscode - never bet against microsoft
- Terminal - iterm2 sometimes I still use
terminal
though. - Code style - prettier - Simple, opinionated and extensible.
- Linter - eslint - extremely powerful and configurable.
- Shell - zsh with
oh-my-zsh
, played briefly withfish
but found it had too many compatibilit issues. - Browser - chrome, will stil test on other browsers and experimented with arc but found it too slow / tried to do too many things.
Frameworks
The key meta frameworks/tools that I use to build software.
- Next.js - my go to for build simple web apps for some time.
- Prisma - a new addition as an ORM but excellent tooling means it's been easy to integrate.
- Tailwind CSS - great sensible defaults for design and excellent tooling. Easy to extend once you learn the basics.
- Vite - just works.
- React - I'm liking it less in the last few years but it's still the standard. I would like to give Vue another go though.
- TRPC - typesafety across network calls and works well with prisma.
- MDX -
- Docker
- Docker Compose
Editor extensions
There are some here that I've omitted but these are the core set. I like to keep the number of extensions to a minimum in general but I'm not afraid to add more if need be.
- Docker - a must for working with docker
- ESLint - background process for running eslint while developing
- Prettier - background process for running prettier while developing
- Gitlens - key metadata and insights from commits inline
- Github Actions - syntax highlighting and snippets for github actions
- Github Copilot - AI pair programming
- MDX
- Prisma - a must for working with prisma.
- Tailwind CSS IntelliSense - autocomplete for tailwind classes.
- Vetur
- Auto Rename Tag - automatically rename paired HTML tags. Very useful for keeping refactoring simple.
Design
- Figma - increasingly the defacto tool for designing for the web
- Leonardo - a neat dynamic palette generator
- Style Dictionary - a great tool for generating design tokens
Project management
- Notion - it has all the things I need (databases + block based editing) and has a clean UI.
Equipment
- Macbook Pro 14" 2023 - I previously was on a 2016 and hoo-boy the Apple silicon is phenomenal. Unix-based system with a great UI and integrates with all the other Apple ecosystem stuff I use.
- Sony WH-1000XM5 - just the best headphones
- Apple Watch SE - simple, cheap, and does all the important things I need in a smart watch. Nice to have includes addressing push notifications directly, automatic logins and limiting distractions from my phone.
- Artemide Tolomeo desk lamp - just a really nice lamp.
You can read more of my writing here. You can also subscribe to my RSS feed here.