Content as code.
Skip the dashboard.

Built for how people ship now. Agents and the humans who run them.

Open source. Self-hostable. Yours to run.

No Graft cloud in the critical path. Point DATABASE_URL at your database, mount your project, ship.

  • Open source

    Packages live in the monorepo. Read the compiler, the MCP server, the CLI. No hosted CMS black box.

  • Self-hostable

    Your Postgres. Your object store. One Docker image, split compose, or handlers mounted in your app.

  • No dashboard required

    Admin UIs lock agents behind a mouse. Author MDX, run the CLI, or speak MCP. Same loop for you and the agent.

  • You still own the gate

    Destructive ops file an approval. You decide with graft approve. Runtime credentials cannot self-approve.

Same product. Two operators.

You

  • Own the repo and merges
  • Define schema and access in code
  • Run graft approve on destructive ops
  • Deploy a hardened runtime role

Your agent

  • Author and refactor content via MCP / CLI
  • Discover schema with describe_schema
  • Retry gated calls with the approval id
  • Call functions under runtime limits

Claims with docs attached.

Every capability links to the page that teaches it.

Common questions

Does this replace developers?

No. You own the repo, review diffs, and decide destructive gates. Agents do the repetitive authoring and ops that already happen through chat tools.

What do I still decide?

Merges, schema, access rules, and every destructive operation. An agent can file an approval. Only you run graft approve. Runtime credentials cannot self-approve.

Drop Graft onto your repo.

Scaffold locally. Connect your database. Point your agent at MCP or the CLI.