(it's about to get preachy)
Like most developers in the industry, I was drawn to the magic and smoothness of single page applications (SPA). My weapon of choice was VueJS, mostly because it was already setup to run with Laravel Mix. If it's good enough for Taylor Otwell, it was good enough for me.
After a couple years of developing with VueJS, what started out as a love affair quickly turned into unnecessary overhead. I was developing in Laravel and essentially duplicating functionality with the Vue Router. It just made no sense.
But everyone was doing it.
I couldn't be the only full stack developer that didn't use some kind of reactive front-end framework. And just as I started to accept my fate, a movement was afoot. While listening to the Laravel Livewire presentation at Laracon from Caleb Porzio, I just knew he was talking to me. We locked eyes and he said to me, "I understand your frustrations. There is a better way."
Over the next 12 months, I started to push the TALL stack with my fellow engineers. We had been in the middle of a refactor process, so I was able to prove out the benefits of this magical stack. We needn't push logic to the front end and stress user computers. We could keep it server-side and return rendered HTML. I won my life back!
The TALL Stack
I have years of experience building and working with Bootstrap themes. One of my biggest gripes about Bootstrap themes was the extra layer of CSS that had to go on top of Bootstrap to make it look the way you wanted it to. Essentially I had to overwrite Bootstrap styles and make it do what I wanted it to do. Bootstrap was a great framework to get up and going quickly, but when you needed to make granular customizations, it would start feeling really heavy.
With the utility-first approach, once I stumbled upon TailwindCSS, it immediately became my go-to CSS framework. In all fairness, Bootstrap 4 introduced a lot of utility classes, but it continued to be opinionated in it's design. I have my own opinions, I don't need a CSS framework to get in the way!
For years before TailwindCSS, I found myself creating my own utility classes that I would sprinkle where needed. Because of this, TailwindCSS just made sense. I pulled Bootstrap out of my tech mind, and directly replaced it with Tailwind. And with purgeCSS support, it was almost too much for me.
Outside of complex interactions and state management, AlpineJS also nullified the need for me to reach for VueJS. I was already moving away from VueJS as I was in search of removing as much work from the client as possible, but AlpineJS allowed to keep all the beauty of VueJS without any of the overhead. For me, it killed VueJS.
Do I need to say more? It's Laravel... it made a respectable PHP developer out of me. No longer would I be considered a second rate developer. The community is second to none.
Before going all in on Livewire, I first tried InertiaJS. InertiaJS is awesome in its own right. It allowed me to use my backend controllers and return VueJS components without needing an API layer. But I was already well on my way to client-side logic liberation.
Just like AlpineJS, the creator of Livewire, Caleb Porzio, came from the VueJS world. The syntax and structure was all very Vue-esque. So I can reduce the stress on the client and still feel like I'm in Vue-land? Yes please! There are many developers that have not yet seen the light. Too many companies are in deep with React or VueJS. But this movement is happening. Could this be Adobe Flash all over again?