A guide for programming in style.
Ruby Swift Objective-C Haskell JavaScript Shell Other



Guides for getting things done, programming well, and programming in style.

High level guidelines:

  • Be consistent.
  • Don't rewrite existing code to follow this guide.
  • Don't violate a guideline without a good reason.
  • A reason is good when you can convince a teammate.

A note on the language:

  • "Avoid" means don't do it unless you have good reason.
  • "Don't" means there's never a good reason.
  • "Prefer" indicates a better option and its alternative to watch out for.
  • "Use" is a positive instruction.


Please read the contribution guidelines before submitting a pull request.

In particular: if you have commit access, please don't merge changes without waiting a week for everybody to leave feedback.


Thank you, contributors!


Guides is maintained by thoughtbot, inc.


Guides is © 2014 thoughtbot, inc. It is distributed under the Creative Commons Attribution License.

The names and logos for thoughtbot are trademarks of thoughtbot, inc.