When you start working on a project, you should just use what you already know. There is enough problems that you don't need to pile up some more.
However, when I started building my current software (1 year ago) I chose to learn a new database system (a graph database model).
That was the best decision I could have made. I love it. It's awesome.
Now I simply regret I didn't take the time to understand the differences between Bootstrap 4 and Tailwind during the same period.
And I just reached my "haha" moment about this subject. I finally understand why I hear about Tailwind everywhere.
It's a paradigm shift...
Now I know what you're thinking, "this is an atrocity, what a horrible mess!" and you're right, it's kind of ugly. In fact it's just about impossible to think this is a good idea the first time you see it — you have to actually try it.
But once you've actually built something this way, you'll quickly notice some really important benefits:
- You aren't wasting energy inventing class names. No more adding silly class names like sidebar-inner-wrapper just to be able to style something, and no more agonizing over the perfect abstract name for something that's really just a flex container.
- Your CSS stops growing. Using a traditional approach, your CSS files get bigger every time you add a new feature. With utilities, everything is reusable so you rarely need to write new CSS.
- Making changes feels safer. CSS is global and you never know what you're breaking when you make a change. Classes in your HTML are local, so you can change them without worrying about something else breaking.
When you realize how productive you can be working exclusively in HTML with predefined utility classes, working any other way will feel like torture.
Lesson is... if everyone talks about something, it may not be just a fad; it may be a new paradigm shift.
I'm now trying this new way of working on my future landing page and on a side project, before migrating my app at some point in the near future :)
Keep on learning!