Boilerplate Rails 6 SaaS application with Webpack, Stimulus and Docker integration.
Overview
Limestone is a boilerplate SaaS app built with Rails 6 on Ruby 2.7.2. It includes an opinionated integration with NPM using Webpacker and Stimulus. The gemset of Limestone has been chosen to be modern, performant, and take care of a number of business concerns common to SaaS.
Features
- Free trial begins upon registration without credit card. Number of days is configurable with ENV var.
- Subscription management: Card update form, switch plan form, and cancel account button.
- Devise confirmable installed and configured.
- Emails for welcome, receipt, refund, subscription renewing, and payment action required.
- letter_opener and letter_opener_web installed and configured. Visit /admin/letter_opener in development to see emails sent.
- Mail sends through Sidekiq with deliver_later for production. Sendgrid is configured and ready to use once your API keys are set in ENV.
- Direct cloud uploading with ActiveStorage. Lazy transform for resizing. Demonstrated with user avatars.
- Icon helper for user avatars with fallback to user initials. Icon helper for Font Awesome 4.7 icons.
- Administrate dashboard lets you CRUD records. Easy to add more models and customize as you like. Visit /admin/.
- Impersonate users through Administrate dashboard.
- Pretty modals using Bootstrap integrated into rails_ujs data-confirm. Demonstrated with cancel account button.
- Banner with a link to billing page for users that are past due.
- Opinionated search integration using Elasticsearch via Searchkick. Gem is in place, but integration is up to you.
- Feature control using the Flipper gem. Demonstrated with the public_registration feature.
- 84% RSpec test coverage.
- Solargraph (language server for code-aware auto-completions) configured in docker-compose.yml. Just point to localhost:7658 in your solargraph extension in your code editor.
Installation
To install Limestone, you will need to follow these steps:
- Install Docker and Docker Compose.
- Create a Stripe account and obtain a Stripe API Key.
- Set up Codeship or CircleCI files for integration.
- Make sure your product prices have trial days > 0 to avoid errors.
To run tests locally, use the command docker-compose run web rspec.
Summary
Limestone is a powerful boilerplate SaaS app built with Rails 6. It provides a range of features to handle subscription management, email notifications, user authentication, and more. With its modern gemset and opinionated integration, Limestone offers developers a solid foundation for building SaaS applications.