Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


A guide for programming in style.

Subscribe to updates I use guides

Statistics on guides

Number of watchers on Github 7083
Number of open issues 3
Average time to close an issue 10 days
Main language Ruby
Average time to merge a PR 12 days
Open pull requests 48+
Closed pull requests 36+
Last commit over 1 year ago
Repo Created about 7 years ago
Repo Last Updated over 1 year ago
Size 439 KB
Homepage https://thoughtbo...
Organization / Authorthoughtbot
Page Updated
Do you use guides? Leave a review!
View open issues (3)
View guides activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating guides for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


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 2017 thoughtbot, inc. It is distributed under the Creative Commons Attribution License.

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

guides open issues Ask a question     (View All Issues)
  • almost 3 years Broken Link in Best Bractices
  • about 3 years Document iOS release process?
  • about 3 years Swift: How do we feel about using fatalError in apps?
  • about 3 years Swift: let or var for viewModel properties
  • about 3 years Swift: Where should "let" go in a switch statement binding a local variable?
guides open pull requests (View All Pulls)
  • Update rubocop.yaml to follow recent changes.
  • Reorganize Swift sample code
  • Prefer protocol conformance to object inheritance
  • Break up long initializers and functions
  • Add best practices about Service Objects
  • Recommend against `toggleProperty`
  • Trailing comma for object literals and arrays
  • Use a leading underscore for memoization
  • Add Swift guideline recommending weak references are evaluated once
  • Add Swift + Obj-C guideline about weak outlets
  • Add guideline for using described_class
  • Start a quick "how to ..." section
  • Use `private` for non-public accessors
  • Use camel case over snake case for readme example
  • clarify that questions should be good questions
  • Be consistent about class naming and structure in a project
  • Update Java codeStyleSettings for method chained method call wrapping
  • Update code review README language to include remote workers
  • Ensure local master is up to date before merging
  • Place methods and tests for methods in same order
  • Swift: Force unwrap `segue.destinationViewController`
  • First pass at an Elixir style guide
  • Update SCSS-Lint config to 0.49
  • Trailing comma in Sass maps
  • Clarify where modules live in classes
  • Swift: Prefer imperitive verbs for IBAction/target-action methods
  • Swift: Prefer presenting a view controller manually
  • Disable UrlFormat linter
  • Add coffeescript config file + update hound config
  • [Rubocop] Disable FrozenStringLiteralComment
  • Dis-encourage use of Sass glob imports
  • Change DeprecatedHashMethods to PreferredHashMethods
  • Remove broken readability link
  • Separate "Postgres" into two sections
  • Rails: avoid selecting all columns in SQL views
  • Revert "Enable ImportPath options"
  • Modifications to elixir style guide
  • Start a style guide for phoenix #460
  • Annotate Ruby style guide with references
  • Update ruby rubocop rules to match rubocop 0.49.0
  • Add guide for concatenating selectors
  • Simplify guides on over-qualified CSS selectors
  • Add best practices for JavaScript element targets
  • Add guide for splitting translations by controller
  • update single line string interpolation wording
  • re-add missing reference link
  • Suggest using Fast JSON API for Ruby serialization
  • Upgrade Rubocop style guide for version 0.53
guides questions on Stackoverflow (View All Questions)
  • New to Apache Cordova (Using Visual Studio 2015) and willing to design and deploy apps on Android, where is a good place to start/follow guides?
  • Where can i download an offline version of ruby on rails guides
  • Guides on how to make a m.domain website (adaptive)
  • Is there a way to add horizontal/vertical guides to an NSImage programmatically?
  • How to add phonetic guides to all the texts at once?
  • Create Guides and Grids ruler with fabric.js
  • khtml library tutorials/guides?
  • Adding tooltip and focus guides for x and y2 axis on multi-axis linechart in d3
  • How does Rails know which controller's "show" action to use in this example from Rails Guides?
  • Can I use Plan Guides to optimize a slow performing Query?
  • create guides in an After Effects comp window using extendscript
  • Loop in amCharts guides
  • Android API guides (with figures) for offline use
  • I can not get the Facebook Guides to work
  • Amcharts - Combine "parseDates", "connect", and Guides functionality
  • Links to official style guides
  • Any recommendations for beginner guides Jasper Resports?
  • Spring security on STS startup guides
  • Multiple "right margins" or guides in PHPStorm
  • missing alignment guides in xcode interface builder
  • Tutorial and Guides to integrate Facebook and other Social Sites with Spring Security OAuth 2.0
  • Rails Guides: Getting Started 5.13 Deleting Articles: Confirmation Dialog Box WON'T Appear
  • Guides/tutorials for learning html5
  • Can I make a UITabBarController size its tabs' viewControllers according to its own layout guides (non-IB)?
  • Collapsible text in Drupal 7 - tried several guides, need for dummies version
  • cURL using info from mySQL, then storing the cURL'ed info (articles and guides is much appreciated!)
  • Why does this example from the Ember.js guides not work?
  • Xcode Interface Builder - Rulers/object guides
  • How do I hide the auto layout guides in Xcode?
  • Email Settings API Guides incorrectness
Other projects in Ruby