The Death of jQuery: How We Survived the Vanilla JS Revolution
jQuery is dead, long live JavaScript. A survival story from the trenches of legacy code migration.
I Came to JavaScript Through the Back Door
I need to be upfront about something: JavaScript was the last language I learned. Not the first. Not the one I cut my teeth on. The last one. The whole thing started with an HTML 4 for Dummies book - but not the way you’d think. It was one line: wrap “hello world” in an <h1> tag, open it in a browser. That was the spark. I felt something that was literally like a hit of drugs, and I never reopened the book. I went straight to Google and taught myself from there. That led to CSS. That led to PHP. That led to WordPress. And WordPress led me, kicking and somewhat confused, to JavaScript.
So when people talk about the “death of jQuery” like it was some industry-wide reckoning they watched unfold in real time, I need them to understand: I did not come in through the front door of JavaScript. I came in the back door, up the building, across the street, and dug a tunnel. jQuery was already sitting there when I arrived, bundled into WordPress core, running half the admin interface, and I just accepted it like furniture that came with the apartment.
jQuery Was Just Part of WordPress
For a lot of WordPress developers, jQuery was not a conscious technology choice. It was just there. WordPress shipped it. Themes expected it. Every plugin on the repository assumed jQuery was a global. If you were building WordPress sites in the early 2010s, you used jQuery the same way you used wp_enqueue_script - not because you evaluated the alternatives, but because that was how things worked.
I was reverse-engineering WordPress code line by line back then. Reading core files like novels, figuring out how hooks fired, how the loop worked, how template hierarchy made decisions. And in that process, I absorbed jQuery by osmosis. I never sat down and learned it from a tutorial. I just saw $(document).ready() in enough theme files that I started writing it myself.
Was it elegant? Sure. $('.thing').fadeIn() was nice. But I did not have the JavaScript foundation to appreciate what jQuery was abstracting away. I did not know what cross-browser DOM manipulation looked like without it, because I had never tried. jQuery was not my library of choice. It was my only library.
The Moment JavaScript Got Bigger
The first crack in my jQuery-only worldview came with a WordPress project called Glaze. The details are not important, but the technology was: it used Backbone.js. And Backbone was the first time I realized that JavaScript had an entire architectural philosophy that had nothing to do with fading things in and sliding things down.
Backbone had models. It had views. It had collections and routers. This was object-oriented programming in JavaScript, and as someone who had fallen in love with PHP’s OOP patterns through WordPress, it clicked immediately. Not because Backbone was easy - it was not - but because it mapped to concepts I already understood from a different language.
That was the real turning point. Not “jQuery is dying.” More like: “Oh. JavaScript is a real programming language with real architecture, and I have been using it like a garnish.”
WordCamp Changed Everything
There was a local meetup group in the Albany area called WP518, and they put together a grassroots, one-day WordCamp Saratoga. I volunteered at one of them. At that WordCamp, I met a French engineer from Automattic. Everyone called him Bo. Bo got up and talked about React.
Here is the thing that the original version of this story would probably get wrong: I was not skeptical. Not even a little. The second Bo started explaining component-based architecture and declarative rendering, I got it. Immediately. I am FOMO-driven to an almost clinical degree - if there is new technology, I need to touch it, and I need to touch it now. React was not a threat to my workflow. It was the next obsession.
I went home and started building things in React that night. Were they good? Absolutely not. But I was in it.
Where I Actually Went Deep
The thing is, having FOMO about a framework and actually getting deep with it are different experiences. I did not truly go deep on modern JavaScript frameworks until January 2022, when I started at StudioRx. That is an Omnicom agency, and they are a React house.
StudioRx is where I learned what production React actually looks like. Not tutorial React. Not side-project React. The kind where you have a design system, a component library, accessibility requirements, and other developers who will review your pull requests and tell you exactly what you did wrong. It was a different world from freelance WordPress development, and it made me significantly better.
For the record: I prefer Vue.js. Vue’s reactivity system makes more intuitive sense to me, and its single-file components feel cleaner. But I work in a React house, so I write React, and I write it well. Preferences and proficiency are not the same thing.
The jQuery Graveyard in WordPress
Meanwhile, back in WordPress land, jQuery’s decline was slow and then sudden. WordPress 5.5 stopped loading jQuery Migrate by default, and the breakage that followed told you everything you needed to know about how dependent the ecosystem was. Themes broke. Plugins broke. Admin customizations broke. The community collectively discovered how much invisible load-bearing work jQuery had been doing.
The migration was not the clean “just use querySelector” swap that the blog posts promised. It was messy. Plugin authors had to rewrite things. Theme developers had to test everything. And a lot of smaller WordPress sites just… kept using jQuery, because the cost of migrating outweighed the performance gains.
Where I Landed
Today, the 211j theme - the one running this site - is vanilla JavaScript. No jQuery. No framework. Just plain, modern JS handling the interactions, the dark mode toggle, the navigation. It is lean and it is fast and I wrote every line of it.
That feels like the right ending to this particular arc. I went from not knowing JavaScript existed, to absorbing jQuery through WordPress osmosis, to discovering Backbone, to hearing about React from a French engineer at a WordCamp, to writing production React at an agency, to coming back around to vanilla JS for my own work.
The jQuery era was not something I survived. It was something I passed through on my way to understanding what JavaScript actually is. And if I am being honest, I could not have gotten here any other way. The WordPress back door was the only door I had, and it led me to the same place everyone else ended up. Just took the scenic route.
I still think $('.thing').fadeIn() was poetry, though. That part was not wrong.