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.

  • 01

    Open source

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

  • 02

    Self-hostable

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

  • 03

    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.

  • 04

    You still own the gate

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

Agents already do most of the typing.

Teams ship with agents more than they write every line by hand. A CMS that only works as a human-only admin leaves that work stuck: the agent cannot see the schema or finish the job without someone clicking panels.

Dashboards were built for mice.

Opaque admin flows make agents second-class. Bolting MCP onto a dashboard rarely matches what a human can do in the panel. Graft refuses that shape: content is MDX in git, schema is TypeScript, ops are CLI and MCP.

Let them code. Still get content.

Author MDX or call write_content. graft compile validates and updates the index. Typed reads render in whichever framework you brought. If git and Postgres disagree, recompile. Git wins.

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

Do I need a dashboard?

No for day-to-day authoring. Write MDX, use the CLI, or drive MCP. Approvals are graft approve on your machine today.

Is Graft open source and self-hostable?

Yes. You run the packages against your Postgres and S3-compatible store. One container, split compose, or handlers embedded in your app. No Graft cloud required.

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.

Drop Graft onto your repo.

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