why
Content as code.
Skip the dashboard.
Built for how people ship now. Agents and the humans who run them.
foundations
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.
roles
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
receipts
Claims with docs attached.
Every capability links to the page that teaches it.
faq
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.
begin
Drop Graft onto your repo.
Scaffold locally. Connect your database. Point your agent at MCP or the CLI.