Self-hosted · Open source · MIT

Turn any AI-generated HTML into a live link — on infrastructure you own.

FreeFlow is a Cloudflare Worker + KV backend and a one-line CLI. Any coding agent that can write an HTML file can now publish it to the edge in seconds, with no third-party host in between.

Deploy your own npm package
npx freeflow-dkraft-publisher ./plan.html --secure 1234
🚀 Published successfully! https://your-worker.dev/d/8f2a91c3

Why this exists

The idea started from watching Theo Browne — creator of the T3 stack, t3.gg, and t3.chat — build tools with an instant-publish loop: an AI generates something, and seconds later it's a live, shareable URL. No deploy ceremony, no waiting.

That loop is genuinely great UX. But every version of it I'd used lived on someone else's servers, under someone else's terms. Meanwhile, agents like Claude and Codex can already generate a complete, self-contained HTML plan or mockup in one shot — what they can't do is put it somewhere without a copy-paste into a gist.

FreeFlow closes that gap: deploy the Worker once, and any agent can call one CLI command to turn a local HTML file into a live URL — on your Cloudflare account, your domain, your data.

How it works

1. Write the draft

One self-contained HTML file — inline or CDN-loaded assets only. Any agent can generate one directly.

2. Publish it

dkraft-publish posts it to your Worker over a bearer-token authenticated endpoint. Optional PIN gate per draft.

3. Share the link

Served byte-for-byte from Workers KV at the edge — no build step, no origin server to keep alive.

Built for agents

Ships with an in-repo agent skill (.claude/skills/freeflow-publish) so Claude Code — or any agent that reads a SKILL.md as plain instructions — knows exactly how to publish plans, layouts, and ideas without being told twice.

Quick start

  1. 1. Create your KV namespace and configure the Worker

    cp wrangler.toml.example wrangler.toml
    wrangler kv namespace create HTML_DRAFTS
    wrangler kv namespace create HTML_DRAFTS --preview
  2. 2. Set your upload secret and deploy

    wrangler secret put SECRET_API_KEY
    npm install && npm run worker:deploy
  3. 3. Publish a draft

    export DK_PUBLISH_KEY="<your SECRET_API_KEY>"
    export DK_PUBLISH_URL="https://<your-worker-domain>"
    npx freeflow-dkraft-publisher ./plan.html

Full docs, architecture notes, and the agent skill live in the GitHub repository.