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 specs1
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.