A small robot reading a single clean sheet of paper against a bright cumulus sky

Your site already speaks agent

2 min read

Every static site on Lessly now answers AI agents in clean Markdown, and the owner did nothing to switch it on. Until today an agent reading your site paid for your HTML: every wrapper div and inline style landed in its context window as tokens it burned before reaching the three sentences it came for. I spent a while assuming agents would just cope with our markup. They do cope. Expensively.

The mechanism is small. When a request carries Accept: text/markdown, the origin returns that same page as Markdown, Content-Type: text/markdown; charset=utf-8, scripts and styles stripped down to the content. A browser never sends that header (a wildcard like */* doesn't count), so ordinary visitors get the identical HTML, byte for byte, and notice nothing. Each page converts once, on first request, then caches for the life of the deploy. You ship your site the way you always have, and the Markdown version is generated for you. And if a conversion ever fails, the request falls back to plain HTML. The feature cannot break a site; the worst case is the site you already had.

You can check it in one line. Ask a Lessly-hosted site for each version and read the Content-Type back:

curl -H "Accept: text/markdown" https://lessly.com/   # → text/markdown; charset=utf-8
curl https://lessly.com/                              # → text/html

On lessly.com today the HTML home page is 13,323 tokens. The Markdown one is 1,240, about 10× fewer for the same words. It is the same page, not a summary written for machines: the same words and the same facts, without the chrome. Multiply the saving across every page an agent crawls and the markup was most of the bill.

Cloudflare shipped this same idea, which I read as proof the shape is right. Theirs is opt-in, on the Pro plan. Ours is on by default for every site, and it costs nothing, because agent-readiness is becoming what SEO used to be: the line between being read and being skipped. That isn't something anyone should buy an upgrade to get. Prefer to write the Markdown yourself? Drop an about/index.md beside about/index.html in your build and we serve that instead. It's one switch in the static service's settings, on out of the box.

The 'Markdown for agents' toggle in a Lessly static service's settings, switched on
The service setting — on out of the box. One switch turns it off if you would rather always serve the original HTML.

Your site already speaks agent. Send it the header and listen.

Related posts

Building Lessly in the open

Follow along, and get early access to the private beta.

Join the waitlist