Built for agents
Palette is written for two readers: the people who design with it, and the AI agents that read the web for them. Every page works without scripts, every region declares its reach, and the whole language fits in one text file.
Real pages
Every page is prerendered as plain HTML with its title, description and structured data in place. Scripts add the live specimens and the app’s gestures; nothing is lost without them.
- One
h1per page, sections in order, and a table of contents. - Stable addresses: every section has an anchor, such as /laws/#reach.
- A sitemap lists every page.
llms.txt
/llms.txt indexes the whole language: the laws, every foundation, pattern and component, with a one-line summary each. /llms-full.txt holds the full text of every page in one file, ready to load into a model’s context.
Reach in the markup
Every region declares what the model may do there with a data-reach attribute. People see the same declarations with X-ray.
| Value | An agent may… |
|---|---|
read | Read it |
write | Write or rewrite it |
act | Press it |
prepare | Set it up for a person to confirm |
person | Nothing. Only a person may use it. |
The guide
Ask in the dock answers questions from these pages. It runs on your device: it ranks every passage on the site against your question, writes the answer in pigment, and pins each sentence to its source. No language model runs, and nothing you ask leaves your device.
Offline and installable
Palette installs to a phone’s home screen and works offline once visited. Pages, styles and specimens are cached on first load and refreshed in the background.