Belt — Cloud Infrastructure for Ruby Programmers

Belt is a Rails-inspired framework for serverless Ruby on AWS Lambda. A Ruby DSL (routes.rb) plus the belt CLI and the conveyor-belt Terraform provider turn a Rails-like app into complete AWS serverless infrastructure (API Gateway, Lambda, DynamoDB, Cognito, CloudFront).

Documentation

  • Authentication (markdown) — Cognito owns authentication — passwords, MFA, hosted signup, groups. Belt owns the record of the human Cognito authenticated, so your app can answer its own que
  • Backups (markdown) — Belt integrates automated pre-deploy backups into the deploy lifecycle. When configured, belt deploy creates recovery points before applying changes.
  • Console (markdown) — belt console (alias: belt c) starts an interactive Ruby session with your application fully loaded — models, configuration, AWS clients, everything.
  • Controllers (markdown) — Belt controllers inherit from BeltController::Base and handle HTTP requests dispatched by Belt::ActionRouter. They provide callbacks, strong parameters, respons
  • Data Seeding (markdown) — Belt provides two ways to get data into an environment without hand-crafting rows: copying data from another environment, and Rails-style seed files.
  • Deployment (markdown) — Belt deploys serverless applications to AWS using Terraform. The CLI wraps terraform init/plan/apply with conventions for environment management, Lambda packagi
  • Frontends (markdown) — Belt can host one or more JavaScript SPAs (React, Vue, or Svelte) next to the Lambda API. A typical app has a single frontend/ directory. Some apps — Stowzilla
  • Generators (markdown) — Belt generators scaffold code and infrastructure for common patterns. Run belt generate --help to see all available generators (built-in + plugins).
  • Lambda Handler (markdown) — Belt::LambdaHandler is the module you include in your Lambda entry point. It provides the lambdahandler method that AWS Lambda invokes, wrapping your applicatio
  • Models (markdown) — Belt uses ActiveItem as its ORM for DynamoDB. Models inherit from ActiveItem::Base (typically via an ApplicationRecord base class).
  • Observability (markdown) — Belt provides structured logging and CloudWatch metrics out of the box. These are initialized automatically by Belt::LambdaHandler — no setup required.
  • Plugins (markdown) — Belt plugins are separate gems that extend the CLI and runtime. They're discovered automatically — no registration file or initializer hook needed.
  • Routing (markdown) — Belt routes map HTTP requests to controller actions. Routes are defined in config/routes.rb using a Ruby DSL that mirrors infrastructure (API Gateway + Lambda).
  • Project Structure (markdown) — A Belt application follows a conventional directory layout. Understanding this structure helps you navigate and extend the app effectively.

Agents: /llms.txt indexes the docs; /llms-full.txt has all of them in one file.