Text sizeText colorText formattingFont familyLetter spacingText alignmentInsert imageInsert iframeInsert linkContent layoutContent widthColumnsColumn gapLine heightPaddingBackground colorBackground imageBackground repeatBackground sizeBackground position
anew logo

Write anything, press Save, share the link.

This page is the editor. Type over this text, or edit the HTML source.

Let your AI write it:

Make a webpage on https://anew.page about…

llms.txt · MCP server · OpenAPI

Or .

anew – free websites that live in a URL. The link is the website — the whole page lives in the URL. No account, no hosting; pages are free, immutable, and deterministic. Style the page with the toolbar, set a page title and icon, or edit the HTML source right in the browser. When it looks right: Save, Share, Copy URL, or Download HTML. A page is one self-contained HTML file — any chat agent can build one. Without POST access, mint the URL locally: the slug is just the page, brotli-compressed and base64url-encoded.
To create a page without the editor, POST raw HTML to https://anew.page/write — the response body is the page URL. Measure by posting, not by calculating: a write is repeatable, so send the page and read what comes back instead of modelling the encoder. No source HTML and no page record are kept — the URL carries the page — though a successful write also kicks off a best-effort screenshot render that, when it succeeds, is cached publicly at the page's .png twin. A 200 reports the page against both budgets in its Anew-URL-Bytes and Anew-Decoded-Bytes response headers, and carries Anew-Share-Warning when the URL minted past the share-safe budget (valid, serves, may break in some apps); a 413 fires only past the physical ceilings and names the exact overage and the fix for the wall that tripped. Never estimate a compressed size and never pre-cut a page to fit a budget — Brotli is non-linear, so source bytes removed are not URL bytes saved, and pages that look far too big routinely fit. With script access to this tab, document.modelContext carries the same verbs as page tools: availableTools lists them, callTool(name, input) runs one — anew installs that host itself when the browser ships none. Full reference: https://anew.page/llms.txt, which also carries a local-mint fallback for environments that cannot POST. To revise an existing anew page, its URL is its source: read it, edit that HTML, write it again. The new URL is a separate page and the original keeps working. Over HTTP that is: GET it with Accept: text/plain for the author's exact HTML, then POST that back to /write. The page's canonical URL on anew.page also answers HEAD (200 = the slug decodes) and has .md (Markdown) and .png (screenshot) twins for verification. In the editor: the editing chrome sits behind a closed shadow root and the page itself inside an iframe, so a reader that walks only the top document's light DOM sees neither. That reader is not stuck: <body> carries one control and one report. #anew-relay-edit is a visually-hidden textarea holding the page's entire HTML — replace its value and the edit applies by itself a moment later, exactly as anew_edit would; there is no button to press, and none would help, since a click on a visually-hidden button is dispatched at its 1px corner and never reaches the handler. #anew-relay-status restates anew_read after every change: title, URL bytes, whether the page still fits the budget, whether anything is unsaved, and the current URL — read it to confirm an edit landed instead of taking a screenshot. Both go empty and inert while a Run preview is executing the page's own scripts. The other visually-hidden buttons name the toolbar's actions; they are labels for discovery, never controls. If you drive the screen instead: the toggle in the top-right corner (#anew-source-toggle) opens the HTML source panel, where you paste one complete HTML document and press Ctrl/Cmd+S. (Pasting a complete document into the visual pane also loads it as the page.) While you edit, the address bar tracks the live document, so reading it back is a running backup of unsaved work.