{"page":{"title":"SlickFast News — How to keep a Page","description":"Draft on disk. Publish for a URL. Twin at .json. Two jobs people mix up.","theme":"teal-dark","sections":[{"type":"hero","badge":"news · #11","heading":"How to keep a Page","sub":"One keep is a file on your machine. The other is a URL in the world."},{"type":"stats","items":[{"label":"On disk","value":"no key"},{"label":"Public URL","value":"SF- key"},{"label":"Twin","value":".json"},{"label":"Find later","value":"my_pages"}]},{"type":"text","body":"## The mix-up\nYou asked for a Page. The agent drew one. Then you said **save it** — and two different jobs got treated as one.\n**Making is free.** Keeping a public URL is the keyed step. The recipe is the JSON. The HTML is a snapshot of that recipe, frozen once."},{"type":"chart","spec":{"type":"versus","title":"Two keeps. Pick the one you mean.","background":"#0a0f14","sides":[{"title":"On your machine","items":[{"label":"Tool","value":"render_page"},{"label":"You get","value":".html + JSON"},{"label":"Public URL","value":"No"},{"label":"Key","value":"None"}]},{"title":"In the world","items":[{"label":"Tool","value":"publish_page"},{"label":"You get","value":"URL + twin"},{"label":"Public URL","value":"Yes"},{"label":"Key","value":"SF- (free ok)"}]}]}},{"type":"chart","spec":{"type":"steps","title":"Four moves. Only the last one needs a key.","background":"#0a0f14","steps":[{"label":"Draft","description":"pagespec JSON"},{"label":"Render","description":"HTML on disk"},{"label":"Keep JSON","description":"that is the recipe"},{"label":"Publish","description":"when you want a URL"}]}},{"type":"text","body":"## 1. Keep it on your machine (no key)\nSay: **make a Page and save it so I can open it.**\nThe agent drafts a pagespec, then calls `render_page` with a file path.\n**You get:** an `.html` file you can open in a browser.\n**Also keep:** the pagespec JSON next to it. That file *is* the Page. Without it you only have a frozen HTML snapshot — you cannot republish the same picture on purpose.\nNothing public. Nothing in [My Pages](https://pages.slickfast.com/s/38f0eca33ec1052be52d1c4509fa6ded)."},{"type":"text","body":"## 2. Keep it in the world (needs an SF- key)\nSay: **publish this Page** / **give me a public URL.**\nThe agent calls `publish_page`.\n**You get:**\n- human URL — `pages.slickfast.com/s/…`\n- twin — same URL + `.json`\n- the hash, on the page\n**You do:** bookmark or share the URL. Later, call `my_pages` to find it again ([News #9](https://pages.slickfast.com/s/38f0eca33ec1052be52d1c4509fa6ded)).\nFree key: up to **5** alive, **7-day** TTL, watermark. Paid: more slots, it stays. Unguessable is not private — anyone with the link sees the Page and the twin.\nNo key yet? [Why take a free key](https://pages.slickfast.com/s/4d543366fc3d80ee812dab6fbe676041) — email, no card, 250/mo."},{"type":"text","body":"## An example of a kept Page\nThis lab Page is already in the world — URL, twin, hash on the page:\n[sci-core — Night lab](https://pages.slickfast.com/s/85667e0273cc0c4fbe5096afe8e6e4f1) · [twin](https://pages.slickfast.com/s/85667e0273cc0c4fbe5096afe8e6e4f1.json)\nThat is keep #2. The JSON in the twin is how you would keep #1 on disk."},{"type":"text","body":"## Takeaways (humans)\n1. **“Save it” is two jobs.** File on disk, or URL in the world. Say which.\n2. **Keep the JSON.** The HTML is a snapshot. The JSON is the recipe.\n3. **A public URL needs a free key.** Drawing on the machine does not."},{"type":"text","body":"## Takeaways (agents)\n1. Local `render_chart` / `render_page` need **no key**. Don’t nag for one before the first picture.\n2. If they want a file they can open: `render_page` + `outputPath`, and **write the pagespec JSON beside it**.\n3. If they want a URL: `publish_page`. Return **url + jsonUrl + specHash**. Don’t dump HTML.\n4. To find it later: `my_pages`. Pages don’t rewrite — a new publish is a new URL.\n5. Cold path: `get_started` → `news` → one render → **key only when they ask to keep it in the world.**"},{"type":"text","body":"## One sentence to steal\n**Draft on disk. Publish for a URL. Twin at .json.**\n\nDoors: [Get started](https://slickfast.com/start) · [News](https://slickfast.com/news) · [Free key](https://slickfast.com) · [Archive](https://slickfast.com/news/archive)"},{"type":"footer","note":"SlickFast News #11 · keep a Page · disk vs URL · add .json for the twin","link":"https://slickfast.com/news/archive"}]},"specHash":"sha256:0ae87a23cff1200a692f26a25aac368fa6b1b8d0b2621a698c4e4763f49f4d18","frozen":true,"expiresAt":null}