Publishing upserts the file on the static pages origin, served from the edge
Publish is the step that makes llms.txt real: the approved draft's content is written to the domain's static files, and a rewrite rule routes /llms.txt to it — both served by the edge proxy, no origin involvement.
Clicking Publish#
On an approved row in Generated drafts press Publish (POST /v1/domains/:id/content-actions/:draftId/publish). Guards come first: only approved drafts pass (Only an approved draft can be published (this one is draft). is the shape of the refusal), and kinds without a publish path answer "{kind}" has no publish mechanism in this codebase yet — export it instead. Success flips the status to published, stamps publishedAt, and toasts Draft published to the proxy.
What publish writes#
- Static file — upsert at path
llms.txt,Content-Type: text/plain; charset=utf-8, body from the draft. Visible under Advanced → Static pages (tablePath | Content type | Size | Updated | Actions); the panel notesStatic file changes are available immediately. Use a rewrite rule with the Static Pages origin to serve them. - Rewrite rule —
Serve llms.txt, source pattern^/llms\.txt$, destination/llms.txt, origin = static pages — created only if not already present, so re-publishing never duplicates it, then rewrite rules are deployed to the serving path right away.
Rollback is documented in the action registry: delete the static file and the serving rewrite, then redeploy rewrites.
Verifying it afterwards#
Once published, three checks confirm the loop closed: the row's pill reads published; Advanced → Static pages lists llms.txt with content type text/plain; charset=utf-8 and a fresh Updated value; and Advanced → Rewrites shows the enabled Serve llms.txt rule routing ^/llms\.txt$ to the static-pages origin. A cold curl https://yourdomain/llms.txt then returns your content with the edge in front — and the publish is recorded as activity content_action.published, visible in the change log like every other content action.
What publish does not do#
It does not touch your origin (nothing to deploy there), and other rule types — SEO rules, redirects — still wait for their own save/Deploy semantics (see Deploy schema and redirects). Afterwards, curl https://yourdomain/llms.txt should return the published body with the edge in front.

