sinatras-skeleton
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 ð
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
orrerun 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
ActiveRecord + PostgresQL
BCrypt
Kieran's Answer on StackOverflow
Sprockets
Official Sinatra Docs