Jets: Ruby Serverless Framework

Jets is a framework that allows you to create serverless applications with a beautiful language: Ruby. It includes everything required to build an application and deploy it to AWS Lambda. Jets makes serverless accessible to everyone.

Learn More!

What Is Jets?

Building serverless applications can be challenging. Jets makes it simple and fun. It includes everything required to build and deploy a serverless application to AWS Lambda. Focus on your business logic while Jets handles the mundane gruntwork.

Jets was built to allow you to quickly build serverless applications with a beautiful language: Ruby. Jets offers native-like Lambda performance for Ruby and powerful tools to help you develop in the serverless world. While at the same time, it allows you to use other languages like node and python for certain use cases.


Commands are short and easy to learn


jets new
jets generate scaffold
jets db:migrate
jets server
jets console
jets deploy
jets routes
jets call
jets status
jets url
jets delete


class PostsController < ApplicationController
  def index
    # renders Lambda Proxy structure compatiable with API Gateway
    render json: {hello: "world", action: "index"}

  def show
    id = params[:id] # params available
    # puts goes to the lambda logs
    puts event # raw lambda event available
    render json: {action: "show", id: id}


class HardJob < ApplicationJob
  rate "10 hours" # every 10 hours
  def dig
    {done: "digging"}

  cron "0 */12 * * ? *" # every 12 hours
  def lift
    {done: "lifting"}


Jets.application.routes.draw do
  get  "posts", to: "posts#index"
  get  "posts/new", to: "posts#new"
  get  "posts/:id", to: "posts#show"
  post "posts", to: "posts#create"
  get  "posts/:id/edit", to: "posts#edit"
  put  "posts", to: "posts#update"
  delete  "posts", to: "posts#delete"

  resources :comments # expands to the RESTful routes above

  any "posts/hot", to: "posts#hot" # GET, POST, PUT, etc request all work

Example: jets deploy

$ jets deploy
Deploying to Lambda demo-dev environment...
=> Compling assets in current project directory
=> Copying current project directory to temporary build area: /tmp/jets/demo/app_root
=> Tidying project: removing ignored files to reduce package size.
=> Generating node shims in the handlers folder.
=> Bundling: running bundle install in cache area: /tmp/jets/demo/cache.
=> Setting up a vendored copy of ruby.
=> Replacing compiled gems with AWS Lambda Linux compiled versions.
Creating zip file.
=> cd /tmp/jets/demo/app_root && zip --symlinks -rq /tmp/jets/demo/code/ .
Building parent template.
Deploying CloudFormation stack with jets app!
Uploading /tmp/jets/demo/code/ (88.8 MB) to S3
Time to upload code to s3: 1s
Deploying CloudFormation stack with jets app!
02:08:20AM UPDATE_IN_PROGRESS AWS::CloudFormation::Stack demo-dev User Initiated
02:08:23AM CREATE_IN_PROGRESS AWS::CloudFormation::Stack ApiGateway
02:08:48AM CREATE_IN_PROGRESS AWS::CloudFormation::Stack PostsController
02:10:03AM UPDATE_COMPLETE AWS::CloudFormation::Stack demo-dev
Stack success status: UPDATE_COMPLETE
Time took for stack deployment: 1m 46s.
Prewarming application...
API Gateway Endpoint:

Learn More

Quick Start