---
title: Scoop
date: '2021-05-23T00:00:00+00:00'
url: https://www.abhinav.co/scoop
summary: Scoop is an open-source Sinatra boilerplate I extracted while rebuilding
  pincodr - it handles the production deployment setup so you don't have to.
tags:
- Sinatra
- MicroService
- JSONAPI
- Corneal
- ActiveRecord
- Capistrano
- Puma
- Nginx
- Open Source
- Technology
author: Abhinav Saxena
---

# Scoop

[Sinatra](http://sinatrarb.com/) is a Ruby framework that helps you quickly create web applications, APIs and microservices. Its minimalism not only attracted a lot of developers, but it has also inspired [Flask](https://flask.palletsprojects.com/en/2.0.x/) in Python and [Express](https://expressjs.com/) in Node.js

Almost a decade ago, I used Sinatra to build [pincodr](https://pincodr.apiclabs.com), [schedulr](https://github.com/abhinavs/scheduler_service/), [webhooks](https://github.com/abhinavs/webhooks) and [mudra](https://github.com/abhinavs/mudra). They had gotten stale because I didn't update them to latest stack. 

This year, I decided to reboot pincodr. I spent time finding the right stack, tried building it in Phoenix/Elixir and [Pliny](https://github.com/interagent/pliny) in Ruby. However, in the end, I decided to stick to Sinatra, because I wanted to avoid rewrite and realized it was still a good choice. 

Upgrading Sinatra and other packages was an easy process, however, I found myself struggling setting up production infra. It took me 3-4 days, just to sort out my deployment process as well as setting up the server. To save time for my next projects and to possibly help others, this weekend I spent some time extracting it as a bolierplate project called Scoop.

<img src="https://raw.githubusercontent.com/abhinavs/scoop/master/public/images/scoop-header.png" style="width:60%; margin: auto;"/>

Scoop uses
1. [Corneal](http://thebrianemory.github.io/corneal/) to make scaffolding models, controllers and views easier
2. ActiveRecord as database ORM
3. Capistrano for deployment
4. Puma as app server
5. Nginx as a proxy server

In addition, 
1. it is also JSON API ready with JSON, CORS and JSONP support already enabled,
2. has a rails like console, and
3. comes up with example script and rake task that can be used to perform tasks that load the environment

You can start using Scoop by [forking this repository](https://github.com/abhinavs/scoop/fork). Scoop's [README](https://github.com/abhinavs/scoop/blob/master/README.md) has detailed steps to set up development and production systems as well as the deployment process. 

Do give Sinatra & Scoop a try.
