If you publish it, make it readable by AI
We put our work online to be found. The audience now includes LLMs and agents — so making your content machine-readable is just the modern version of being accessible.
Why do we put anything online at all? To be found. A portfolio, a blog post, a project write-up — we publish it so that someone, somewhere, looking for exactly this, can actually reach it. Accessibility has always been the whole point.
For most of the web's life, the someone doing the looking was a person with a search bar. So we learned to be legible to search engines — titles, meta tags, sitemaps, the whole ritual of SEO. Not because we loved Google, but because that is where the audience was.
The audience changed
The audience is shifting again. More and more, the thing reading your work is an LLM, or an agent acting on someone's behalf — answering a question, comparing options, deciding whether you are the person or the project worth surfacing. If your content is not readable to them, you are quietly invisible to a growing slice of the people you were trying to reach.
We are moving into an era where being accessible means being readable by machines, not just people.
Describe yourself, or be guessed at
Here is the part I care about most: if you do not describe your own work for machines, they will describe it for you. They will scrape the HTML, strip the navigation, drop the nuance, ignore the images, and reconstruct a version of you from whatever survives. That version is out of your hands.
Making your content AI-readable is not giving it away. It is the opposite. It means you get to decide what the machine sees, how your work is summarized, which points matter, what every image actually shows. You are taking back the data layer of your own presence online.
So this blog does it on purpose
That is why this blog publishes its own machine-readable layer at /blog/llms.txt — a clean, self-authored description of every post, written in my words, with a text description of each image. Any model or agent can read it and understand what I meant, instead of what a parser could salvage. Same source of truth as the page you are reading; I just made sure the machines get an honest copy too.
The plumbing that makes it work
None of this is magic — it is a handful of small, boring files that have quietly become the interface between your site and the machines reading it. Four worth knowing:
- robots.txt
- who may crawl, and where the sitemap lives
- sitemap.xml
- every page worth indexing, as one machine-readable list
- JSON-LD
- structured facts (who you are, when a post was published) as Schema.org data
- llms.txt
- a self-authored, plain-text summary written for LLMs
The first three are SEO-era plumbing, repurposed. robots.txt and sitemap.xml have guided crawlers for twenty years. JSON-LD (Schema.org) is how a machine reads 'this is a Person, this is their job, these are their links' without parsing your markup at all. llms.txt is the new one — a convention for handing a model a clean summary instead of making it reverse-engineer your HTML.
This site ships all four. robots.txt points to the sitemap, the sitemap lists every page and post, each page carries JSON-LD, and there is an llms.txt at the root plus a detailed one for the blog. Put together, an agent can land here and get an honest, structured answer to 'who is this and what have they built' — no scraping, no guessing.