artifacts.booGitHubSign in

Collaborative documents and little apps your agent can build, inspect and maintain.

Your agent (Claude, Codex, Cursor or any MCP client) writes MDX or React over MCP. People open a link, sign in with an emailed code, and get a live page: shared state, per-person state, presence, comments, approvals and forms built in, with no backend to wire up. What they decide comes back to the agent. Everyone it isn't shared with never sees it.

Start freeSee examples

Free to start, no card needed.

What the agent writes, and what people open

Three real artifacts, compiled and rendered by the same code as any other. Vote, tick and type in them: nothing leaves your browser.

index.mdxdata/signups.json
# Launch plan: billing v2

<Summary>Ship **this Thursday** unless the load test fails. Vote on the day below.</Summary>

<Stats>
  <Stat label="Beta signups" value="1,284" delta="+18%" />
  <Stat label="Open bugs" value="7" delta="-5" invert />
  <Stat label="p95 checkout" value="420ms" delta="-12%" invert />
</Stats>

```mermaid
flowchart LR
  Freeze[Code freeze] --> Load[Load test] --> Ship
  Load -- fails --> Fix[Fix and retest] --> Load
```

<Chart type="area" data="signups.json" x="week" y="signups" height={200} />

## Decide

<Poll id="day" question="When do we launch?" options={["This Thursday", "Next Thursday"]} />

<Approval id="go" title="Go for launch" description="Sign off once your part is ready." approvers={["priya.shah@example.com", "marcus.lee@example.com", "tom.okafor@example.com"]} />

<Checklist id="launch" items={["Docs", "Status page", "Announcement email"]} />

<Comments />
acme.style.artifacts.boo/a/launch-plan

MDX with a diagram, a chart, and a poll, sign-off, checklist and comments that everyone shares. Open it as a public page.

Live pages, not static HTML

State, people and data are part of the page, not something to wire up.

  • useShared, useSharedMap and useLocal sync over a WebSocket; useViewer and usePresence know who's looking
  • Polls, approvals, forms, checklists, notes and comments work out of the box, alongside tables, charts and Mermaid diagrams
  • A data file can refresh from a JSON URL on a schedule, once a person approves the host

An edit-and-check loop for agents

Agents change artifacts the way they change code, and find out when they broke something.

  • Ranged reads, grep, exact find-and-replace edits and JSON Patch, with version guards against stale writes
  • Imports, components and syntax validated before anything is saved
  • Every write rendered in a headless browser; runtime errors and a screenshot come back in the tool result

People answer, agents close the loop

An artifact can ask for a decision and get it back, not just be read.

  • Approvals, form responses and comments anchored to exact text, each signed with the person's verified email
  • The agent reads every answer over MCP, and MCP events or a webhook can wake it when one arrives; fixes are marked addressed in the version that made them
  • Owners and agents see who has read which version; readers see what changed since their last visit

Isolated by construction

Tenancy and untrusted code are handled by the platform, not by convention.

  • Each workspace is its own Durable Object with its own SQLite database, on its own subdomain and browser origin
  • Artifact code runs in a sandboxed, opaque-origin frame with no network access
  • Comments live outside the frame and collab writes are stamped server-side, so votes and authorship can't be forged

How artifacts.boo thinks: the principles behind these choices

Prefer to run it yourself?

It's source available: one deploy puts the same thing on your own Cloudflare account, with your own domain and data.

No lock-in. Admins can download everything in their workspace any time, as plain JSON an agent can read (the format), and run it on their own account from the source. Free to run for your own organization under the Functional Source License; offering it to others as a hosted service isn't. Each release becomes Apache 2.0 after two years.

terminal
git clone https://github.com/micthiesen/artifacts.boo
cd artifacts.boo && bun install
# set DOMAIN, OPERATOR_EMAILS, OPERATOR_TOKEN in .env
bun run deploy