Frankie is a boilerplate Sinatra repository demonstrating lightweight web applications, web services, and background workers with a varitey of commonly used software technologies. It's the perfect little repo for the quick creation of microservices and microsites.
Sinatra is a nuts-and-bolts tool that allows the creation of simple websites and services in a freeform manner without battle-tested, opinionated programming practices. As your Ruby application grows in complexity, I strongly recommend migrating your application Padrino and ultimately to the venerable Ruby on Rails ecosystem. Most of the conventions demonstrated in this project have a near one-to-one equivalant in those frameworks.
visit the USAGE file in each branch for implementation instructions
Each branch can be checked out based on the features and complexity of the application needed.
- Rudimentary Sinatra Web Application - demonstrates a single-file inline HTTP server.
- Basic Sinatra Web Application - demonstrates a rackable website application with typical content pages and contact form.
- Advanced Sinatra Application - demonstrates a more sophisticated application that can be enhanced with background workers or migrated to another framework.
| Rudimentary | Simple | Advanced | |
|---|---|---|---|
| Architecture | Single-file | Rack-Optimized | Service-Ready |
| Recommend Usage | rapid prototyping, single-purpose microservices or endpoints | websites, forms, and APIs | leverage queues, background workers, and other integrations. |
| Complexity | Simplistic | Modular | Scalable |
| Directory Structure | └─ app.rb |
├─ app.rb ├─ config.ru └─ Gemfile |
├─ app ├─ lib ├─ spec ├─ config.ru ├─ Gemfile └─ Guardfile |
| Example Branches |
Rudimentary Rudimentary Template |
coming soon | coming soon |
More info on Sinatra Directory Structures
Frankie's goal is to demonstrate implementaions of common database, queues, frameworks, and programming techniques.
- Frankie's development progress
- Frankie's programming techniques
This repository and software therein is released under the MIT License for the educational benefit of humanity.
Any contributions to enhance this repository are appreciated.
Need this Sinatra boilerplate framework adapted to your project? Contract Stan Carver to adapt this codebase to your microservice requirements. Sinatra Developer for Hire
As with any good framework, Sinatra would not be as useful as it is without the many selfless contributors of knowledge and sourcecode. Here is my list of gratitude:
- Matz for creating the Ruby language.
- Sinatra the Sultans of Sweeb apps
- My Kids' Hero