A startup template for Ruby on Rails 4 applications
Latest commit d16371a Aug 17, 2014 @dennybritz Merge pull request #23 from onebadpanda/master
Updated font-awesome to current version (4.1.0)


Rails Startup template

This is a template I use for my new Ruby on Rails 4 applications. Pull requests are welcome.

Also check out Startup Readings.

How to Use

rails new [app_name] -m https://raw.github.com/dennybritz/rails_startup_template/master/template.rb

What it does

  1. Adds the following gems:

    • analytics-ruby: I use segment.io as an anaytics provider. Segment.io is easy to integrate, asynchronous, and forwards data to other providers like Mixpanel and Kissmetrics.
    • bcrypt-ruby: I usually implement authentication myself instead of using gems like Devise. This is needed for the has_secure_password functionality. See API Doc.
    • bourbon: Bourbon provides useful SASS mixins for cross-browser compatibility.
    • CanCan: CanCan is an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access.
    • (Optional) haml-rails: HAML is a beautiful templating language. I prefer it over ERB.
    • simple_form: SimpleForm makes it easy to build complex form using simple markup.
    • uuidtools: To generate UUIDs, which is useful for various things.
    • rspec-rails: Rspec is a testing tool for test-driven and behavior-driven development. It makes writing specs more enjoyable.
    • guard-rspec: Guard for automatically launching your specs when files are modified.
    • (test environment) capybara: I use Capybara to write integration tests and simulate user behavior.
    • (test environment) factory_girl_rails: FactoryGirl provdes a flexible alternative to Rails fixtures.
    • (production environment) rails_12factor: This is needed for deploying Rails 4 applications on Heroku.
  2. Sets up foreman to deal with environment variables and background services. Instead of using rails s you should use foreman s. Add your own environment variables in the .env file.

  3. Cleans up assets by renaming application.css to application.css.scss and removing the include_tree directives. It's better design to import and require things manually. For example, @import 'bootstrap';

  4. Optionally installs Twitter bootstrap.

  5. Optionally installs Font Awesome.

  6. Initializes a new git repository with an initial commit.

  7. Optionally create a github repository.


Here are some things I'd like to add:

  • Add Heroku-specific gems inside a question group, "Are you using Heroku?"