Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thoughtbot/suspenders
A Rails template with our standard defaults, ready to deploy to Heroku.
https://github.com/thoughtbot/suspenders
rails template
Last synced: about 2 months ago
JSON representation
A Rails template with our standard defaults, ready to deploy to Heroku.
- Host: GitHub
- URL: https://github.com/thoughtbot/suspenders
- Owner: thoughtbot
- License: mit
- Created: 2010-05-14T14:34:46.000Z (about 14 years ago)
- Default Branch: main
- Last Pushed: 2024-04-13T16:58:22.000Z (2 months ago)
- Last Synced: 2024-04-14T16:07:32.300Z (2 months ago)
- Topics: rails, template
- Language: Ruby
- Homepage: https://thoughtbot.com
- Size: 1.86 MB
- Stars: 3,968
- Watchers: 101
- Forks: 531
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Lists
- awesome-ruby - Suspenders - Suspenders is the base Rails application used at thoughtbot. (Rails Application Generators)
- ruby-bookmarks - suspenders
- awesome-ruby - suspenders
- awesome-rails - suspenders - A Rails template with our standard defaults, ready to deploy to Heroku. (Starters/Boilerplates / Articles)
- awesome-stars - thoughtbot/suspenders - A Rails template with our standard defaults. (Ruby)
- awesome-ruby-toolbox - Suspenders - Suspenders is a base Rails project that you can upgrade. It is used by thoughtbot to get a jump start on a working app. Use Suspenders if you're in a rush to build something amazing; don't use it if you like missing deadlines. (Rails Plugins / Rails App Templates)
- awesome-stars - suspenders
- awesome-stars - suspenders
- awesome-ruby - Suspenders - Suspenders is the base Rails application used at thoughtbot. (Rails Application Generators)
- awesome-ruby - Suspenders - Suspenders is the base Rails application used at thoughtbot. (Rails Application Generators)
- awesome-stars - suspenders
- Open-Source-Ruby-and-Rails-Apps - Suspenders (thoughtbot) - A Rails template with our standard defaults, ready to deploy to Heroku. 🔥 ✅ 🚀 (Happy Exploring 🤘)
- awesome-hackathon-starters - Suspenders - A Rails template with our standard defaults, ready to deploy to Heroku. (Ruby)
- awesome-stars - suspenders
- awesome-stars - suspenders
README
# Suspenders
[![Build Status](https://github.com/thoughtbot/suspenders/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/thoughtbot/suspenders/actions)
[![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com)Suspenders is the base Rails application used at
[thoughtbot](https://thoughtbot.com/).![Suspenders boy](http://media.tumblr.com/1TEAMALpseh5xzf0Jt6bcwSMo1_400.png)
## Installation
First install the suspenders gem:
gem install suspenders
Then run:
suspenders projectname
This will create a Rails app in `projectname` using the latest version of Rails.
### Associated services
* Enable [Circle CI](https://circleci.com/) Continuous Integration
* Enable [GitHub auto deploys to Heroku staging and review
apps](https://dashboard.heroku.com/apps/app-name-staging/deploy/github).## Gemfile
To see the latest and greatest gems, look at Suspenders'
[Gemfile](templates/Gemfile.erb), which will be appended to the default
generated projectname/Gemfile.It includes application gems like:
* [Sidekiq](https://github.com/mperham/sidekiq) for background
processing
* [High Voltage](https://github.com/thoughtbot/high_voltage) for static pages
* [Honeybadger](https://www.honeybadger.io/?affiliate=A43uwl) for exception notification
* [Oj](http://www.ohler.com/oj/)
* [Postgres](https://github.com/ged/ruby-pg) for access to the Postgres database
* [Rack Canonical Host](https://github.com/tylerhunt/rack-canonical-host) to
ensure all requests are served from the same domain
* [Rack Timeout](https://github.com/heroku/rack-timeout) to abort requests that are
taking too long
* [Recipient Interceptor](https://github.com/croaky/recipient_interceptor) to
avoid accidentally sending emails to real people from staging
* [Simple Form](https://github.com/plataformatec/simple_form) for form markup
and style
* [Skylight](https://www.skylight.io/) for monitoring performance
* [Title](https://github.com/calebthompson/title) for storing titles in
translationsAnd development gems like:
* [Dotenv](https://github.com/bkeepers/dotenv) for loading environment variables
* [Pry Rails](https://github.com/rweng/pry-rails) for interactively exploring
objects
* [ByeBug](https://github.com/deivid-rodriguez/byebug) for interactively
debugging behavior
* [Bullet](https://github.com/flyerhzm/bullet) for help to kill N+1 queries and
unused eager loading
* [Bundler Audit](https://github.com/rubysec/bundler-audit) for scanning the
Gemfile for insecure dependencies based on published CVEs
* [Web Console](https://github.com/rails/web-console) for better debugging via
in-browser IRB consoles.And testing gems like:
* [Capybara](https://github.com/jnicklas/capybara) and
[Google Chromedriver]
integration testing
* [capybara_accessibility_audit](https://github.com/thoughtbot/capybara_accessibility_audit) and
[capybara_accessible_selectors](https://github.com/citizensadvice/capybara_accessible_selectors)
* [Factory Bot](https://github.com/thoughtbot/factory_bot) for test data
* [Formulaic](https://github.com/thoughtbot/formulaic) for integration testing
HTML forms
* [RSpec](https://github.com/rspec/rspec) for unit testing
* [RSpec Mocks](https://github.com/rspec/rspec-mocks) for stubbing and spying
* [Shoulda Matchers](https://github.com/thoughtbot/shoulda-matchers) for common
RSpec matchers## Other goodies
Suspenders also comes with:
* The [`./bin/setup`][setup] convention for new developer setup
* The `./bin/deploy` convention for deploying to Heroku
* Rails' flashes set up and in application layout
* A few nice time formats set up for localization
* `Rack::Deflater` to [compress responses with Gzip][compress]
* A [low database connection pool limit][pool]
* [Safe binstubs][binstub]
* [t() and l() in specs without prefixing with I18n][i18n]
* An automatically-created `SECRET_KEY_BASE` environment variable in all
environments
* Configuration for [CircleCI][circle] Continuous Integration (tests)
* Configuration for [Hound][hound] Continuous Integration (style)
* Configuration for [stylelint][stylelint]
* The analytics adapter [Segment][segment] (and therefore config for Google
Analytics, Intercom, Facebook Ads, Twitter Ads, etc.)
* [PostCSS Autoprefixer][autoprefixer] for CSS vendor prefixes
* [PostCSS Normalize][normalize] for resetting browser styles[setup]: https://robots.thoughtbot.com/bin-setup
[compress]: https://robots.thoughtbot.com/content-compression-with-rack-deflater
[pool]: https://devcenter.heroku.com/articles/concurrency-and-database-connections
[binstub]: https://github.com/thoughtbot/suspenders/pull/282
[i18n]: https://github.com/thoughtbot/suspenders/pull/304
[circle]: https://circleci.com/docs
[hound]: https://houndci.com
[stylelint]: https://stylelint.io/
[segment]: https://segment.com
[autoprefixer]: https://github.com/postcss/autoprefixer
[normalize]: https://github.com/csstools/postcss-normalize## Heroku
Read the documentation on [deploying to Heroku][heroku deploy]
You can optionally create Heroku staging and production apps:
suspenders app --heroku true
This:
* Creates a staging and production Heroku app
* Sets them as `staging` and `production` Git remotes
* Configures staging with `HONEYBADGER_ENV` environment variable set
to `staging`
* Creates a [Heroku Pipeline] for review apps
* Schedules automated backups for 10AM UTC for both `staging` and `production`[Heroku Pipeline]: https://devcenter.heroku.com/articles/pipelines
[heroku deploy]: https://github.com/thoughtbot/suspenders/blob/master/docs/heroku_deploy.mdYou can optionally specify alternate Heroku flags:
suspenders app \
--heroku true \
--heroku-flags "--region eu --addons sendgrid,ssl"See all possible Heroku flags:
heroku help create
## Git
This will initialize a new git repository for your Rails app. You can
bypass this with the `--skip-git` option:suspenders app --skip-git true
## GitHub
You can optionally create a GitHub repository for the suspended Rails app. It
requires that you have [Hub](https://github.com/github/hub) on your system:brew install hub # macOS, for other systems see https://github.com/github/hub#installation
suspenders app --github organization/projectThis has the same effect as running:
hub create organization/project
## Dependencies
Suspenders requires the latest version of Ruby.
Some gems included in Suspenders have native extensions. You should have GCC
installed on your machine before generating an app with Suspenders.Use [OS X GCC Installer](https://github.com/kennethreitz/osx-gcc-installer/) for
Snow Leopard (OS X 10.6).Use [Command Line Tools for Xcode](https://developer.apple.com/downloads/index.action)
for Lion (OS X 10.7) or Mountain Lion (OS X 10.8).We use [Google Chromedriver] for full-stack JavaScript integration testing. It
requires Google Chrome or Chromium.[Google Chromedriver]: https://sites.google.com/a/chromium.org/chromedriver/home
PostgreSQL needs to be installed and running for the `db:create` rake task.
Redis needs to be installed and running for Sidekiq
## Issues
If you have problems, please create a
[GitHub Issue](https://github.com/thoughtbot/suspenders/issues).## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md).
Thank you, [contributors]!
[contributors]: https://github.com/thoughtbot/suspenders/graphs/contributors
## License
Suspenders is Copyright © 2008-2017 thoughtbot.
It is free software,
and may be redistributed under the terms specified in the [LICENSE] file.[LICENSE]: LICENSE
## About thoughtbot
[![thoughtbot][thoughtbot-logo]][thoughtbot]
Suspenders 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][community].
We are [available for hire][hire].[thoughtbot]: https://thoughtbot.com?utm_source=github
[thoughtbot-logo]: https://thoughtbot.com/brand_assets/93:44.svg
[community]: https://thoughtbot.com/community?utm_source=github
[hire]: https://thoughtbot.com?utm_source=github