Agent-native CMS

The site that edits itself.

Kerosites is a website platform with an agent inside it. Ask for a change in plain language and the agent writes the content, writes the code, ships a preview, and records what it did.

7
MCP tools
1
database
0
handoffs
site agent
thread · 3f9a

Add a third pricing tier called Studio, and make the middle card the highlighted one.

What it does

Six things a website should already do for itself.

Kerosites is built around one idea: the people who own a site should describe what they want, and the site should do the rest without a rebuild ticket.

01

A built-in agent

Every Kerosites site ships with its own agent. It knows the schema, the components, and the deploy history, so it does not guess.

  • Reads the live content tree and the source at the same time
  • Plans, edits, and explains each change before it lands
  • Keeps a durable thread, so the next request has full context
02

An MCP server for other agents

Point Claude Code, an IDE, or your own agent at the site. Kerosites speaks MCP, so any client gets the same tools the built-in agent uses.

  • Streamable HTTP transport at /mcp, scoped by API key
  • Tools for pages, blocks, media, redirects, and deploys
  • One audit trail, whichever agent made the change
03

Codemode: edit content and code

Most CMS tools stop at the content. Codemode gives the agent the repository as well, behind a sandbox and a review step.

  • Write TypeScript against a typed API instead of many small calls
  • Content edits and component edits in one transaction
  • Every run is sandboxed, diffed, and reversible
04

Test alternative designs

Ask for three versions of a page and get three live URLs. Traffic splits, results collect, and the winner is promoted with one click.

  • Variants are real deploys, not mockups
  • Split traffic by percentage, cohort, or invite link
  • Promote or discard without touching the main branch
05

A changelog you can read

Each change is recorded with the prompt that caused it, the files it touched, and an annotated view of what moved on the page.

  • Before and after, marked up with numbered notes
  • Filter by agent, by human, or by deploy
  • Roll back to any entry from the same view
06

Convex underneath

Content, threads, variants, and the changelog live in one reactive database. Edits appear everywhere the moment they commit.

  • Live queries, so editors see agent work as it happens
  • Custom domains for the API and the HTTP endpoints
  • Auth with passkeys, OAuth, passwords, or anonymous sessions
Works with your agents

One MCP server. Every agent gets the same tools.

The built-in agent has no private API. It calls the same MCP server your own agents call, so a change made from Claude Code and a change made from the dashboard land the same way.

tools
  • list_pages { status? }

    Every page with its slug, status, and last deploy.

  • read_block { pageId, blockId }

    One block of content, typed and versioned.

  • write_block { pageId, blockId, value }

    Replace a block; returns the diff it produced.

  • codemode_run { script }

    Run TypeScript against the site API in a sandbox.

  • create_variant { pageId, prompt, split }

    Build an alternative design and give it a URL.

  • promote_variant { variantId }

    Send the winning variant to production.

  • changelog { since?, actor? }

    Annotated history of every change to the site.

.mcp.json
{
  "mcpServers": {
    "kerosites": {
      "type": "http",
      "url": "https://mcp.kerosites.com/mcp",
      "headers": { "Authorization": "Bearer ker_live_..." }
    }
  }
}

Scoped keys

Give a key read-only access to content, or full access to content, code, and deploys. Revoke it from the dashboard.

Shared audit trail

Whichever client made the call, the changelog records the agent, the prompt, and the diff.

No local setup

Streamable HTTP, so there is nothing to install and nothing to keep running on your machine.

Codemode

The agent writes code, not a hundred tool calls.

Calling a tool once per field is slow and it loses the plan. In codemode the agent writes one short TypeScript program against a typed site API, and that program edits content and source in the same run.

codemode_runsandbox
// codemode_run — one script, content and code together.
import { site } from "@kerosites/api";

const page = await site.pages.bySlug("pricing");

// 1. Content: retire the old tier.
await page.blocks.update("tiers", (tiers) =>
  tiers.filter((t) => t.id !== "legacy"),
);

// 2. Code: the card component needs a new prop.
await site.code.edit("src/components/TierCard.tsx", {
  find: "type Props = {",
  replace: "type Props = {\n  highlight?: boolean;",
});

// 3. Ship it as a variant, not straight to production.
return site.variants.create({
  page: page.id,
  label: "pricing-three-tiers",
  split: 0.25,
});

Sandboxed

The script runs against a copy. Nothing reaches production until the diff is accepted.

Typed

The site API is generated from your schema, so a bad field is a compile error, not a broken page.

Reversible

Every run is one changelog entry. Roll it back and the content and the code both return.

result
2 files changed · +34 −6
variant pricing-three-tiers · 25% traffic

Alternative designs

Try another design without asking anyone.

Kerosites treats a design as something you test, not something you commit to. Pick a variant below and this page repaints in front of you.

live variants

These buttons repaint this whole page, live. On a real Kerosites site each variant is a separate deploy with its own URL and its own share of traffic.

density

corners

prompt to reproduce

“Make three versions of the landing page: one warm and dark, one light and editorial, one cool and product-led. Split traffic evenly and tell me which converts after a week.”

Annotated changelog

Every change, marked up on the page it changed.

A list of commit messages tells you nothing about how a page moved. Kerosites records the prompt, the files, and numbered notes pinned to the parts of the page that changed.

prompt
The hero buries the demo. Put the product beside the headline, not below it.

what changed

  1. 1Headline moved left and dropped to two lines.
  2. 2Live agent panel now sits beside the copy.
  3. 3Second call to action changed to a plain link.

files

  • src/components/Hero.tsx
  • src/lib/content.ts
Questions

The ones we get asked first.

Does the agent deploy straight to production?

No. By default every agent change lands as a variant with its own URL. You promote it when you are ready. You can opt a site into direct deploys if you prefer.

Can I still edit the code by hand?

Yes. A Kerosites site is a normal repository. Clone it, edit it, push it. The agent reads your commits and keeps the changelog accurate.

Which agents can connect?

Any MCP client. Claude Code, Claude Desktop, Cursor, and your own agents all use the same streamable HTTP endpoint and the same scoped keys.

Where does the data live?

In Convex, on custom domains under kerosites.com. Content, threads, variants, and the changelog share one reactive database.

Describe the site. Let it build itself.

Start free on kerosites.com. Bring your own agent, or use the one that comes with every site.