Will's avatar

⬅️ See more posts

My development stack

4 August 2021 (2 minute read)

🔮 This post is also available via Gemini.

100daystooffload technology

💯 100 Days to Offload

This article is one of a series of posts I have written for the 100 Days to Offload challenge. Disclaimer: The challenge focuses on writing frequency rather than quality, and so posts may not always be fully planned out!

View other posts in this series.

Some people have complex development processes and flows - making use of tools such as heavy editors and IDEs, Docker for running and building locally in development, or even develop entirely remotely over SSH connections. Other people use simpler combinations of tools.

I thought I’d write briefly about what I use on a daily basis. I have a relatively simple development tech stack:

  • Terminal application (I use the Terminal.app application that ships with my Mac, since this works best for me)
  • tmux - for handling multiple windows and panes
  • tmuxinator - for managing complex tmux sessions (I recently wrote more about this)
  • vim - a simple yet powerful text editor
  • git - for source control

I also use a small number of Vim plugins - installed via Vundle - to add nice quality-of-life features to my editor:

  • pangloss/vim-javascript - better JavaScript syntax highlighting
  • mxw/vim-jsx - JSX syntax highlighting
  • dart-lang/dart-vim-plugin - Dart language syntax highlighting
  • rust-lang/rust.vim - Rust language syntax highlighting
  • morhetz/gruvbox - Attractive Vim colour scheme
  • airblade/vim-gitgutter - In-editor Git indicators
  • ctrlpvim/ctrlp.vim - Awesome and quick file searching
  • scrooloose/nerdtree - Easy file/directory tree navigation

I backup and sync my dotfiles (e.g. my .vimrc and .tmux.conf) by symlinking from my Nextcloud sync directory.

And that’s it, really. In terms of per-project management, I make use of native tooling depending on the languages and frameworks being used. For example, for Node/JavaScript projects I use yarn and for Python projects I use virtualenvs and Poetry for handling dependencies.

It’d be nice to have an elegant cross-platform approach to provisioning new machines with this setup, but given its relative simplicity it isn’t too much of a headache to get things back up and running again when I switch machines!

✉️ You can reply to this post via email.

📲 Subscribe to updates

If you would like to read more posts like this, then you can subscribe via RSS.