This is a template I use for my new Ruby on Rails 4 applications. Pull requests are welcome.
Also check out Startup Readings.
rails new [app_name] -m https://raw.github.com/dennybritz/rails_startup_template/master/template.rb
- 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.
-
Sets up foreman to deal with environment variables and background services. Instead of using
rails s
you should useforeman s
. Add your own environment variables in the.env
file. -
Cleans up assets by renaming
application.css
toapplication.css.scss
and removing theinclude_tree
directives. It's better design to import and require things manually. For example,@import 'bootstrap';
-
Optionally installs Twitter bootstrap.
-
Optionally installs Font Awesome.
-
Initializes a new git repository with an initial commit.
-
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?"