Skip to main content

The Annotated Guide to a New Rails Application

Published: July 28, 2020
Updated: September 20, 2020


I love Ruby on Rails. I think it’s a fantastic framework for web applications. I highly recommend it and I thoroughly enjoy working with it.

I’ve been lucky enough to work extensively with Rails on many different projects over many different years. Most Rails development, like most software development, happens on long-lived projects. A well-established and well-configured project is an absolute joy to work in and collaborate on.

But a new Rails project doesn’t have many of the little tweaks and additions that make things so nice for me. I end up spending a lot of time and frustration repeating the same steps in every application.

This guide is an effort to make those steps faster and easier. The goal is to create a smooth and rapid path from zero to a codebase I love working in.

What This Is Not

This is not a beginner’s guide

I will explain things as simply as I can, but there will likely be some important information left out. If you do not understand a recommendation, you might not understand the consequences.

This is not something to apply blindly

Examine every bit of the advice herein to see if it is right for you, your project, and your team before applying it. That’s what the annotations are for.

This is not static

The world changes and I change with it. My preferences and recommendations are in constant flux. This guide will change with them.

This is not an automated setup script

There is no point in automating something that will change every time you do it.

If you want an automated setup script, take a look at Suspenders. It is a Rails template created by Thoughtbot with their standard defaults. They make a lot of good choices, some of which I will certainly draw from.

1. Ruby Version Management

Use the right version of Ruby for the job.

2. The Rails New Command

Creating a brand new Rails application.

3. Git Initialization

Use version control to make changes with confidence.

4. No Git Masters

Remove problematic language from your Git setup.

5. Pairs File

Accurately record changes made while pairing by adding multiple authors to your commits.

6. Add a License

If your code is open source, make sure people know.

7. Adopt a Code of Conduct

Ensure a safe and welcoming environment by adopting a code of conduct.