At Bluehouse Group, we’ve recently started using a suite of tools and technologies known as the TALL stack for one of our major projects.
Yes, it’s another acronym in the never-ending alphabet soup of modern development. No, there won’t be a test.
Rather than delve into the intricacies of each component, I’d just like to talk a little bit about the overall experience of working on a TALL stack application, because it’s really, really fun.
Having worked on this application for a few months now, I think there’s a near-perfect blend of rigidity and flexibility in the interplay of these tools. Laravel has opinions, sometimes strong opinions, on things like file structures and naming conventions. While it doesn’t always conform to my individual preferences, it helps maintain the peace at a team-wide level and exudes a sense of order and calm. It’s something akin to a well-poured concrete foundation: sturdy, and full of potential, but if someone cantilevers a 30-foot porch off the fourth floor it might gently suggest you add a support structure.
Alpine.js and Livewire are like the fancier tools, the ones down in the bottom of your bag, the ones you don’t reach for every time. When Laravel alone can’t deliver the user experience you require, you reach for Alpine to smooth the edges, and make everything pretty and responsive. Livewire offers the ability to create functionality on par with full frontend frameworks like Vue or React, but in such a condensed and elegant fashion that it all but forces you to be tasteful and sparse in its implementation.
Frameworks, and especially frameworks on top of other frameworks, don’t always feel concise or liberating. They can also feel bloated, unwieldy, or unfit for purpose. By fusing the power and flexibility of Laravel with a more modest but still powerful set of frontend tools, I think the TALL stack encourages a thoughtful, measured, and creative approach to solving problems that is an absolute joy to work with.