Docs / index

Welcome to Raterunner

Raterunner is an open-source tool that lets you manage your SaaS billing configuration as code. Define your plans, entitlements, and promotions in YAML, version control your changes, and sync to payment providers like Stripe.

The Problem

SaaS billing configuration is typically scattered across:

  • Payment provider dashboards — Stripe Products, Paddle Catalog
  • Backend code — entitlement checks, feature flags
  • Marketing sites — pricing pages, feature comparisons
  • Infrastructure configs — environment-specific settings

This leads to drift, inconsistencies, and provider lock-in.

The Solution

Raterunner consolidates all of this into a single, version-controlled YAML configuration:

yaml
version: 1providers:  - stripeplans:  - id: pro    name: Pro Plan    prices:      monthly: { amount: 2900 }      yearly: { amount: 29000 }    limits:      projects: 25      api_requests: { limit: 1000, per: minute }    features:      - Up to 25 projects      - Priority support

Benefits:

  • Single source of truth — one file defines all plans, prices, and entitlements
  • Version control — track all billing changes in Git with full history
  • Code review — pricing changes go through PR review like any other code
  • Environment parity — same config deploys to sandbox and production
  • Provider-agnostic — sync to Stripe today, Paddle tomorrow
  • Schema validation — catch errors before they hit production

Quick Start

1. Install the CLI

bash
brew install raterunner/tap/raterunner

Or download from GitHub Releases.

2. Initialize your project

bash
raterunner init

This creates a raterunner/billing.yaml file with example plans.

3. Validate your configuration

bash
raterunner validate raterunner/billing.yaml

4. Sync to Stripe

bash
export STRIPE_SANDBOX_KEY=sk_test_...raterunner apply --env sandbox raterunner/billing.yaml

How It Works

  1. You edit billing.yaml — your plans, prices, and entitlements
  2. Run raterunner apply to sync changes
  3. CLI creates/updates products in Stripe
  4. Provider ID file (stripe_sandbox.yaml) is auto-generated with Stripe IDs

Your billing.yaml is the source of truth — you edit it, commit it, review it. Provider ID files are auto-generated to track which Stripe products/prices were created.

Current Status

Raterunner currently supports Stripe only. Support for Paddle and Chargebee is planned.

Next Steps