I use arrow functions, async
/await
, classes, template literals, and many other modern JavaScript language features, but even with everything that’s improved over the years that can now be done with vanilla JavaScript, I still use jQuery heavily because I find its API much more pleasant to work with.
Even a quick scroll through You Might Not Need jQuery reveals a very mixed landscape where, for every succinct method or API, there’s a comically verbose and clunky collection of lines that are required to replicate a single, chainable method call in jQuery.
Browser compatibility
Browser compatibility is a non-issue in 2025 and hasn’t been an issue for a long time. This is a common reason that I hear for phasing jQuery out of projects. While true, that’s only one of many things jQuery brings to the table, and not relevant to why I continue using it.
Where jQuery still shines
- A fluent, chaining, consistent API.
- Simple and intuitive yet powerful DOM operations.
- Event handler management with namespaces, multiple bindings/unbindings in one method call, and so much more.
Where you shouldn’t use jQuery
- Animations and transitions should be done with CSS, where browsers - especially on mobile - are far more optimized.
- Use the Fetch API or htmx for Ajax-like network requests.
- Use native Promises instead of jQuery’s Deferred objects.
In conclusion
jQuery is damn good engineering, and to quote the people who built htmx:
> Today many web developers consider jQuery to be “legacy software.” With all due respect to this perspective, jQuery is currently used on 75% of all public websites, a number that dwarfs all other JavaScript tools.
While the prevalence of something isn’t always indicative of its quality, the staying power of jQuery when coupled with its well designed API is worth considering.
Seeing all the convoluted code and hoops people continue to jump through to reimplement what would be a one or two line chainable method call using jQuery doesn’t feel like progress to me - it feels like a footgun.