

Ask HN: What's THE way to setup a OS X dev machine 2015? - walski

I&#x27;m going to replace my 5 year old MBP with a new machine in a week. What is considered a good way to setup a machine from scratch for web and mobile development nowadays?<p>I&#x27;m familiar with Github&#x27;s boxen but would love something more &quot;macish&quot;. As far as I&#x27;m concerned I would ideally click some packages hit install and the magic system does the rest and always keeps that stuff updated ;)
======
walshie4
Homebrew and pretty much anything else that lets the *NIX of OS X shine
through.

Check out Github's tools as they seem to use OS X heavily.

Homebrew - [http://brew.sh/](http://brew.sh/)

Also the ~/.osx dotfiles in this repo
([https://github.com/mathiasbynens/dotfiles](https://github.com/mathiasbynens/dotfiles))
are quite handy especially space order locking. That used to drive me mad.

Finally Amethyst
([https://github.com/ianyh/Amethyst](https://github.com/ianyh/Amethyst)) is
still a lil buggy but so nice to have. If you want to go the 'more OS X route'
check out BetterTouchTool instead.

~~~
stephenr
After trying to make use of Homebrew for a couple of years, I've given up. I
refuse to install it now.

Using a combination of Vagrant for project environments, and a generic Debian
VM (which could also be handled by vagrant but has much less need for it) for
miscellaneous stuff, I am not missing brew.

The other advantage to this approach is your mac will likely remain stable and
fast for much longer. Running a web server and a database server and an app
server and who knows what else constantly (and by default, at startup) can
make for a lot of RAM usage and ridiculously slow startup/logins.

Move that shit all into VMs, and keep your host as simple as possible. Sure,
run your IDE, editor, debugger, what have you, but you should be able to
quickly and easily just stop everything related to any given project/app.

Edit:

Also, and I _know_ this will probably not be a popular opinion around here:

Whenever possible I use Mac App Store versions of apps. After a couple of
clean-installs since the inception of the MAS, I am absolutely in favour of
this approach. I can generally queue up all my MAS sourced apps for download +
install quicker than I can open site, download, install & add license details
for probably _ONE_ app from outside the MAS. I know it has limitations and
some apps will likely never be available in it, but those that are, are so
much simpler to re-install on a clean OS.

------
cotsog
[http://www.getmacapps.com/](http://www.getmacapps.com/) could probably save
you some times for common applications.

------
sumodirjo
Thoughtbot also have laptop
([https://github.com/thoughtbot/laptop](https://github.com/thoughtbot/laptop))

I write a bash script to install standard development tools for developers in
my company. I put most of the application on local server inside company
network so I don't have to re-download the application from internet. I plan
to release this script sometime this month

------
coldtea
For mobile and web development, use Vagrant + Virtualbox. No reason to pollute
the base system with different versions of weblibs, languages and servers.

~~~
walski
Any recommendations for good and ready to use base boxes there?

~~~
matt_s
Create your own base box that might have a typical stack you always use. Treat
this like your gold image and you can use it for trying out new technologies
without installing on your host machine as well as a different VM for every
project or even forks of a project if you want.

Vagrant's docs are pretty decent on how to create a custom box.

------
PublicEnemy111
I have a micro EC2 instance I do my development on. I just the repo on my mac,
put the folder into sublime and I'm ready to go. There's just something about
having Redis, Postgres, Nginx, gunicorn, flask, etc. running on my mac that I
don't like.

If you don't want to pay $5/month for an EC2 instance, just run everything in
a docker container.

------
Revell
I use Ansible for provisioning my machine itself with the needed Homebrew and
Cask packages, and then Vagrant + Virtualbox for setting up dev. environments.

