8 min· building· ai
Twenty websites
I thought I had built a site with twenty pages. I had built twenty separate websites and not noticed, because at the level I was working every single page was fine. What AI made cheap was producing things. What it did not make cheap was owning them.
The moment I understood what I had built, I was not building anything. I was trying to get the pages to show up in search results.
I had about twenty of them by then. Each one described a single thing the company could do for a customer — a way of screening the market, a way of reading a utility, a way of finding the right person to call. Almost all of them came out of a real conversation. Someone would ask on a call whether we could do a particular thing, and if the answer was yes, or was about to be yes, that became a page.
They were good pages. That is the part worth holding onto, because it is what made the problem invisible.
How I got there
The site started on Framer, which I found rigid enough that I stopped wanting to touch it. That matters more than it sounds. A tool you avoid opening is a tool that quietly sets your publishing rate to zero, and for a company whose entire pitch is that it can read a market faster than anyone else, having nothing to show was not a neutral state.
So I moved to Lovable and started describing pages instead of building them. It was extraordinary. I would explain what a use case was and get back something that looked considered — typography, structure, the lot. I have no website development experience. Two years ago the gap between what I could imagine and what I could put on the internet was most of a career. Now it was an afternoon.
So I made another. And another. Whenever a call surfaced a use case I had not described yet, I described it.
Each page was correct. Each page was, honestly, better than what I would have briefed an agency to make. Nothing failed. There was no error message, no broken build, no moment where the tool told me I was doing something unwise.
What I had actually done
On Lovable, each of those pages was its own project.
I knew that in the way you know something you have never had to think about. I was not building a site with twenty pages. I was building twenty sites with one page each, and the only thing connecting them was that I had made them all.
The bill for that arrives at exactly one moment: when you try to be found. A search engine does not rank pages, it ranks pages in the context of a site — what links to what, which page is the authority on a subject, how a visitor moves from one to the next. Twenty single-page sites have none of that. Twenty single-page sites are twenty strangers who happen to be dressed alike.
I spent a weekend consolidating them into one website. New structure, everything migrated across, Framer left behind. I did it with Claude, which is the only reason a person with no web development experience could do it at all, and I want to be careful not to make that sound smoother than it was. It was a weekend. It was the whole weekend.
The part I did not see coming
Consolidating them was not enough, and the reason is close to funny.
The pages rendered through JavaScript. A person visiting saw everything. A crawler — a search engine, or an AI system fetching the page to answer someone's question — got a shell with nothing in it. All that writing, describing in detail what this company does for whom, and the machines that decide whether anyone ever finds it were looking at an empty room.
I run a company whose product is reading the documents nobody reads. The core claim is that the information is already public, and the difficulty is purely that it is sitting in formats no machine will touch. I had spent months on that problem for water utilities and had shipped exactly that problem about myself.
The fix was prerendering — generating the finished HTML ahead of time so the content exists before any JavaScript runs. I used a tool called LovableHTML, which has since been renamed Encited. It serves finished HTML to search engines and Markdown to AI agents, and that distinction is one I would not have thought to draw. The two kinds of reader want the same content in different shapes, and neither of them wants the shape a browser wants.
It worked. I checked it again while writing this: fetch any page with JavaScript switched off entirely and the text is all there — six hundred to fifteen hundred words a page, headings, descriptions, the lot. That weekend did what it was supposed to do.
And then the part I really did not see coming
While checking, I read the site's robots.txt — the file that tells crawlers
what they may and may not fetch. I had never read it, because I had never
written it. It is generated.
It bars GPTBot, ClaudeBot, Google-Extended, CCBot and several others outright.
Ordinary search is unaffected; Googlebot is not on the list, and the file explicitly permits indexing. What it turns away are the AI systems. The exact readers whose blindness I had spent a weekend curing are now being handed a note at the door telling them not to come in.
I did not choose that. I inherited it from a sensible default written by people protecting site owners from having their work used for model training, which is a real concern and one I have some sympathy for. But nobody asked me, and I never looked, and so a position I have never actually held has been my company's public policy for months.
Here is why that particular default is expensive for me specifically. The second of the two conversations that restarted this company, in December, came from a man who had written up an idea of his own and asked an AI whether anyone was already building it. It pointed him at me. He booked a call to tell me I had built the thing he had been sketching.
That is not a hypothetical acquisition channel. It is the channel that produced a customer before I had a product. And for some months now the file I never wrote has been closing it.
I have not changed it, and I want to be straight about why, because "I am thinking about it" is what people say when they have stopped thinking about it.
The objection the default protects against is one I actually hold. I would rather what I write not be swallowed as training data, and the file says so — it carries a signal declaring search allowed, training refused, use by reference only. That is close to exactly my position.
Then, a few lines further down, it names the individual crawlers and refuses them outright. Which is the instruction they actually follow. The file states the distinction I care about and then, for the systems where it would matter, throws the distinction away.
So the position I want — be readable, be citable, do not be absorbed — is one the file is capable of expressing and does not, and I do not yet know whether that gap is something I can close in practice or only argue about in principle. Until I know, it stands as I found it.
I am aware that every week I spend deciding is a week the door stays shut, and that I am describing an unresolved thing rather than a lesson. I would rather publish it in that state than wait for the version with a tidy ending, which in my experience arrives about a month after anyone needed it.
What this was actually about
It is tempting to file all of this under inexperience, and some of it is. A person who had built websites before would have noticed on day two.
But I do not think that is the useful reading, because the failure was not in any of the work. Every page was good. The migration was competent. The prerendering fix was correct. At no point did I do a bad job of the thing I was doing.
What happened is that the cost of producing something collapsed, and the cost of owning it did not move at all.
Making a page went from a week and an agency to an afternoon and a description. But a page still has to sit inside a structure. It still has to be found. It still has to be inventoried, so that somebody knows there are twenty of them and that six months from now one will contradict another. It still arrives with defaults attached that somebody has to read.
None of that got cheaper. And because the making got so much cheaper, the proportion of the total work that is structure, inventory and defaults went up, not down. I was producing at a rate my ability to keep track had not earned.
That is a general problem and I do not think I am unusual in having it. The striking thing about the last two years is how many people can now produce things they could not previously produce. The quiet part is that producing was never the whole job, and the rest of the job did not get automated alongside it.
The site is in decent shape now. We change it in pieces rather than rebuilding sections wholesale, which is what having a structure buys you. But I would not describe the weekend as a detour from the real work. It was a compressed lesson in the thing I am selling: that the difficulty is rarely in producing the material, and almost always in whether anyone can read what you produced.