Alex Hinds

PostsAbout

The tools I use for software development

Permalink

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 with fish 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.