Skip to content

ryanckulp/speedrail

Repository files navigation

Speedrail

a Rails 7 template by @ryanckulp, created to ship SaaS apps quickly.

learn to build 3 projects with Speedrail at 24 Hour MVP, or check out the premium documentation.

Speedrail features

  • rich text blog CMS
  • embedded subscription payment portal via Stripe Checkout
  • built-in referral marketing via Rewardful
  • admin panel with Tailwind CSS via Active Admin
  • user authentication via Devise
  • A/B testing with Split
  • design via Flowbite and Tailwind UI
  • SEO toolbelt via metamagic
  • responsive and mobile friendly navigation
  • beautiful code coverage GUI via SimpleCov and TailwindCov
  • rename your app in 1 command with Rename
  • debugging with Better Errors
  • production-ready DB with Postgres
  • easy API requests with HTTParty
  • Postmark for transactional emails, letter_opener for local preview
  • script tag GUI (for Google Analytics, etc)
  • testing suite via RSpec
  • cron job task scheduler (lib/tasks/scheduler.rake)
  • random data generation with Faker
  • Heroku <> Cloudflare HTTPS via lib/cloudflare_proxy.rb
  • background job queue via Delayed
  • interactive charts via Chartkick
  • automated testing via GitHub actions + PR status check
  • Rubocop for code style enforcement and linting auto-fixes

Installation

  1. clone the repo
  2. speedrail/bin/speedrail new_app_name
  3. inspect, then save/close the generated credentials file
  4. cd new_app_name

For detailed, step by step tutorials to using Speedrail, get lifetime access to the Speedrail Docs for a one-time fee of $49.

Development

bin/dev # uses foreman to boot server, frontend, and bg job queue

To sync your project with the latest Speedrail improvements:

# one time only
git remote add speedrail https://github.com/ryanckulp/speedrail.git

# when you notice Speedrail updates on GitHub
git pull
git fetch speedrail
git merge speedrail/master --allow-unrelated-histories
git checkout -b speedrail_updates
git add .
git push speedrail_updates
# use GitHub UI to handle conflicts

Testing

# headless
bundle exec rspec # run all tests inside spec/
bundle exec rspec spec/dir_name # run all tests inside given directory

# headed (in a real browser)
HEADED=TRUE bundle exec rspec

Code Quality

clean code keeps projects manageable as they grow in complexity.

rubocop # checks your code against Ruby styling standards and calls out issues
rubocop -A # automatically fixes issues, can lead to false negatives
rubocop -a # automatically fixes "safe" issues, less aggressive than -A (uppercase)

Rubocop is an optional feature, however it runs automatically during GitHub CI checks. if you don't want to enforce the Rubocop style guide, simply disable the Rubocop Check step inside ci.yml.

Contributing

anyone is welcome to submit a PR with improvements of any kind.