DEV Community

Cover image for A Software development setup on Apple Mac
Nalaka Jayasena
Nalaka Jayasena

Posted on

A Software development setup on Apple Mac

This is my current setup- sharing for my future self and anyone else that stumbles on here.

Table of Contents

The bare necessities

The Command Line Developer Tools:

xcode-select --install

The default installation location is /Library/Developer/CommandLineTools, you can double check with xcode-select -p. Check the contents of the usr/bin sub-directory for all the tools that this gives you.

The Homebrew package manager.

iTerm 2 - a great replacement for the built-in terminal app.

Oh My Zsh - spices up the shell.

Visual Studio Code - code editor

The development editions of Chrome and Firefox web browsers:

Note taking:

  • Evernote - great for taking a quick note on the phone and picking up from the computer
  • Typora - surprisingly good markdown editor

Communication and media:

And some miscellaneous utilities:

Back to TOC.


Volta is great for managing JS command line tools.

Install with:

curl | bash

Later when Volta needs to be updated, repeat the same command.

Install Node.js

volta install node

Install any JS tools from NPM with volta install package-name - e.g.

volta install serve          # Serve a local directory over HTTP
volta install prettier       # Code formatter

Later, a tool can be updated by repeating the install command.

Back to TOC.


Use the Rustup script:

curl --proto '=https' --tlsv1.2 -sSf | sh

Update with rustup update

Self uninstallation is supported with rustup self uninstall

Back to TOC.


Download the .dmg installer for the latest stable Java SDK from Oracle and run.

Back to TOC.

Discussion (9)

donohutcheon profile image
Donovan Hutcheon • Edited on

I have to use Mac for work - I really hate it. Over priced, under powered and generally awful (when compared to Linux and even Windows now-a-days). But I use Many Tricks Witch for alt-tab switching - makes my life somewhat bearable. Caveat - Its a paid app though - you would think this would be tablestakes functionality - that's Apple for you.

itermocil is also a useful tool especially if you have a whole environment of microservices you need to run in development. Being able to run Docker natively would be better but hey! Make lemonade when you have lemons :-)

nalaka profile image
Nalaka Jayasena Author

I also moved from Linux & Windows as the daily driver to Mac, so I empathize with how you feel. I even brought some task switcher app in my early days - don't remember the name, and I don't use anymore.
The thing is, you eventually you get used to the Mac way of doing things, and then you really don't want to to go back to Linux or Windows. :)

back295 profile image
Marko Korhonen

I use "dotfiles" repo approach to setup my Mac(s).

Basically, Oh My Zsh and from there software using Brewfile. Symlinks certain dotfiles from the cloned repo.

See it here:
Does not include any secrets or private stuff.

nalaka profile image
Nalaka Jayasena Author

Never tried this approach, which makes me really sorry that I didn't :)

Thanks to your comment, when moving to Big Sur, I will definitely use a dotfile repo instead of manually copying over my dotfiles!

koistya profile image
Konstantin Tarkus

Looks good :)

svasylenko profile image
Serhii Vasylenko

Why Evernote and not built-in Notes?

nalaka profile image
Nalaka Jayasena Author

I guess personal preference- also, I use Android phones.

humzakhan profile image
Humza K.

Have you tried Notion? You will drop Evernote in a heartbeat if you did :)

nalaka profile image
Nalaka Jayasena Author

I had looked at it sometime back but didn't use it because there was a restriction on the number of blocks we can have on the free plan. But after your comment, I went back and found that they don't have that restriction anymore. So yes, you maybe right about dropping Evernote after all. I've imported all my Evernote stuff into Notion and so far it was great. The mobile apps are not as fast as Evernote but I can live with it given all the extra features that Notion has. So thanks! :)