We're dropping jQuery support

Sunday 3rd January, 2021 —

Thank you jQuery


So, like I was writing it earlier, it's time for me and for Css Ninja to move away from jQuery. However, don't take it wrong. jQuery is still an awesome library that lets you do almost everything regarding the management of your DOM as well as the data populating it. It's just not fit anymore for frontend development as the modern javascript ecosystem is far more mature than it was a few years ago. The rise of reactive javascript libraries like Vue and React, powered by Node JS, has deeply impacted the world of frontend (and backend development). Although it can be tricky to get started with one of those, you quickly realise that you only need to write 10 lines of code when you would write 200+ in jQuery to implement the same feature. In larger applications, your jQuery code can become an ugly bunch of spaghetti sauce before you can even notice it, and there you go with callback hell when you need to make changes.

In its time, jQuery was a revolution, especially when javascript browser compatibility was a mess. It brought everything together and shipped with incredible features like the $('.selector') selection method. Not only the syntax was fare more acceptable than to write document.querySelectorAll (although this one is pretty recent), but it was also providing an object (jQuery object) that you could immediatly interact with, without having to do a for loop to add classes or alter existing attributes. jQuery was what introduced me to javascript, in a very gently way, to start understanding how things worked in the barbaric world of javascript. If you're new to web development, you should definitely allow some time to understand jQuery as a light introduction to learning real deal javascript.

The (modern) Javascript Era

Eventually, javascript frameworks adoption became more and more prominent, and the whole community agreed to leave jQuery behind. I was myself very reluctant to adopt those new frameworks when they came out. I thought at first that they would only add complexity to projects without briging any form of added value in development. And I kept thinking that for a long time. Obviously I was wrong, and even more, I was affraid to have to learn everything from the start again, because yeah, that's basically what it is. Not only those new frameworks behave in a different way than jQuery, but they need a different mindset when planning and designing an app frontend. With the rise of web components, I had to change entirely the way I designed my apps and the way to think component interactions. That's a bit hard to overcome at first, but you eventually reach a phase when you start feeling comfortable that quickly makes you think you made the right choice.

Next Steps

I took my time to look around for the technologies I feel the most comfortable using. I finally decided, helped doing that choice by numerous discussions I had with fellow developers, to settle on Vue.js and Alpine.js. Alpine.js would act as a rough replacement to jQuery, working in a real DOM whereas Vue would remain the best choice for bigger projects and enterprise class frontends. What that means is that from now on, Css Ninja products will be released in both Alpine and Vue Versions. We used to work a lot Bulma, because we love it, and we're doing to keep doing that. However, working a lot with Alpine.js made us discover the fabulous Tailwind CSS framework.


Tailwind is the pure representation of modern Javascript capabilities, like post-css, reshaping the world of CSS stylesheets.

Time to move on

Like I said before, I think now is a goog time to start migrating to the modern javascript world, if you're not already there yet. There are thousands of projects, plugins, tutorials and ready made tools out there waiting for beginner and experienced developers to sharpen their skills and start contributing.

We will still maintain the remaining jQuery powered themes that are currently active, and that support is not likely to stop anytime soon. However, we will not release any jQuery products anymore and will focus on Alpine, Vue, Bulma, Tailwind and Svelte powered products.

Back to Blog

Continue reading

Server Cache Invalidation in Nuxt and Nitro

Top 10 Vue Components Libraries

How to build a filterable list with Nuxt and Tailwind