jQuery was released in January 2006. As of 2025, it runs on roughly 77.8% of the top ten million websites. Nobody is choosing it for new projects. The sites that adopted it fifteen or nineteen years ago are still running, and replacing a JavaScript library woven through a production codebase is expensive enough that most organizations simply don't.
In the late 1990s, servers generated HTML and sent it to browsers. By the late 2000s, JavaScript frameworks moved rendering into the browser itself. Now, with server components and islands architecture, rendering is migrating back. The pendulum swings. Each arc implies it replaces the last. In practice, each swing deposits a layer of frameworks, build tools, and mental models that never fully clears away.
The build tools alone tell the story.
| Year | Tools introduced |
|---|---|
| 2012 | Grunt, Bower |
| 2013 | Gulp |
| 2014 | Babel, Webpack |
| 2015 | Rollup |
| 2017 | Parcel |
| 2019 | SWC |
| 2020 | Vite, esbuild |
| 2022 | Turbopack |
Each solved a real problem with the previous one. None fully replaced what came before. Webpack still holds a significant base in enterprise projects. Grunt and Gulp still run in long-lived codebases. Eleven build tools in ten years, most of them running somewhere right now.
So much for tooling. The frameworks are more visible.
AngularJS was deprecated on December 31, 2021. It still powers over 1.2 million live websites. Its npm downloads dropped only 33% in the three years after end-of-life. Multiple disclosed vulnerabilities since EOL receive no patches. Backbone.js, which peaked around 2013, still runs on over 100,000 domains at companies like Siemens, Samsung, and Adobe. The Stack Overflow blog documented the lifecycle back in 2018: quick ascent, steady decline. "Decline" means new adoption stops. Existing installations persist indefinitely. The npm registry makes the accumulation countable: one million packages by June 2019, nine years after npm's creation. 2.1 million by late 2024, just five years later.
jQuery tamed browser inconsistencies. Backbone brought structure. Webpack solved the module problem. The layers are the geological record of good decisions, compressed and compacted, woven into production in ways that make removal riskier than maintenance.
The pendulum will swing again. New frameworks will arrive with new abstractions. And when they do, the current layer will settle into the stratum beneath, still running, still maintained by someone. The weight only accumulates. That's what makes it a ratchet.

