The SaaS-replacement platform Shared system for teams and agents. Official CLI + GraphQL surface.

Extension developers

Build your own extensions with your favourite AI coding assistant.

Give Claude Code, Codex, or any capable agent the extension SDK and describe what you want. It scaffolds, implements, tests, and deploys a working extension against the same runtime model as the first-party set. No team required. No months of development. This is the canonical public handoff for humans and agents building a custom Move Big Rocks extension. If the task is product evaluation, start at `/agents` instead. If there is no running instance yet, stop and use `/docs/self-host` first.

Agent-first route: Start at /agents, inspect /docs/cli, and drop into this page when you need proof, detail, or rollout guidance.

Table of contents

Section map.

Jump directly to the part you need.

When to use this route

Use this page when the task is extension authoring, not general product evaluation.

The path is easier for humans and much easier for agents when the first routing decision is explicit. Do not mix evaluation, deployment, and extension authoring into one reading order.

Do not start here for configured core workflows

If the workflow can already live on workspaces, teams, forms, queues, cases, knowledge, and automation, use the shared base first. Many approvals and requisitions are configuration work, not extension authoring.

Agent reading order

Agents should follow a short extension-author route and stop inventing missing steps.

The goal is a deterministic route an agent can follow without having to guess which page matters next.

1. Start on `/extension-developers`

Confirm prerequisites, the supported self-built slice, and whether the task is really extension work.

Canonical public SDK

3. Open the extension SDK handoff

Use `README.md` and `START_HERE.md` in the public SDK as the concrete scaffold and local workflow.

Proof

Explicit service-backed upgrade path

4. Open `SERVICE_BACKED.md` only when needed

Branch into service-backed runtime design only when the extension truly needs handlers, jobs, event consumers, or an owned schema.

Proof

Supported self-built slice

Stay inside the supported generic self-built slice unless there is a strong reason not to.

The SDK and site now say this plainly because agents were otherwise too likely to infer an overpowered starting point.

Proof bundle

  • Start `workspace` scoped.
  • Start `standard` risk.
  • Start `product` or `operational` kind.
  • Start `bundle` runtime.
  • For a startup team, prefer one narrow workflow or product slice over a broad internal-platform fork.
  • Do not force `instance`, `privileged`, `identity`, or `connector` extensions through the generic public authoring path.
  • Keep the first version small enough that an instance admin and an agent can both explain it clearly.

Default proof loop

The first version should prove itself through one repeatable command loop.

This is the shortest supported path from a private extension repo to a preview-workspace extension with an inspectable surface.

Proof bundle

  • Contract docs/AGENT_CLI.md Defines the supported agent CLI contract, auth modes, and command surface.
  • Contract docs/swagger.yaml Documents the public API surface, auth model, and health endpoints.
  • Implementation cmd/api/routers.go Implements the split between `/graphql`, `/admin/graphql`, public routes, and authenticated agent surfaces.
  • Enforcement .github/workflows/_test.yml Verifies builds, tests, and contract-sensitive paths on the public platform codebase.
  • Treat `extension.contract.json` as deliberate checked-in proof, not generated noise.
  • Verify workspace-scoped admin entrypoints from an instance-admin session too, not just from an already-selected workspace.

Recommended first proof loop

Use this exact loop before you tell anyone the extension is ready.

$ git clone https://github.com/MoveBigRocks/extension-sdk acme-my-extension$ cd acme-my-extension$ mbr extensions lint . --json$ mbr auth login --url https://app.yourdomain.com$ mbr extensions verify . --workspace ws_preview --json$ mbr extensions nav --instance --json$ mbr extensions widgets --instance --json$ mbr extensions skills list --id EXTENSION_ID --json

Service-backed branch

Move to `service_backed` only when the product requirement proves it.

Service-backed runtime is a legitimate next step, but it should be a conscious upgrade rather than the default starting point.

Proof bundle

Stay bundle-first when the extension is mostly UI and workflow

Branded pages, admin UI, bundled skills, workflow seeds, and declarative product slices usually do not need a separate backend process.

Go service-backed for handlers or ingest

Choose `service_backed` when the extension needs custom server-side handlers, public ingest, or compatibility-sensitive endpoints.

Go service-backed for jobs or consumers

Choose `service_backed` when the extension needs scheduled jobs, domain event consumers, or richer background work.

Go service-backed for owned schema

Choose `service_backed` when the extension needs an `ext_*` PostgreSQL schema, its own migrations, and a bounded data model.

Common failure modes

Agents should avoid the mistakes that made extension authoring feel fuzzy before.

The extension author route should now be explicit enough that these failure modes are unnecessary.

  • Do not start from the core repo when the task is a private extension.
  • Do not start from the SDK when there is no running instance or preview workspace yet.
  • Do not invent privileged or instance-scoped capabilities into the generic public authoring path.
  • Do not jump into `service_backed` just because it sounds more powerful.
  • Do not describe an extension as ready until the lint, verify, nav, widgets, and skills loop is green.

References

Canonical next surfaces.

Each link goes to the next authoritative page, reference, or support surface.

Move Big Rocks

Let agents inspect the CLI-first surface. Let humans decide trust, rollout, and boundaries.

Start from /agents, use /docs/cli as the official product tour, inspect /resources for source and proof, and review /security before making deployment or data-handling decisions.