On Belay

Developer Platform

Apply to build a fieldset

Ship your AI workflow to On Belay organizations. We handle auth, credentials, observability, and billing. You build the logic.

Before you apply — do this on your repo

Two grants are needed — the first is not enough on its own. (1) Add GitHub user on-belay as a write collaborator (repo → Settings → Collaborators). (2) Authorize the railway-app GitHub App on the account that owns the repo — we build your service on Railway, and a collaborator grant alone cannot reach a repo owned by an organization. If your repo is under an org, an org owner approves it at github.com/organizations/<org>/settings/installations; under a personal account it is github.com/settings/installations. It can be scoped to just this one repo, and we send the request automatically. Also make sure the repo has at least one commit on its default branch; an empty repo passes the visibility check but fails when Railway tries to connect it.

What happens next

  1. We review your application within 1 business day.
  2. On approval, On Belay provisions a Railway service from your repo.
  3. Your fieldset appears in the marketplace for orgs to enroll in.

Must match your On Belay account email.

onbelay.ai/fieldsets/

Lowercase letters, numbers, and hyphens only. Must start with a letter. 3–50 characters.

0 / 50 min

Before you apply — required repo setup

Two grants are required. (1) Add the GitHub user on-belay as a collaborator with write access on this repo (repo → Settings → Collaborators). (2) Authorize the railway-app GitHub App on the account that owns the repo — for an organization repo an org owner must approve it, scopeable to this one repo. A GitHub App installed on the on-belay account cannot reach an organization's repositories, which is why the collaborator grant alone leaves the repo invisible to us. Also make sure the repo has at least one commit on its default branch. Miss any of these and provisioning will fail.

Shown to org admins when a run fails.

Format: integrationSlug.operationKey — one per line or comma separated, e.g. shopify.list_products. After the dot goes the operation's own catalog key (list_products), not a resource-and-verb path — shopify.products.list is not a valid entry. Some catalog keys contain dots of their own (shopify.themes.assets.update) — paste those exactly as written. Every entry is checked against the operation catalog when you submit, and anything that does not resolve is rejected with the reason.

Questions? Email us at adam@onbelay.ai

Already building an internal fieldset? Go to your dashboard