Back to issues

Periodical / Volume 02

The Modern Era

From React's arrival to the complexity backlash. View each spread as an open magazine.

Cover / 08 spreads

Periodical Volume II cover with baked masthead, The Modern Era title, issue date, and a dense flat-geometric component-web illustration
A library, not an MVC framework — opening page with a modular component tree, body copy, and React pull quote

A library, not an MVC framework

React enters a crowded field by declining to be a complete application architecture. Pete Hunt’s launch-era explanation frames it as a library for composable interfaces: reusable pieces that can present data as it changes.

React is a library for building composable user interfaces.
— Pete Hunt, June 5, 2013
Continuation page with a component tree and body copy

The important shift is not a new template syntax but a new unit of thought. The UI becomes a tree of components, rendered from state and reconciled when that state changes. A front-end library has begun to look like a language for describing the screen.

The page becomes an application — opening page with a continuous route loop, body copy, and Backbone pull quote

The page becomes an application

The single-page application turns the browser from a document viewer into a long-lived client. Backbone’s 1.0 description captures the emerging arrangement: models, collections, views, events, and a RESTful JSON interface held together in the browser.

Backbone supplies structure to JavaScript-heavy applications
— Jeremy Ashkenas and the Backbone project, March 20, 2013
Continuation page with a connected route and document system

React’s own 2013 post points to Instagram as a single-page app using React and Backbone.Router. Navigation, data fetching, and rendering start to feel like one continuous surface — powerful, responsive, and increasingly unlike the page that came before it.

The app becomes a bundle — opening page with a dependency graph, body copy, and webpack pull quote

The app becomes a bundle

Once an application is made from components and modules, the browser needs a new delivery model. webpack’s first stable release describes a bundler that resolves dependencies while compiling, splits code into on-demand chunks, and preprocesses more than JavaScript.

webpack is a bundler for modules.
— Tobias Koppers, February 19, 2014
Continuation page with dependency blocks resolving into bundle layers

The build is no longer a final compression step after development; it is the machine that assembles the application. A dependency graph, loaders, plugins, and code splitting become part of the product’s architecture — and part of every developer’s daily vocabulary.

Types at application scale — opening page with a typed module grid, body copy, and TypeScript pull quote

Types at application scale

TypeScript moves type checking from an academic promise into a team-sized JavaScript workflow. Microsoft’s 1.0 announcement looks back to the 0.8 release in October 2012, then points to a growing community, shared declaration files, and codebases already exceeding half a million lines.

TypeScript 1.0 is a language designed with large-scale JavaScript application development in mind.
— Jonathan Turner, April 2, 2014
Continuation page with a matching coordinate lattice

The pitch is deliberately practical: preserve JavaScript’s reach while giving large applications a language service, navigation, early errors, and a contract that can survive a growing team.

The browser gets a component API — opening page with reusable browser-native elements, body copy, and Custom Elements pull quote

The browser gets a component API

The component idea leaves the framework boundary. Chrome 54’s Custom Elements v1 announcement describes a browser-native way to define custom HTML tags and give them their own API and behavior.

The result, a browser-native way to build reusable, interoperable components.
— Pete LePage, October 18, 2016
Continuation page with matching browser-native component sockets

The promise is interoperability: a component can be authored as a reusable element that the platform understands, rather than as a convention owned by one JavaScript library. The component web now has two competing centres of gravity — framework trees and browser primitives — each claiming to make complexity portable.

Frameworks absorb the stack — opening page with a layered framework tower, body copy, and Next.js pull quote

Frameworks absorb the stack

The framework era begins when the toolchain stops looking like a kit of separate decisions. Next.js launches as a small layer over React, webpack, and Babel, then folds in filesystem routing, server rendering, code splitting, data fetching, and deployment conventions.

We're very proud to open-source Next.js, a small framework for server-rendered universal JavaScript webapps
— Naoyuki Kanezawa, Guillermo Rauch, and Tony Kovanen, October 25, 2016
Continuation page with a matching layered framework tower and routing path

The appeal is not simply more features. It is fewer decisions at the start of a project. A framework becomes the answer to the question that component libraries and bundlers left open: how should the whole application be assembled and shipped?

Less code becomes a design goal — opening page with a dense machine transforming into simpler shapes, body copy, and Svelte pull quote

Less code becomes a design goal

The backlash does not reject components; it questions the machinery required to make them reactive. Rich Harris argues that code volume is a neglected product metric and presents Svelte as a compiler-led alternative.

Reducing the amount of code you have to write is an explicit goal of Svelte.
— Rich Harris, April 20, 2019
Continuation page with a matching compiler transformation

The runtime gives way to generated JavaScript, while the authoring model tries to keep state, markup, and behavior close together. Svelte turns a quiet complaint — too much ceremony for too little interface — into a design principle: the best abstraction may be the one that disappears before the browser sees it.

The SPA meets its limit — opening page with application machinery resolving into a document, body copy, and htmx pull quote

The SPA meets its limit

By 2020, the single-page application is no longer a novelty; it is a default that has spread from major products to blogs and marketing sites. Carson Gross’s htmx essay names the counter-movement: keep HTML as the primary medium, add targeted interaction, and spend the complexity budget where the application is distinctive.

SPA frameworks tend to be complex, and you don’t get a lot of benefit for all that complexity in many cases.
— Carson Gross, October 29, 2020
Continuation page with a matching document and form composition

The argument is not that JavaScript disappears. It is that the web’s older strengths — documents, links, forms, and server responses — can become an alternative to making every page behave like a miniature operating system.

Use the controls, arrow keys, or outer page edges to turn one page at a time.