{"page":{"title":"SlickFast News — Token cost","description":"Chat context costs money. Dumping pictures and HTML into an agent is expensive. A small JSON twin is cheap — and it is the same picture.","theme":"teal-dark","sections":[{"type":"hero","badge":"news · #6","heading":"Token cost","sub":"Every word, image, and blob you put in chat costs tokens. SlickFast is built so you can keep the recipe small and only draw the picture when a human needs it."},{"type":"stats","items":[{"label":"Problem","value":"fat chat"},{"label":"Fix","value":"small twin"},{"label":"Human gets","value":"the Page"},{"label":"Agent gets","value":".json"}]},{"type":"text","body":"## First: what this is about\nWhen you use Claude, Cursor, or any agent, the **conversation is the bill**. Models charge (or burn your plan) by **tokens** — pieces of text and data sitting in that chat.\nPaste a big PNG. Paste a whole web page of HTML. Paste the same dashboard seven times as seven images. The agent’s “memory” for this turn gets huge. You pay for that weight even when the agent barely uses it.\n**SlickFast’s bet:** the chart **is** the data. A short JSON **recipe** can recreate the exact picture anytime. People open a normal URL. Agents add **`.json`** to that URL and get the recipe — we call that the **twin**. Same fingerprint (`sha256`) on both. No need to shove the picture or the HTML into the chat to “remember” it."},{"type":"text","body":"## The picture that sticks\nLeft side = the expensive habit (dump fat stuff into the agent). Right side = the cheap habit (give it a tiny recipe it can re-draw).\n**Dump** means: paste PNG bytes, paste Page HTML, or re-paste images every turn.\n**Twin** means: keep `https://…/s/….json` (or a local pagespec file) — a few hundred tokens of structured JSON the agent already knows how to read."},{"type":"chart","spec":{"type":"versus","title":"What you put in the agent’s mouth","background":"#0a0f14","sides":[{"title":"Dump","items":[{"label":"Input","value":"PNG / HTML"},{"label":"Size","value":"huge"},{"label":"Reuse","value":"hard"},{"label":"Proof","value":"none"}]},{"title":"Twin","items":[{"label":"Input","value":"JSON recipe"},{"label":"Size","value":"tiny"},{"label":"Reuse","value":"call render"},{"label":"Proof","value":"sha256"}]}]}},{"type":"text","body":"## How big is “huge,” roughly?\nThis is **feel from real sessions**, not a lab meter — so you know the scale:\n- **Whole Page HTML pasted into chat** — often *tens of thousands* of tokens. The agent does not “see” your layout; it chews markup.\n- **A PNG sitting in the thread** — large and opaque. Fine once for a human glance. Bad as the thing you keep feeding the model.\n- **One chart’s JSON** — usually *hundreds* of tokens, and you can edit it.\n- **A dense dashboard JSON** — sometimes *low thousands* — still far smaller than HTML, and still one editable recipe.\n- **A short summary + the Page URL** — tiny. The agent fetches the twin only when it needs fields.\n\nThat last pattern is already how our `news` and `get_started` tools talk: **facts + URL, not a dump of the Page.**"},{"type":"chart","spec":{"type":"horizontal","title":"Relative weight in chat (illustrative)","background":"#0a0f14","data":{"labels":["Paste whole Page HTML","Leave a PNG in the thread","Dense dashboard JSON","One chart JSON","Summary + URL (+ twin if needed)"],"series":[{"values":[100,70,12,4,2]}]}}},{"type":"text","body":"## Takeaways (humans)\n1. **Don’t paste SlickFast Pages into chat as HTML.** Open the link. Send the link.\n2. **If an agent needs the recipe, give it the twin:** same URL with **`.json`** on the end.\n3. **Draw the picture when someone needs to look** — then keep working from the JSON, not from re-pasting images.\n4. **One dashboard = one picture.** Seven charts on one board should be **one** render, not seven image dumps ([News #5 — Tiling](https://api.slickfast.com/s/2354dc7a803b133e9dbf64b850ab6c24)).\n5. **Publish when the work should leave the scroll** — a Page is shareable memory. Next person (or next agent) opens URL / twin instead of hunting the old chat."},{"type":"text","body":"## Takeaways (agents)\n1. **Never dump Page HTML into the thread.** Summarize. Show the URL.\n2. **Fetch the twin** (`…json`) when you need numbers, layout, or to re-render.\n3. **Prefer SVG** when the client shows chart artifacts well; still don’t treat pixels as the source of truth.\n4. **Dense boards on local MCP:** put the JSON in a file and call with **`specPath` / `pagespecPath`** so tool arguments stay thin.\n5. **Teaching without bloat:** `get_started` → `news` (current drop) → open **one** twin. Archive (`news` with `archive: true`) is a catalog — not a dump of every Page into chat."},{"type":"chart","spec":{"type":"steps","title":"The cheap loop","background":"#0a0f14","steps":[{"label":"Write","description":"small JSON"},{"label":"Publish","description":"Page + twin"},{"label":"Share","description":"the URL"},{"label":"Re-draw","description":"only if needed"}]}},{"type":"text","body":"## One sentence to steal\n**Speak the facts, show the URL, keep the twin — do not dump the HTML.**\n\nDoors: [News](https://slickfast.com/news) · [Archive](https://slickfast.com/news/archive) · [Get started](https://slickfast.com/start)"},{"type":"footer","note":"SlickFast News #6 · token cost · twin cheap · dump expensive · add .json for the recipe","link":"https://slickfast.com/news/archive"}]},"specHash":"sha256:09ab06dc96ae2f8036b55cb38c3bbb4e2ef6f8bffbb38f3bb81885b19ddcc86c","frozen":true,"expiresAt":null}