Chapter 14. The Convergence
The evidence chapter. The JavaScript ecosystem had no exposure to any derivation, and it was moved by nothing but its own costs. It has spent a decade converging back toward the proper factorization, one rediscovery at a time:
- SSR — server-side rendering. Documents should arrive as documents. The S4 tax landed as Chapter 11 billed it: a private API reverse-engineered per integrator, with crawler blindness as its consequence. The industry moved for its own reasons (SEO and first paint) and the fix is
present ∘ arrange ∘ selectrunning on a server, where it had been running since 1993. - Hydration. Chapter 11’s S1 tax, given its industry name. An industry term for a category error.
- Islands. The principle of least power, rederived from the costs: most of the page needs no program, so most of the page stops being one.
- React Server Components. RSC pulls
selectback out of the fused term, ten years after fusion. But its wire format is a bespoke, non-addressable serialization of exactly the intermediate value S4 says should have a URI. The factor returned; its resource did not. - GraphQL. Declarative queries over a graph model, returning projections,
selectand R1, rebuilt without global identifiers. So it stops at the silo wall, exactly where the missing R3 predicts: federation works within one organization and no further. Its column is below. - HTMX and the hypermedia revival. The same convergence arriving from the opposite shore: documents, links, and forms argued back into fashion on their original merits. Forms are Chapter 7’s instrument.
The framing is convergent evolution: independent lineages, under the same pressure, arrive at the same design, and the match is explained by the pressure, not by chance. The lineages had contact with nothing but the costs, and the costs are the derivation’s predictions.
%%{init: {'theme':'base','themeVariables':{'fontFamily':'-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif','textColor':'#1b1e22','lineColor':'#5a6270','cScale0':'#e3eef7','cScale1':'#f4f1e9','cScale2':'#e3eef7','cScale3':'#f4f1e9','cScale4':'#e3eef7','cScale5':'#f4f1e9','cScaleLabel0':'#1b1e22','cScaleLabel1':'#1b1e22','cScaleLabel2':'#1b1e22','cScaleLabel3':'#1b1e22','cScaleLabel4':'#1b1e22','cScaleLabel5':'#1b1e22','cScaleInv0':'#b9cfe4','cScaleInv1':'#d9d3c5','cScaleInv2':'#b9cfe4','cScaleInv3':'#d9d3c5','cScaleInv4':'#b9cfe4','cScaleInv5':'#d9d3c5'}}}%%
timeline
title The convergence, 2013–2026
2013 : the fused term consolidates — client-side read becomes the default
2016 : SSR returns — the pipeline re-runs on servers
2019 : hydration is named — the S1 tax gets its industry name
2021 : islands — least power, rediscovered per component
2023 : React Server Components — select extracted from the fused term
2024 : the hypermedia revival peaks — documents argued from the opposite shore
Years mark mainstream arrival, not invention. The axis the figure cannot draw is the one the chapter measures: S1 and S2 recovered to tildes; R3 and S4 still ahead.
Column: GraphQL.
| GraphQL | |
|---|---|
| R1 | ✓ — a graph model; encodes any domain |
| R2 | ✗ — schemas compose only by coordination |
| R3 | ✗ — no global identifiers; names stop at the schema boundary |
| S1 | ~ — select genuinely separated, but behind one endpoint |
| S2 | ~ — a specified but prose-defined semantics |
| S3 | ~ — substitution within one schema’s contract |
| S4 | ✗ — one endpoint; results are not addressable |
Column: SPA/JS, revised.
| SPA/JS (Ch 11) | SPA/JS (2026) | |
|---|---|---|
| S1 | ✗ | ~ — select re-extracted |
| S2 | ✗ | ~ — declarative islands in an imperative shell |
| R3 | ✗ | ✗ |
| S4 | ✗ | ✗ — the wire format has no URI |
R1, R2, S3: unchanged from Chapter 11’s column.
One closing observation: the convergence recovers S1 and S2, to a tilde, not a check. But it stalls before R3 and S4, the two properties that make it the web rather than an app platform that happens to use browsers. The stall has a reason: the last stretch helps everyone except the vendor walking it. The properties that privately reward the vendor return first; the properties that reward the public wait. Asymptotic, incomplete, and in the predicted order.