Most websites are a set of pages in the order someone chose, and you arrive with a question and go looking for the page that answers it. I spent a long time in ecommerce, at Cotswold Outdoor and since, thinking about how a shop might meet each customer where they are, rather than where the navigation happens to put them. I never quite got to build that version of a website. Cairn is my attempt at it, on my own site first, where the only person it can embarrass is me.
If you go to hyde-media.co.uk you will find a box under the headline, and again on the AI page and on its own page at /ask. You type a sentence about what you came for, something like “I want a website I can update myself” or “How much does a website cost?”. The site looks through its own pages for the parts that match, and Claude, Anthropic’s model, writes you a short page from those parts and nothing else. Beside the page sit what I call the stones: the pages it drew on, each one a link, so you can check any line against where it came from. Nothing about you is kept.
The name comes from the little piles of stones walkers leave to mark a path. Each stone here is a real page of the site, and the path is the one you asked for.
How I built it
I gave myself three rules before I wrote any code, and they held all the way through: the visitor comes first, the page is made only from the site, and nothing is remembered.
The first part is making the site readable to itself. Every time the site is built, a small script reads the finished pages and cuts them into pieces, one for each section, around ninety of them at the moment. That collection is the whole of what Cairn knows. I have liked this more the longer I have lived with it: if I change a page, Cairn changes with it, because there is no second copy for me to forget about.
The choosing happens without a model at all. It is plain matching: which pieces share the words in your sentence, weighted by where those words appear, so a heading counts for more than a passing mention. I put a floor under it. If nothing clears the floor, the site says it has not written about that and offers you a few places to start, rather than padding out a page with something nearby. Ask it for a joke about marine insurance and the request never reaches the model.
Only when there is something real to say does Claude write the page, and it does so under fairly strict instructions. Every fact, name and number has to come from the pieces it was handed, and if part of your question is not covered, it says “this site does not say” rather than filling the gap. Each page is a small request: your sentence and a few pieces of the site go in, a few hundred words come out. I put a ceiling of a hundred written pages a day on it, and limits per minute, so that a bad day cannot run up a bill. Past any of those limits you still get the matching pieces, in the site’s own words.
The ordinary pages are all still there underneath, and they are what Google sees. Cairn is another way in, not a replacement for the site.
What it got wrong
Quite a lot, as it turned out, and the mistakes taught me more than the parts that worked.
The first prototype, back in September, wrote that I run the e-bike shop I work with. I do not; I work with them part of the week. Every word of that sentence was on the site, and the relationship between the words was not. I added a rule to the instructions, never infer who owns or employs whom, and, more usefully, I made the collection rebuild from the live site every time, so what Cairn reads is always what the site says today.
Then I asked it twenty real questions and scored every answer twice. Three of the pages said things like “we have not built anything for builders”, which was true of the handful of pieces it had been given and not something it could know about the business. One sentence was simply wrong. Those became the “this site does not say” rule, and on the second pass the count went from three pages to none.
A week later I typed “I need some SEO” and got nothing back at all. I have done search engine optimisation for ten years, but the site said “search” everywhere and never “SEO”, and a short question boils down to one word. So Cairn now knows that SEO, AEO and GEO all mean search work, and the site says so in its own words too.
The biggest lesson was not in the code. When I asked “Who have you worked for?”, the answer led with the most recent thing I had built, because the site described the last four months of my work far better than the years before them. So Helen and I sat down and wrote up Hyde Media’s history: the clients since 2018, from housing software to wildlife products to charities, and what we did for each of them. That went onto the site, and the same question now leads with the clients and what they have said about us.
A tool that answers only from your own words turns out to be a very quick way to find out what your words leave out.
What is next
Two things. The first is measuring. In October I took a before-picture of how the AI assistants describe Hyde Media, and in November I will take the same reading again, so that I know whether any of this changes what they say rather than assuming it does. I will write that up whichever way it goes.
The second is retail, which is where the idea started. I built Cairn so that the collection it reads can be swapped out, and the place I can most clearly see it working is a specialist shop with a lot of product knowledge and customers who arrive with very different questions. That is the next experiment.
You can try it now at hyde-media.co.uk. Ask it something I have not thought of.
Built with the agent studio I run Hyde Media’s work through, whose shape owes a great deal to Nate B Jones’s writing on working with AI agents.