Setting up your development environment on your Macbook

This article contains information about the programs that might come in useful in your day to day development. I used macOS as a destination, but I am pretty sure most of these programs have different flavours, depending on your preferred operating system.

Also, it is intended to be just an enumeration of the useful technologies – a fun generic name for whatever we have on our computers – and some ideas on how to keep your work clean and safe.

Clean start

At times you might need to completely cleanup your computer. You can do that following the following simple steps:

  • Restart / Shutdown the laptop and upon start hold Command + R until the logo appears;
  • Select Disk utility;
  • Erase Mackintosh HD and remove Mackintosh HD - Data if present;
  • Click Install macOS.


Useful programs


Ferdi is an open source spin-off of Frantz. It is mostly a free messaging app. It will help you keep your focus in one place when dealing with communication. It includes WhatsApp, Gmail, Facebook and many-many more.


In programming nowadays, the command line is your friend. In many situations you will need more than one, so.. something like iTerm will come in handy.

An important customisation can be to make the terminal slide down when using a certain shortcut.



The best choice for a package manager is homebrew. More information is available here:


Zsh will make your terminal way more attractive. The basic version comes with some nice themes. And you can also have plugins installed to ease even more your interaction with the terminal (e.g. add some autocomplete). You can use antigen to easily customise the looks and functionality.


Make sure you have Git installed on your system. If the name is new to you, then search some tutorials about it as soon as possible, because it is at the root of web development (this is our target, though it can probably be found in almost anything) nowadays.


NVM helps you switch between node.js versions easily. You might not want to target programming in node.js, but even so, it will provide more control over the popular npm command. By using the npm package manager, you will be able to install command line tools that will save the day.


With docker and minimal knowledge about how to use it, you will avoid the hustle of installing and maintaining webservers and databases on your computer. This is the smallest advantage you have. The greatest: consistent configurations between your project’s environments – later on you will natually get the meaning of this.

Visual Studio Code

This a high performance code editor. Its ease of use and versatility are amazing. Quick tip, available in most nice editors: do use the embedded command line.

Useful extensions, apart from those the editor suggests automatically:

More tools


This application help you properly uninstall applications on your mabook.


This is a nice alternative to TeamViewer. It is not as notorious, but it properly offers an easy remote control option.


Sometimes you might need to connect directly to your database. This program will help you do that in a mature way. However, do remember to use migrations in your project.


For extra browsers, apart from Safari, my choice is for Firefox, Brave and Chrome.

General ideas

Will will wrap up with some general ideas about how to use your computer efficiently:

  • do not save things locally – nowadays, with cloud storage being really affordable, it would be a shame to put yourself in the position where you are depended on the machine you are working on;
  • do look into macOS (or whatever operating system you use) keyboard shortcuts and be aware of what shortcuts your chosen editor might offer;
  • look into organising your tasks using a dedicated task manager (e.g. trello or wunderlist);
  • even if many of the “old ways” are obsolete, remember that not everybody is aligned with the lastest workflows or tools, therefore you could pay attention as well at older.. things or ways to complete projects;
  • use github as a source of information;
  • be up to speed with notions like: DNS, hosting, domain name, FTP, SSH, SSL, best practices etc.