Runsheet

Runsheet

Tooling for teams that ship on GitHub.

Small, focused tools for the teams that already run their world on GitHub. No SaaS lock-in, no sprawling control planes — just the pieces you actually need.

terrastore — the first apply
$ terraform login terrastore.runsheet.devSuccess! Terraform has obtained and saved an API token.$ terraform initTerraform has been successfully initialized!$ terraform applyApply complete!

Products

Three tools, one console.

Sign in with GitHub, install the Runsheet App on an org, enrol a repo. Every product reads the same GitHub permissions, live, on every request.

Terrastore

Terraform state, authenticated by GitHub.

Live A drop-in remote backend. OIDC in CI, terraform login on your laptop, every version kept, a state browser in the console. $1 per active repo per month. Explore Terrastore →
console.runsheet.dev/orgs/example/terrastore/states

Terrastore

States

Modules

Registry

Prologue

Projects

WorkspaceSerialLockWritten by
infra.prod14CI · OIDC
infra.staging31heldCI · OIDC
platform.dev7terraform login

Prologue

Specs that live where the code does.

Preview PRDs, TRDs, RFCs and ADRs as specs/*.md in the repos that implement them, indexed on push into one project view. Git is the record. Learn more →

Chippy

Deploy from one declaration file.

Designed Built once, promoted through environments, on hardened base images re-patched every night without a rebuild. The design →

Chippy · designed, being built

The deploy product, designed before it is built.

One declaration file per app, built once and promoted through environments, on hardened base images that are re-patched every night without a rebuild — with identity, governance and billing flowing from the customer's GitHub org, like every other runsheet product.

One declaration, promoted

An app is one file. It is built once, then the same artefact moves through environments; nothing is rebuilt on the way to production.

Rebase, not rebuild

Base images are hardened and re-patched every night. A patched image is rebased under your app's layers, never rebuilt from your source.

GitHub governs

Who may deploy what is your GitHub org's say. Latchkey asserts it; the cloud trusts Latchkey. Terrastore holds the state; the engine is OpenTofu.

What we believe

Three beliefs, every product.

GitHub is the platform

Your source, CI, identity and review already live there. Good tools should lean into it, not reinvent it.

Ephemeral beats stored

Short-lived, scoped credentials — OIDC over shared secrets — for every layer that can use them.

Small, owned, composable

Single-purpose tools you can self-host or run managed. No monolith, no platform tax.

How it goes

From zero to applied.

  1. 01

    Sign in with GitHub

    At console.runsheet.dev. The first sign-in creates your billing account.

  2. 02

    Install the Runsheet App

    On the GitHub org you want to manage. You need to be an admin of that org; "all repositories" or "select repositories" both work.

  3. 03

    Enrol a repo

    Enrolment is the billing decision. Repos you do not enrol are not billed and do not accept state writes. Then drop the cloud {} block in.

Ready to try it?

Sign in with GitHub, install the App, enrol a repo, drop the cloud block in. Then terraform apply.