
Your site already speaks agent
Ivan Roslov2 min readEvery 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.

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.


