All Projects → archonic → Limestone

archonic / Limestone

Licence: mit
Boilerplate Rails 6 SaaS application with Webpack, Stimulus and Docker integration.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Limestone

limestone-accounts
Boilerplate Rails 5.2 multitenant SaaS application with webpack and Docker integration. Billing is scoped to accounts.
Stars: ✭ 97 (-49.21%)
Mutual labels:  sidekiq, stripe, rspec, devise, saas
Flasksaas
A great starting point to build your SaaS in Flask & Python, with Stripe subscription billing 🚀
Stars: ✭ 412 (+115.71%)
Mutual labels:  saas, stripe, boilerplate
Furatto Rails Start Kit
A rails app with Furatto, Devise, and Facebook Authentication perfect for hackathons!
Stars: ✭ 46 (-75.92%)
Mutual labels:  rails, devise, boilerplate
Rails Devise Graphql
A Rails 6 boilerplate to create your next Saas product. Preloaded with graphQL, devise, JWT, CanCanCan, RailsAdmin, Rubocop, Rspec, i18n and more.
Stars: ✭ 199 (+4.19%)
Mutual labels:  saas, devise, boilerplate
Ifme
Free, open source mental health communication web app to share experiences with loved ones
Stars: ✭ 1,147 (+500.52%)
Mutual labels:  webpack, rails, rspec
Expertiza
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.
Stars: ✭ 160 (-16.23%)
Mutual labels:  rails, rspec
Javascriptstuff Db
Lists of JavaScript resources: tools, tutorials, starter projects, example code, etc.
Stars: ✭ 163 (-14.66%)
Mutual labels:  webpack, boilerplate
Template Rwb
A full-featured Webpack setup with hot-reload
Stars: ✭ 165 (-13.61%)
Mutual labels:  webpack, boilerplate
Baumeister
👷 The aim of this project is to help you to build your things. From Bootstrap themes over static websites to single page applications.
Stars: ✭ 171 (-10.47%)
Mutual labels:  webpack, boilerplate
Saas Boilerplate
SaaS boilerplate built in Laravel, Bootstrap 4 and VueJs.
Stars: ✭ 152 (-20.42%)
Mutual labels:  saas, boilerplate
React Redux Universal Boilerplate
An Universal ReactJS/Redux Boilerplate
Stars: ✭ 165 (-13.61%)
Mutual labels:  webpack, boilerplate
Vue Chrome Extension Boilerplate
Boilerplate for Chrome extension using Vue.js and Webpack with auto-reload enabled.
Stars: ✭ 171 (-10.47%)
Mutual labels:  webpack, boilerplate
React Boilerplate
A slightly opinionated yet dead simple boilerplate for React 17.x, Webpack 5 and React Router v5
Stars: ✭ 158 (-17.28%)
Mutual labels:  webpack, boilerplate
Spring React Boilerplate
An example of an isomorphic application using Java + Spring with React, React Router and Redux
Stars: ✭ 156 (-18.32%)
Mutual labels:  webpack, boilerplate
Wheel
Don't reinvent the wheel for every new Rails project. Use sane Defaults.
Stars: ✭ 163 (-14.66%)
Mutual labels:  rails, boilerplate
React Webpack 5 Tailwind 2
React 17 Boilerplate with Webpack 5, Tailwind 2, using babel, SASS/PostCSS, HMR, dotenv and an optimized production build
Stars: ✭ 155 (-18.85%)
Mutual labels:  webpack, boilerplate
React Core Boilerplate
Powerful ASP.NET Core 3 templates with React, true server-side rendering and Docker support
Stars: ✭ 169 (-11.52%)
Mutual labels:  webpack, boilerplate
Essential React
A minimal skeleton for building testable React apps using Babel
Stars: ✭ 2,035 (+965.45%)
Mutual labels:  webpack, boilerplate
Scalable React Typescript Boilerplate
⭐️ Scalable micro-framework featuring React and TypeScript
Stars: ✭ 174 (-8.9%)
Mutual labels:  webpack, boilerplate
Jekyll Webpack Boilerplate
⚡️ A boilerplate with Jekyll and Webpack to make the most performant static websites
Stars: ✭ 182 (-4.71%)
Mutual labels:  webpack, boilerplate

Limestone

<archonic>

Limestone is a boilerplate SaaS app built with Rails 6 on Ruby 2.7.2 and has an opinionated integration with NPM using Webpacker and Stimulus.

Vote!

Help decide future features and changes for Limestone with this poll: https://www.strawpoll.me/42684734/

Versions

Versioning in this repo in intended to maintain and modernize the boilerplate. New versions are not intended to update existing forks, although looking through the commits serves as a good upgrade resource.

v0.1 is Rails 5.2
v0.2 is Rails 6
v0.3 introduces the Pay gem
v0.4 uses ruby 2.7.2

See more in the changelog.

The Stack

The gemset 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 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.

Notes

  • RSpec controller tests have been omitted in favour of requests tests.
  • You can run tests locally with docker-compose run web rspec

Pre-requisites

Development

Test

  • Codeship files are in place - just create an account and integrate with your repo. You will need to create your codeship.aes file, install jet and run jet encrypt .env .env.encrypted.
  • CircleCI files are in place - just create an account and integrate with your repo.
  • NOTE Limestone expects your product prices to have trial days > 0. If you don't create a trial, testing will get the error Pay::Error: This customer has no attached payment source or default payment method..
  • You could also just run test locally with docker-compose run web rspec or docker-compose exec web rspec if you've already run docker-compose up.

Production

Getting Started

  1. Clone this repository at the most recent tag and cd into it:

    git clone -b 'v0.3' --single-branch --depth 1 https://github.com/archonic/limestone.git
    cd limestone
    
  2. Make a copy of .env-example named .env:

    cp .env-example .env
    
  3. Update the .env file - running the project requires you change the following:

    • STRIPE_API_KEY
    • STRIPE_PUBLISHABLE_KEY
    • STRIPE_SIGNING_SECRET (This can be something random)

    You probably want to update the ADMIN_* environment variables. If you want a different COMPOSE_PROJECT_NAME and database name, now is the best time to do that.

  4. Run docker-compose run web yarn install --pure-lockfile to download images, build your development image and install node_modules. This will take a while.

  5. Run docker-compose up to run your project and it's dependencies.

  6. Once everything is up, run docker-compose exec web rails db:prepare to create DB, load schema and seed. Seeding will also create your plan(s) in Stripe.

  7. Visit http://localhost:3000 and rejoice 🎉 You can login using the Admin user defined in .env. Keep in mind your admin doesn't have active billing. Enter a test card when prompted or by visiting /subscribe.

  8. See the Limestone Wiki more about development with Docker

Note About Flipper / Public User Registration

  1. The Flipper gem controls feature flagging and provides a UI. Visit the /admin/flipper.
  2. The feature called public_registration has been created for you (during seeding). You can enable/disable this to control user registration 👏

Setting up production

A wiki will be written about this. Feel free to help out here if you're familiar with Docker/Kubernetes.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].