Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


Personal checklist for setting up a new Mac's dev environment.

Subscribe to updates I use config

Statistics on config

Number of watchers on Github 421
Number of open issues 2
Average time to close an issue about 1 hour
Main language Shell
Average time to merge a PR about 5 hours
Open pull requests 2+
Closed pull requests 1+
Last commit over 2 years ago
Repo Created almost 6 years ago
Repo Last Updated over 2 years ago
Size 22 KB
Organization / Authormdo
Page Updated
Do you use config? Leave a review!
View open issues (2)
View config activity
View on github
Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating config for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


Config is a basic checklist I follow to set up a new Mac's development environment. It gets me up to speed with Git, Ruby, GitHub, Jekyll, and more so I can more quickly get back to coding.


File Description
.bash_profile Customizes the Terminal.app prompt and echoes the currently checked out Git branch.
.gitconfig Global Git configuration to specify my name and email, shortcuts, colors, and more.
.gitignore The ignore file from twbs/bootstrap that I use everywhere.


1. Prep OS X

Be sure to open Xcode and agree to the terms of use.

2. Prep Terminal.app

3. Secure Git(Hub) access

4. GitHub dev setup

  • Download the Strap setup script for GitHub's foundational development setup.
  • Clone the github/github repository and run script/bootstrap.

5. Setup Ruby

Installing and managing Ruby with rbenv allows us to specify versions of Ruby on a per-project basis. It also means we can avoid running sudo commands for installing gems and more as it's not affecting OS X's system Ruby.

Having trouble with nokogiri? See https://stackoverflow.com/a/41491487.

6. Additional dependencies

  • Install node via Homebrew: brew install node.
  • Install Sass, Jekyll, and Rouge: gem install bundler sass jekyll rouge.

7. Setup Atom

  • Enable atom Terminal commands: from Atom.app, open the Atom menu and select Install Shell Commands
  • Install favorite packages

8. Customize things

  • Disable LCD font smoothing
  • Hide desktop icons with defaults write com.apple.finder CreateDesktop false; killall Finder
  • Set sidebar icons to Small

Use it yourself

Fork this repo, or just copy-paste things you need, and make it your own. Please be sure to change your .gitconfig name and email address though!

Works on my machine

Yup, it does. Hopefully it does on yours as well, but please don't hate me if it doesn't.


config open issues Ask a question     (View All Issues)
  • almost 6 years Shell script to automate installation
config open pull requests (View All Pulls)
  • `ruby-build` is necessary for `rbenv install …`
  • Update README.md
config questions on Stackoverflow (View All Questions)
  • How do I configure my Route config to get a URL Pattern like localhost/Product (Controller)/List (Action)/Category (Id)?
  • Get XML Chunk using Xpath and Apache commons Config library
  • Has the StackExchange Redis connection config changed?
  • .git/config file reads "command not found"
  • Unit testing with the config app file in Laravel
  • Error installing ffmpeg on ubuntu: opus not found using pkg-config
  • Adding Variables to config/development.rb rails engine
  • How to define config. of variables used in Ajax call
  • bash config syntax error
  • Apache 2 - reload config on Windows
  • Spring Cloud Config Plain Text File
  • libgcrypt-config --libs: no such file or directory
  • Issue with spring cloud config property file order
  • Apache config file for alias
  • Do I need multiple external config files or one external config file?
  • OpenOCD 0.9.0 config for the K64F
  • How to change nginx docker config from linux to windows version
  • Varnish config advise
  • Google Cloud SDK: gcloud compute config-ssh crash
  • .net File.Copy not working with files that have .config or .ini extension
  • Logstash service doesnt use config
  • why is the private key shared within the PEM file in sTunnel config?
  • Annotated bean config doesnt see bean from XML config
  • Spring + jsp + selectivity.js - how to read selectivity config from file builded on java site
  • Following Manual Instructions for Bootstrap 3 forms getting yml config error
  • Configure Smslib service directly from kannel config file
  • laravel using .env but not using config in config\database.php?
  • What are the implications of checking one or both useSSL and useTLS boxes for LDAP config?
  • How to create config and call in endpoint using ApiClusterJS?
  • Webdriver.io - how to use beforeEach hooks in the config
config list of languages used
Other projects in Shell
Powered by Autocode - Instant Webhooks, Scripts and APIs
Autocode logo wordmark