More posts

My development stack

4 August 2021 (a year ago)🏷️ #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 articles 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!

📲 Enjoyed this article? Subscribe to updates!

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

Subscribe to an RSS feed