sinatras-skeleton icon indicating copy to clipboard operation
sinatras-skeleton copied to clipboard

Basic Sinatra Skeleton MVC CRUD App with Sprockets, Warden, ActiveRecord and PostgresQL

Basic Sinatra ~v3~ v4 ðŸĨģ App with Sprockets, Warden, ActiveRecord and Postgres

Take this as a working example and as an inspiration. Pull Requests are welcome 🙏

ruby

Have you tried Roda?

think sinatra is nice? Don't forget to give Roda a chance!
browse through my repos 😉😇


What this Project aims to be

This repository aims to be a boilerplate for a modular and modern (v2) Sinatra app.

there used to be a demo on heroku, but heroku is no more ðŸŠĶ

please check out the credits section! Without the community, this never would have been possible. Thank you.

  • Why?
  • What is in?
  • Get started
  • Credits

Feel free to contribute, add more features, strip features or simply improve existing code - pull requests welcome :smile:

Why not Rails?

Sinatra is a ruby/rack framework, that can be used as an alternative where Rails would simply be an overkill.

I started working my way through the sinatra docs, aiming for a setup that can easily be modeled to a basic use case.


Have you tried Roda, Sequel and Rodauth?

Yes! And I totally use that setup whenever possible (November 2021) and you should try at least roda as a POC 😎 I am 100 % serious! There's nothing wrong with sinatra, but roda kills it. The journey will undoubtedly make you a better (ruby) programmer.

What is in?

I want this Sinatra boilerplate app to:

  • work with Bundler
  • use ORM is ActiveRecord
  • have an MVC-like structure
  • support Sass/Scss and CoffeeScript
  • party with jQuery and Turbolinks! Yes, Turbolinks.
  • rolls with a very basic bcrypt/warden based Authentication System
  • use PostgresQL as Database
  • run on heroku (don't forget: $ heroku config:add APP_ENV=production)

Get started

You need Ruby (>= 3.2) and Bundler (of course).

  • $ git clone
  • $ bundle install
  • edit config/database.yml
  • $ rake db:setup
  • $ bundle exec puma or rerun rackup (rerun gem - not included by default!)
  • visit localhost:9292 in your browser
  • edit titles in views/layout.erb and views/nav.erb
  • check/set timezone config/timezone.rb

now what?

  • read the credits
  • read the code
  • run the code, see what it does
  • delete what you don't need and built from there, should a barebone branch be offered? What do you think? :grin:

Most code is commented, so you'll learn what it does.

What needs to be done

  • enable flash messages, especially for validation feedback

Contribute

  • Send in pull requests, improve this project with features or simply by adding/improving comments :grin:
  • Be nice, make public forks
  • What did you use this app for? Please, let me know! Share your projects.

Credits / Blood, Sweat & Tears

:heart: :sweat: :sob:

Contributors to this project

https://github.com/simonneutert/sinatras-skeleton/graphs/contributors

thank you for open sourcing, writing documentation, blogging, answering and giving a hand on stackoverflow :thumbsup:

Warden

sklises repo

Steve Klise Blog post

Coderwall on Sinatra + Warden

What Ches wrote up

What Mike Ebert wrote

ActiveRecord + PostgresQL

mherman

samuelstern

BCrypt

Kieran's Answer on StackOverflow

BCrypt Gem

Sprockets

Sinatra Recipe for Sprockets

Official Sinatra Docs

Sinatra Intro

Sinatra recipes