Rethinking the Web as a machine-first space where Large Language Models are the primary users.
The classical Web was built for humans armed with browsers, keyboards, and mice. Every innovation since — dynamic DOMs, SPAs, PWAs — has preserved that assumption. But LLMs do not “see” a screen or click buttons. They need an Internet whose atoms are executable meaning, not nested <div>s.
The Model Context Protocol (MCP) is already a step in this direction: it lets an LLM ask for tools and receive structured JSON instead of HTML. Just as important for us, tools can be added and removed. Extending that idea across the entire Web gives us Web 2.1 — a hypertext that is literally hyper tools.
When an LLM “opens” a page in Web 2.1, it receives a JSON list of tools:
{"tools": [
{ "name": "search_users", "params": {/* … */} },
{ "name": "create_post", "params": {/* … */} },
{ "name": "back" }
]
}
There is no DOM, no CSS, no opaque markup — only callable functions plus a universal Back tool. The contract is simple:
- If the tool appears in the list, the model may call it.
- If it does not, calling it would be a hallucination — and the absence itself discourages the mistake.
Traditional navigation loads an HTML document; here, the LLM loads tools. Every time a tool is called, the server responds with a new tool array representing the destination “page.” Because pages are sets of functions, changing the page is just swapping the list. The Back tool restores the previous list, mirroring a browser’s history stack.
APIs that return data — get_weather, price_quote, generate_chart — behave exactly like any RPC: they stream JSON directly into the conversation. There is no secondary “rendering” step; the LLM interprets the data or hands it to a user-visible component. Because every contract is explicit JSON, compliance checking and policy enforcement become mechanical rather than heuristic.
Each navigation step shrinks the LLM’s action space. On the root page of an e-commerce site, maybe 12 tools are visible; inside the checkout flow, perhaps only 3. The model is never distracted by irrelevant endpoints, so the probability of picking the wrong one plummets — precisely the opposite of today’s sprawling, undocumented REST surface areas.
In Web 2.1:
- DOM state -> Tool list state
- Render HTML/CSS -> Provide JSON schemas
- User clicks/inputs -> LLM invokes tool call
Let’s make the Internet hypertext again — one tool array at a time.