Open-source hosting API for agent output

Publish AI output as a page.

Claude Code or Codex can generate HTML for you, but hosted sharing is often tied to team and enterprise plans. The Artifact gives you the same simple path on your own deployment.

What it hosts

One API, five public URL types.

/v1/artifactsHTML reports and JSON render specs
/v1/imagesHosted images for artifacts and apps
/v1/csv-filesRaw CSV files with stable public URLs
/v1/datasetsReusable JSON datasets by workspace
/v1/appsRouted multi-page app specs

1

Generate

Ask an agent to produce HTML, a JSON render spec, images, CSV, or a small app.

2

Publish

Generate a no-login API key and send the payload with an Authorization Bearer token.

3

Share

Use the returned URL in email, Slack, a doc, or a client review thread.

Simple to run

Apache-2.0, documented self-hosting, and no-login key generation. OAuth and Stripe are optional for account and paid-plan flows.

Agent-ready

The app catalog prompt lives at /v1/apps/catalog/prompt and the schema lives at /v1/apps/catalog/schema.

Agent setup

Give this prompt to your coding agent.

Convex alone can run the publishing API. Add Vercel only for the Next.js web app, dashboard, auth, and routed app renderer.

Set up this repo for the smallest useful self-hosted artifact API.
Repo: https://github.com/madeyexz/the-artifact

First choose the deployment shape:
- Convex-only is enough for REST publishing: /v1/keys, /v1/artifacts, /a/:id, images, CSV files, and datasets.
- Add Vercel only if I need the Next.js landing page, docs, dashboard, auth/claim flows, MCP consent, or /app/:id SSR apps.

Steps:
1. Install dependencies with bun install.
2. Create or select a Convex deployment with bunx convex dev.
3. Deploy Convex functions with bunx convex deploy.
4. Set Convex env:
   bunx convex env set CONVEX_SITE_URL https://<your-deployment>.convex.site
   bunx convex env set SITE_URL https://<your-app-domain-or-localhost>
5. If using Vercel, deploy the Next.js app and set:
   NEXT_PUBLIC_CONVEX_URL=https://<your-deployment>.convex.cloud
   NEXT_PUBLIC_CONVEX_SITE_URL=https://<your-deployment>.convex.site
   NEXT_PUBLIC_APP_URL=https://<your-app-domain>
6. Create a no-login API key:
   curl -X POST https://<your-deployment>.convex.site/v1/keys -H "Content-Type: application/json" -d '{"name":"Personal workspace"}'
7. Install the publishing skill:
   npx skills add madeyexz/the-artifact --skill publish
8. Configure the skill:
   export ARTIFACT_API_BASE=https://<your-deployment>.convex.site
   export ARTIFACT_API_KEY=artifact_...
9. Publish a complete HTML file with:
   python3 scripts/publish_html.py page.html --title "My Page"

Create your workspace key.

Use a key from your own deployment, then publish from any agent.

Generate API key