DEV Community

Emily A. Pixi
Emily A. Pixi

Posted on • Updated on • Originally published at thecodepixi.dev

New MacBook Pro Dev Setup

A quick run down of everything I did to get my dev environment up and running on my new 2020 MacBook Pro...

First Things First...

Before I did anything with my new laptop, I first made sure to backup anything I wanted to save from my old laptop (a late 2014 MacBook Air). This included making a copy of the settings.json in VSCode, checking for and special settings in the .bashrc and .zshrc files, and backing up all of my documents.

Next Things Next...

The first thing I do with any new computer is go through the setup process and then check for software updates. Then I download any software that I know I'll need.

For this setup this included:

  • VSCode
  • Firefox
  • Chrome
  • Affinity Designer
  • Postgres
  • Discord
  • Slack
  • Zoom
  • Streamlabs OBS
  • Spotify
  • iTerm2 (with OhMyZsh)

Then I went into iTerm2 and setup a new custom profile, as well as making customizations to my OhMyZsh settings.

After I had my terminal setup, I went into VSCode and replaced the contents of the settings.json with the saved copy from my old laptop.

Last Things Last.

The last thing I do to make sure I have everything I need is to go through and make sure I install all of the CLI programs I'll need for my development process. With this computer that meant updating XCode, updating Node and Ruby, and then installing Homebrew, NPM, React, Gatsby, and Rails.

I also made sure that when I was backing up my previous laptop, I made a list of all of the extensions I had in my previous install of VSCode. Re-installing those on my new machine is the last step of the process.

My Favorite VSCode Extensions:

  • Dracula Official (theme)
  • Panda (theme)
  • Prettier
  • ESLint
  • Bracket Pair Colorizer
  • Code Spell Checker
  • Live Server
  • JS JSX Snippets
  • Material Icon Theme
  • Ruby / VSCode Ruby
  • WakaTime

Let me know how similar or different this is from your process of setting up a new machine! This is the basic "must have" list and doesn't include the fun stuff like choosing a new wallpaper or making sure I have my favorite screensaver installed.

xx Pixi / Emily

Discussion (24)

Collapse
moopet profile image
Ben Sinclair

Apart from the language choices, it's fairly similar to my setup.
The only things you mention that are specific to Macs are homebrew, iterm and xcode, and none are specific to a particular model (Macbook Pro). I use various machines that generally don't run MacOS so I don't have to go through those steps and I get a lot of that stuff out the box.

I have a couple of scripts to install things I commonly use and my own little wrapper around stow for my dotfiles, which gets me 90% of the way there.

I dump everything in a single directory or duplicate /home if I'm migrating to a new machine, and then
I spend about 10 minutes every other day for the next week thinking, "damn, forgot about that".

Collapse
eljayadobe profile image
Eljay-Adobe • Edited

My core tools are Xcode, Python 3, Vim, Fira Code, LibreOffice, PyCharm CE, VLC, Visual Studio (formerly known as Xamarin; for .NET or Mono stuff).
I use out of the box Terminal.app, but with a brew bash.
A quick gander of brew: bash, boost, calc, cmake, coreutils, cscope, dmd, fdupes, findutils, gcc, gdbm, gettext, ghc, git, gmp, icu4c, ldc, llvm, lua, mit-scheme, pcre, readline, ripgrep, tidy-html5.
I don't use VSCode (but I see I've got it installed; it's v1.27.2 ... rather stale). Nothing against it, just don't use it. Likewise with Eclipse.
On my Windows box, I use Visual Studio.
The language I code in primarily these days are C++, Objective-C, Objective-C++, Python 3, Bash scripts. My lowkey languages are F#, C#, D, Swift, Lua, Scheme, CoffeeScript2, Elm, JavaScript, TypeScript.
What I miss most from my previous project which was in C#: TDD, NUnit, NCrunch, JetBrain's ReSharper, WPF, and Visual Studio. With NCrunch and NUnit (XUnit.net would be a good alternative too), TDD was actually fun to do. Fun! Yes, I said fun.

Collapse
jpcorry profile image
John Corry

You install Postgres?

I used to install the DB, then I learned that Docker can free me of this. Each project has its dependencies (Postgres, redis, mongo, whatever) in Docker so all I need on my system is Docker.

So much easier.

Collapse
thecodepixi profile image
Emily A. Pixi Author

Docker is on my every growing list, so thanks for the insight! This is really good to know.

Collapse
hhg2288 profile image
Horacio Herrera

I recently did my new macbook setup too!, but I used dotfiles! :)

horacioh.com/writing/setup-your-ma...

this way you can automate MANY things!! hope it helps :)

Collapse
thecodepixi profile image
Emily A. Pixi Author

This is a thing I should really look into. Thanks Horacio!

Collapse
hhg2288 profile image
Horacio Herrera

if you do a github search for dot files you will get a lot of repos with examples!!

for example:

and MANY more :)

Collapse
rhymes profile image
rhymes

I recently restored from a Mojave time machine backup to Catalina on a new computer and it wasn't flawless, as I had to basically reinstall homebrew and its packages.

Fortunately brew bundle helped and most of my apps are installed with brew cask so they were simply listed there and one command later (plus the install time) I was back on with my apps and data (the latter from Time Machine) but I still had to nuke my entire homebrew directory, recompile Python and Ruby (which is understandable) and their packages.

The great thing about this is that I didn't have to configure much as my home directory was in Time Machine, I just went through the new "System preferences" to see what was new as I never had used macOS Catalina before.

My coding setup is pretty straigthforward: zsh + oh my zsh and iTerm2, git on the command line + github's cli, overmind to start processes from Procfiles and Sublime Text 3 as an editor with these extensions:

sublime text 3 extensions.

Probably the fanciest tool is overmind which is quite helpful on the day to day.

Collapse
nenadra profile image
nenadra

Why didn’t you make a Time Machine backup from your old laptop and then restore that backup on your new one? You would have both exactly the same

Collapse
mrrcollins profile image
Ryan Collins

And the migration tool?

(But I usually use a new machine to start fresh, I copy over my home folder and re-install the apps as I need them. My dotfiles are in a repo, but if you copy over your home folder you will already have them. Setting up a new machine doesn't happen enough for me to automate it further. 😃)

Collapse
thecodepixi profile image
Emily A. Pixi Author

I did all of this manually just because I weirdly enjoy that process lol

Thread Thread
mrrcollins profile image
Ryan Collins

And there is definitely nothing wrong with that! 😂

Collapse
thecodepixi profile image
Emily A. Pixi Author

There's something about a fresh new machine that I love and I actually kind of like the setup process. I didn't want to just copy/paste everything from my old machine. 🤷🏼‍♂️

Collapse
nenadra profile image
nenadra

It is definitely something special when you start from fresh. When I was working on Windows, I never used backup tools, I always reinstalled everything from scratch. But now on Mac, the Time Machine works so good that simply the swapping from one to another computer and immediately starting working on the new one without setting up a single thing, that is just incredibly convenient. Or maybe I am just too old :D

Thread Thread
thecodepixi profile image
Emily A. Pixi Author

This was my first new machine in about 6 years so I just wanted to start fresh. If I was switching machines more frequently for some reason I could see the benefit in automating the process, for sure.

Collapse
5422m4n profile image
Sven Assmann

I recommend spectacle a window arrangement tool without I couldn’t live and code

Collapse
thecodepixi profile image
Emily A. Pixi Author

Oh cool, thanks for the tip! Most of the time I just use the built in screen splitting and it's fine for most things.

Collapse
5422m4n profile image
Sven Assmann

True, but It lacks the nice key bindings :)

Collapse
goudekettingrm profile image
Robin Goudeketting

Sounds like my setup! Except I cannot get ESLint and Prettier to work side by side.. Any tips?

Collapse
pierskarsenbarg profile image
Piers Karsenbarg

Yay another Dracula fan. I have it EVERYWHERE

Collapse
dthompsondev profile image
Danny Thompson

This was awesome Emily! Really well done!

Collapse
markwitt_me profile image
Mark Witt

The extra touch screen on the new MacBooks has amazing potential for developers. I would use them to access npm scripts!

Collapse
vuesomedev profile image
Gábor Soós

Have you thought switching Postgresql with Docker containers? Brew -> Docker -> Postgresql