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.
Problemfat chat
Fixsmall twin
Human getsthe Page
Agent gets.json
First: what this is about
When 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.
Paste 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.
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.
The picture that sticks
Left side = the expensive habit (dump fat stuff into the agent). Right side = the cheap habit (give it a tiny recipe it can re-draw).
Dump means: paste PNG bytes, paste Page HTML, or re-paste images every turn.
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.
How big is “huge,” roughly?
This is feel from real sessions, not a lab meter — so you know the scale:
Whole Page HTML pasted into chat — often tens of thousands of tokens. The agent does not “see” your layout; it chews markup.
A PNG sitting in the thread — large and opaque. Fine once for a human glance. Bad as the thing you keep feeding the model.
One chart’s JSON — usually hundreds of tokens, and you can edit it.
A dense dashboard JSON — sometimes low thousands — still far smaller than HTML, and still one editable recipe.
A short summary + the Page URL — tiny. The agent fetches the twin only when it needs fields.
That last pattern is already how our `news` and `get_started` tools talk: facts + URL, not a dump of the Page.
Takeaways (humans)
1. Don’t paste SlickFast Pages into chat as HTML. Open the link. Send the link.
2. If an agent needs the recipe, give it the twin: same URL with `.json` on the end.
3. Draw the picture when someone needs to look — then keep working from the JSON, not from re-pasting images.
4. One dashboard = one picture. Seven charts on one board should be one render, not seven image dumps (News #5 — Tiling).
5. 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.
Takeaways (agents)
1. Never dump Page HTML into the thread. Summarize. Show the URL.
2. Fetch the twin (`…json`) when you need numbers, layout, or to re-render.
3. Prefer SVG when the client shows chart artifacts well; still don’t treat pixels as the source of truth.
4. Dense boards on local MCP: put the JSON in a file and call with `specPath` / `pagespecPath` so tool arguments stay thin.
5. 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.
One sentence to steal
Speak the facts, show the URL, keep the twin — do not dump the HTML.