Suspenders is intended to create a new Rails applications with these features, and is optimized for deployment on Heroku, since that's our recommended host.
It is used by thoughtbot to get a jump start on new apps. Use Suspenders if you're in a rush to build something amazing; don't use it if you like missing deadlines.
Suspenders requires the latest version of Rails and its dependencies.
Additionally, Suspenders requires PostgreSQL and Redis.
gem install suspenders
First, make sure you're on the latest version of Rails.
gem update rails
Then, create a new application with Suspenders.
suspenders new <app_name>
Under the hood, Suspenders uses an application template to generate a new Rails application like so:
rails new <app_name> \
-d=postgresql \
--skip-test \
--skip-solid \
--m=~/path/to/template.rb
We skip the default test framework in favor of RSpec, and prefer PostgreSQL as our database. We skip the Solid ecosystem since we prefer Sidekiq, and because Solid Queue has performance issues on Heroku.
Important
Since Suspenders generates an application that enables require_master_key,
you'll need to add it to GitHub as a secret in order for GitHub Actions to
work.
cd <app_name>
gh secret set RAILS_MASTER_KEY value-from-config-master.key
Once your application is generated, you can deploy to Heroku with Heroku CLI.
cd <app_name>
heroku apps:create
heroku buildpacks:set heroku/ruby
heroku addons:create heroku-postgresql:essential-0
heroku addons:create heroku-redis:mini
Once the application is provisioned, you'll want to set the following required environment variables.
heroku config:set \
APPLICATION_HOST=value-from-heroku
RAILS_MASTER_KEY=value-from-config-master.key
Finally, don't forget to enable the worker.
heroku ps:scale worker=1
See the CONTRIBUTING document. Thank you, contributors!
Suspenders is Copyright (c) thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.
This repo is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.
We love open source software! See our other projects. We are available for hire.
