You have a new Mac and you are so excited to get going on creating awesome applications on it. First, though, you need to install some dev tools. What do you put on your brand new machine?
Here is my list of what I run through whenever setting up a new Mac.
Oh My Zsh
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
I love using Oh My ZSH instead of the default Bash. Why? Here are just some of the reasons:
- Thousands of custom plugins and themes. I can constantly update my terminal in look and functionality whenever I need to, pretty easily.
- Autocompletion of the
cdcommand. Less keys I need to type the better.
- Spelling correction. This one is a big one for me. Who wants to get thrown off course because your finger hit the a instead of the s key?
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
MacOS does not have a default package manager unlike Linux, for example. That means managing your dependencies can be a real challenge. This is precisely what Homebrew takes care of for you. It gives you a universal package manager for your Mac that you can use for just about everything. Want to see an example?
$ brew install NAME_OF_PACKAGE
That's all it takes to use it. Pretty nice, right?
This is the newest tool I install regularly on my machines, and I've really come to enjoy having it. Fig adds MacOS style autocomplete to your terminal. It is also completely customizable, so you can add custom autocompletions as you need them.
$ brew install asdf
No matter what language you are working with, chances are you will need to install it on your computer. Furthermore, you will probably need to maintain different versions of that language for robust testing and compatibility. Doing all of this manually can be a real headache, while
asdf makes it as straightforward as it can be.
Want to install a particular version of Ruby with
$ asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git $ asdf install ruby 3.1.0
Want to switch between versions of Ruby using
asdf that are installed on your machine?
$ asdf global ruby 3.1.0
$ brew install yarn
If you are working on modern web applications, chances are you will need a Node package manager. The two most common options are either
npm. They operate functionally very similarly, so choose the one that makes sense for your application development. You may even need to install both depending on the stacks you work in.
$ brew install gh
The GitHub CLI brings all the functionality you need in working with GitHub to your command line. It collapses sometimes complex git commands into a few words, for example to create a new pull request:
$ gh pr create
To clone a repository on your machine:
$ gh repo clone path/to/repo
I use it practically every day when navigating through pull requests, issues, and committing changes.
New Relic CLI
$ curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=YOUR_NEW_RELIC_API_KEY_HERE NEW_RELIC_ACCOUNT_ID=YOUR_NEW_RELIC_ACCOUNT_ID_HERE /usr/local/bin/newrelic install
This one might seem a bit interesting. Why would you install an application performance monitoring and monitoring tool on your machine? Because, it provides incredible data on your local computer!
Take a look at this screenshot just of the summary view of what is going on within my computer.
When you start intensively developing on your computer, you are going to want to have an understanding of the health of your machine, and New Relic gives you that perspective. Best of all, a New Relic account is always free, so there's really nothing to lose and a whole lot to gain.
Was this blog post helpful? Consider sponsoring my work on GitHub to help me create more content like this! ❤️
Top comments (10)
Everyone has their own preferences - for instance I don't see the point of things like
gh clone repo path/to/repoover
git clone repo path/to/repoexcept that the former is presumably restricted to only working with Github. But if you work exclusively with GH or Microsoft systems then I suppose it's a little less typing.
However, I will engage thrusters on my standard response to this:
bashhasn't been the default on MacOS for quite a while. It probably still would be, but they don't like touching copyleft software, which is why the version of
bashwas so old (it was the last non-GPL version available) and why people on other OS had access to a decade-newer version. The comparison of a plugin manager with a shell also gets me. Compare
zshif you like, but it's easy to, ahem, bash on
bashwhen you're comparing a framework instead. Not to mention that 90% of the things people evangelise are available in
Personally, I do use
zsh, but that's pretty much because I have to use a Mac for work so I've standardised across all my machines. There's nothing I do day-to-day that I can't do in
bashthough. All my scripts that don't use
bashfor example, because it's more likely to be installed and therefore the script is more portable.
And the autocomplete in
zshis frustrating sometimes. Press
o-taband expect it to autocomplete things starting with "o" and half the time it shows me
node_modulesand the cursor sits looking at me like a happy puppy while I facepalm.
Thanks for your thorough response, and appreciate your standard "thrusters" which were triggered by my terminal preferences! Just a quick clarification, I never intended to "bash" any technology, so I think you may have fired your thrusters a bit prematurely here, just stating my preference. :)
Good post, I didn't know fig 👌😉
I believe so
Hi Ben, I tried fig.io a few month ago and it was super slow, has it improved?
Hey Juan, I've been a user for a while now, and haven't noticed any speed issues with it.
Good to now, I have to give it another try
Fig seems not to work with the new MacBook
I'm using it on a brand new MacBook. Perhaps, try to contact their support team to help you?