Build your own docs site with Claude Code? Here's what it leaves out, DeveloperHub
Build vs buy, 2026

Claude can build your docs site in 13 minutes. Here's what it leaves out.

We gave a fresh Claude Code session one paragraph and no help. In 13 minutes it built a fast, good-looking docs site. Then we counted everything else a docs site does.

Run 2 November 2026111 things checked79 left out
01 · The experiment

One paragraph in. A real docs site out.

A fresh Claude Code session: no memory, no instructions file, no plugins, no help. This is the whole prompt.

acme-docs · claude
>
Fetching the Swagger Petstore spec
✓ Set up Astro Starlight
✓ Wrote 13 guide pages
✓ Generated 19 API endpoint pages
✓ Search: Pagefind, built in
✓ vercel.json with security headers
✓ Link checker, spec validator, CI workflow
✓ Build passed: 38 pages
Done in 13 min · 128 turns
Building
acme-docs/
The home page of the docs site Claude Code built: Build with Acme, with Quickstart and API Reference buttons and guide cards
acme-docs/api/operations/addpet
An API reference page Claude Code generated: Add a new pet to the store, with a curl sample and the request body schema
13
minutes
128
turns
1,549
lines it wrote

Honestly, it's good. Static, fast, and easy for crawlers to read. Its search even forgives typos. If this is all your docs will ever need, use it.

Run on 2 November 2026 with Opus 5.5 in a sandbox, using the Swagger Petstore spec as a stand-in for a real API.

02 · The score
32of 111

things a docs site does. Claude built 32 of them, and built them well.

We listed everything readers and writers take for granted on a docs site and checked each one. 15 were partly there: they work, but only through Git, a script or a config file. 64 weren't there at all. Nobody asked for them. Nobody ever does.

32 built 15 partly built 64 not built

Hover a square to see what it is. Every one is listed further down.

03 · A true story

A brand-new docs site, built with AI. It loads like it's 1999.

Week 1
0.0s
Week 2
0.0s
Week 3
0.0s
Week 4
0.0s
Today
0.0s

How long a page takes to load when nobody has opened it recently, week by week since launch.

This autumn, a software company with thousands of pages of docs launched a new docs site, made with Claude Code. Building it and moving their docs across took at least six months. The site builds each page the moment someone opens it, and keeps recently opened pages ready.

Popular pages load quickly. But most of their thousands of pages aren't opened often enough to stay ready. Six months of work, and most readers wait four seconds for a page. More than a month after launch, nothing has changed.

Case fileAutumn 2026
The docs
Thousands of pages
Made with
Claude Code
Time to build and move
At least six months
How it works
Each page is built when someone opens it. Recently opened pages are kept ready.
What people see
Popular pages load fast. Everything else takes about four seconds.
What AI agents see
Four seconds, on almost every page
A month later
Still four seconds
Now ask an AI

For AI agents, it's worse.

An AI agent answering one question can read ten pages, and it reads the deep ones that nobody has opened today. Those are exactly the pages that take four seconds.

How do I rotate my API key?
Reading the docs
0.0s
1
2
3
4
5
6
7
8
9
10
40 seconds laterHere's how to rotate your API key…

The person who asked has stopped waiting. A docs site that's slow for AI doesn't work in 2026, however new it is.

2 in 5

docs readers are now AI agents and assistants. Every one of them waits the four seconds.

AI Docs Report, October 2026
From the list: speed
What it really is
The trap is that a docs site is a second product wearing the costume of a chore.
A reply on r/SideProject, October 2026

Here's the second product: 79 things nobody asked for, and everybody needs eventually.

04 · Writers

Your support lead shouldn't need Git to fix a typo.

Claude built a site for developers, edited by developers. The day someone else writes, you need an editor, drafts, reviews, roles and history, and all of it has to stay in sync with Git.

“dont make them learn branches, rebases, and PR etiquette unless they actually want to.”

r/technicalwriting, 2026
12 not built6 only through Git
Fixing a typo the Git way
$ git pull
$ git checkout -b fix-typo
$ code guides/orders.mdx
$ npm install
$ npm run dev
$ git commit -am "Fix typo"
$ git push -u origin fix-typo
Open a pull request
Wait for a review
Process ordersPublishPublished ✓
Order webhooks
You'll recievereceive an event for every order, in the order it happened.
SLSupport lead, editing
Nine steps and a terminalOne click
05 · Customer-only docs

A static site can't keep a secret.

Your first enterprise customer wants their docs behind their own login. That takes a server, a login, audiences, and every copy of a private page kept out of public view. One team on r/Docusaurus spent days on it. Asked if they solved it: “Unfortunately not.”

“They are stateless, which means there's no way they can handle SSO.”

r/technicalwriting, June 2026
7 not built0 built
A private page must never appear in
Search resultsThe sitemapllms.txtMarkdown for agentsThe CDN cacheLink previewsAI assistant answersPDF exportsOther readers' translations
06 · AI agents

Two in five docs readers are now AI. They read differently.

Crawlers read Claude's static pages fine. Agents want something else: Markdown at the page URL, an llms.txt, an MCP server, and private pages kept out of all of it. The list of agents changes every week.

“After Bun reported a 10x token reduction by serving markdown docs to Claude Code, I implemented the same approach for our docs site.”

Hacker News, September 2025
5 not built3 built
Asking Claude's site the way agents do
curl -sI acme-docs/llms.txt
HTTP/1.1 404 Not Found
curl -sI acme-docs/getting-started/quickstart.md
HTTP/1.1 404 Not Found
curl -s -H "Accept: text/markdown" acme-docs/getting-started/quickstart/
200 · text/html · 73 KB of HTML, not Markdown

We ran these against the site Claude built. An agent that asks for Markdown gets the full web page, scripts and all.

07 · API reference

Rendering an API reference is solved. Everything around it isn't.

Claude's reference looks right: a page per endpoint, schemas, samples in four languages. Then a reader clicks Try it, support pastes a link to one field, a spec update renames an endpoint, and a writer wants to fix a description without touching YAML.

12 not built3 partly8 built
Console · Add a new pet to the store
Try it: POST https://petstore3.swagger.io/api/v3/pet
Refused to connect to 'https://petstore3.swagger.io/api/v3/pet' because it violates the following Content Security Policy directive: "connect-src 'self'".
Its own security headers block a Try it button, if you add one.
~34,000
lines of code behind DeveloperHub's API reference
~690
commits to get it there
09 · Translations

Your second language doubles everything.

Every page, the sidebar, search, the landing page and the API descriptions, retranslated whenever the English changes, and only the sentences that changed. Code and schema keys stay as they are.

“the build for Docusaurus gets slow once you add a second language. Our build takes about 25 mins.”

r/technicalwriting, January 2025
4 not built0 built
ENESDEJA
Getting startedPrimeros pasosErste Schritteはじめに
AuthenticationAutenticaciónAuthentifizierung認証
Rate limitsLímites de usoRatenbegrenzungレート制限
AuthenticationAutenticaciónAuthentifizierung認証
Send your API key in the header of every request.Envía tu clave de API en la cabecera de cada solicitud.Senden Sie Ihren API-Schlüssel im Header jeder Anfrage.すべてのリクエストのヘッダーで API キーを送信します。
Authorization: Bearer <api_key>

The sidebar, the page and the search all switch together. The code never does.

10 · Versions and structure

v2 ships. v1 customers still need their docs.

Versions mean two copies of everything, search that knows which one you're reading, and a redirect for every page that ever moved, in every version.

“Versioned docs = major maintenance headache.”

Hacker News, May 2025
4 not built1 partly4 built
v2 ▾
v2 latest
v1 until 2027

Each version gets its own pages, its own search index and its own API reference, and the canonical link points search engines at the latest.

After renaming “Orders” to “Managing orders”
curl -sI acme-docs/guides/orders/
HTTP/1.1 404 Not Found
What it should say:
HTTP/1.1 301 Moved Permanently · Location: /guides/managing-orders/
11 · The small stuff

Nobody notices these until they're gone.

Each one is small. Together they're the difference between a docs site and a folder of pages.

“every small change is turning into fixing navigation, search, styling or something else that has nothing to do with the actual project.”

r/SideProject, October 2026
8 not built1 partly
“Was this helpful?”Not built
Traffic analyticsNot built
Slack alerts for writersNot built
The support chat widgetNot built
Changelog feedOne page, no feed
A URL per release noteNot built
AI meta descriptionsNot built
IndexNow pingsNot built
PDF exportNot built
12 · Underneath

Everything Claude left out needs servers.

Claude's site is a folder of files on a fast network. That's why it's quick, and why it can't treat one reader differently from another. The first login, the first draft or the first private search needs servers. And servers need all of this.

What it takes to match DeveloperHub's hosted docs
2moving parts
Claude builtYou build and runWho uses it
Follow a journey

One way to build it, not a map of ours. Your choices will differ. The number of parts won't, by much.

Each part breaks in its own way.

Job queue

It backs up. A page you published an hour ago still isn't live, and search still shows the one you deleted.

Page cache

It's emptied by a release. Every reader waits for a cold render at the same moment.

Reader login

It goes down. Every customer with private docs is locked out, and support hears about it first.

Search cluster

It runs out of memory. Every search comes back with no results.

AI models

Your provider has an outage. The assistant goes quiet, unless you built a fallback.

Database

Its disk fills up. The editor stops saving, mid-sentence, for every writer at once.

Every one of the 49 has to be sized, secured, monitored, backed up, patched and paid for. The prompt at the end of this page has all of them.

13 · Security

Now it's worth breaking into.

A folder of public pages has little to steal. A server with customer logins, private docs, API keys typed into try-it and a pipeline that can publish has plenty. And the threats don't wait for your roadmap.

What a docs stack had to survive
Mar 2024xz UtilsSupply chainA backdoor slipped into a compression library through a maintainer takeover.
Jun 2024Polyfill.ioSupply chainA script sites had embedded for years changed hands and started serving malicious code.
Mar 2025Next.jsBypassOne request header let attackers skip middleware, login checks included.
Mar 2025tj-actionsSupply chainA GitHub Action printed CI secrets into build logs.
May 2025Ubuntu 20.04End of lifeStandard support ends. Servers still running it stop getting fixes.
Sep 2025Shai-HuludSupply chainA self-replicating worm steals npm tokens and publishes itself into more packages.
Dec 2025React2ShellCode executionRemote code execution in React Server Components, reaching Next.js apps.
Dec 2025PHP 8.1End of lifeSecurity support ends.
Mar 2026axiosSupply chainA hijacked maintainer account publishes malicious releases. One is tagged latest for about three hours.
Apr 2026Node.js 20End of lifeNo more security releases.
May 2026Mini Shai-HuludSupply chainHundreds of npm packages get malicious versions within minutes.
Oct 2026PHP2ShellCode executionTwo bugs in PHP itself let anyone run code on the server, no login needed.
Oct 2026HTTP2ShellCode executionA Brotli bug reaches Node.js, Python and anything that bundles its own copy. Exploited in the wild.
0hours

to patch a critical bug once it's being exploited. Saturdays included.

Patching means more than bumping a version. Every container image that bundles the library gets rebuilt, every process restarts, and someone checks that nothing else pulled in an old copy. Then the next advisory arrives.

And the bots

One AI crawler made about 70,000 requests in a couple of minutes and used up a nonprofit's whole free hosting tier.

r/vercel, December 2025

A site went from under 3 million requests a month to 40 million, all from one AI company's crawler.

r/nextjs, February 2025
Scrapers walking every page IDCredential stuffing on reader loginsFake sign-upsFeedback spamCache-busting query stringsDDoSPrompt injection through your own docsCustomers guessing other customers' URLs
14 · After launch, forever

Whatever you build today won't be good enough next month.

acme-docs/
The docs site Claude Code built
Built 2 Nov 2026Best beforeDecember 2026

The site Claude built is good for the web of November 2026. llms.txt was proposed in September 2024. MCP arrived that November. In our last report, Claude's share of AI assistant traffic to docs went from 7% to 38% in three months.

Whatever comes next, your docs will need it in weeks, not quarters. That's not a project you finish. It's a team you keep.

Sep 2024
llms.txt is proposed
Nov 2024
MCP connects AI tools to everything
2025
Coding agents read docs for developers
Oct 2026
Two in five docs readers are AI
Every week
We serve every page as Markdown to AI agents. The list of agents needs updating constantly.

New AI search engines, coding tools, assistants and research agents start reading docs all the time. Each one has to be recognised, or it gets a page built for a browser instead.

AI search enginesCoding agentsIDE assistantsChat assistantsVoice assistantsResearch agentsSupport botsBrowser agentsAgent frameworksNext week's
From the list: after launch
15 · What keeping up looks like

This year, we've shipped changes to DeveloperHub on most days.

We've been at it since 2018, and we've never shipped more than this year. AI made our team faster. The list grew faster.

Changes shipped to DeveloperHub, per year
Hiring, permanently
Docs platform engineer
To keep your docs site current, starting the day it launches.
AstroVercel cachingA search engineSAML and OIDCOpenAPI 3.1Translation pipelinesMCPAI crawlers and agentsAccessibilitySecurity patchesOn-callInfrastructure as codeIncident responseWhatever ships next month
Full time · ForeverThen a second one, for holidays

The API bill is the cheap part. The team is the expensive part.

Claude can write the code. Someone still has to own it: review it, deploy it, fix it on a Saturday, and rebuild it when the web changes. That's not a prompt. It's a salary.

To be fair

Sometimes you should build it yourself.

Build your own if all of these are true
✓Your docs are public
✓Developers write all of them
✓One language, one version
✓No login, no audiences
✓Nobody needs to know what readers searched for

Then Starlight or Fumadocs with Pagefind is excellent, and Claude will set it up in an afternoon.

“We just moved to it from Docusaurus and couldn't be happier.”

Hacker News, on Fumadocs, May 2025

The day you need one of the 79, you're maintaining a product.

Build it anyway

Here's the whole prompt.

All 111 rows on this page, every place one row touches another, the 49 moving parts underneath, the security policy and the runbook, written as a spec your agent can build from. 86,082 words. Feed it to Claude Code. Then keep it current, every week, forever.

111 requirements17 interaction rules31 infrastructure items34 security items28 launch tests9 runbook items
Download the promptMarkdown · 490 KB · 86,082 words

Or use DeveloperHub
for $99 a month.

The other 79 are built, and our team keeps them current every week, so yours doesn't have to. Fourteen days free, no card.