Web Frameworks: Why You Don’t Always Need Them
Spoiler alert: No, it can’t! Nevertheless, there are an increasing number of reasons not to use a web framework.
Yax.com was founded last year by Daniel Kehoe, who has had a long history in web development — even including an email exchange with Tim Berners-Lee in 1991. He’s a respected voice in the Ruby on Rails community, after starting the RailsApps open source project and writing the book Learn Ruby on Rails about a decade ago. But somewhere along the way, Kehoe tired of the frameworks approach to web development.
“I’m no longer teaching anyone to build applications with Rails,” Kehoe wrote in a long article describing what he calls “the stackless way.” Instead, he’s now focused on helping people build web apps and websites using “the newest features built into web browsers.”
Kehoe argues that engineering teams are “burdened by too much complexity” today and that “large, complex, hierarchical, and monolithic organizations produce large, complex, hierarchical, and monolithic software systems.” He wants a return to what Tim Berners-Lee and the W3C once called The Rule of Least Power: “Use the least powerful language suitable for expressing information, constraints or programs on the World Wide Web.”
According to Kehoe, the time is right for a “stackless” approach to web development — one based on recent improvements in both web standards and (more pertinently) how the leading browser companies have implemented those standards.
There are three key web technologies underpinning Kehoe’s approach:
- Custom HTML elements: Developers can now create custom HTML tags, via Web Components.
The ability to modularize both code and markup was the turning point for Kehoe.
It took a bit longer for modular HTML to be adopted, but Kehoe thinks Web Components — which became fully supported in Chrome and Firefox during 2018 — finally enabled this. He wrote on his site:
Mozilla defines Web Components as “a suite of different technologies allowing you to create reusable custom elements — with their functionality encapsulated away from the rest of your code — and utilize them in your web apps.”
It’s still early for Web Components, but after Microsoft’s Edge browser added support for it in January 2020, momentum has picked up. Google’s Alex Russell said recently that “12% of pages loaded in Chrome [are] using Web Components.” If Daniel Kehoe has his way, stackless developers will add to that number over time.
The Drawbacks of a No-Framework Approach
Kehoe is the first to admit that his approach won’t work for every situation. Indeed, in his five-page overview of “the stackless way,” one full page is devoted to the “obstacles.”
State management is another critical piece in large-scale web applications, which the stackless way cannot do. “If you need a SPA [single page application], use a framework and accept complexity,” writes Kehoe.
There are other issues, including that the no-framework approach is still very new and so there’s a lack of example apps and sites to learn from.
I should note here that Yax.com is not positioning itself as a competitor to the likes of Vercel and Gatsby, two companies that rely heavily on frameworks and whose users tend to be frontend developers. Yax.com is instead targeting “designers, do-it-yourselfers, and web beginners,” by providing them with examples of small projects that can be built with a stackless approach.
Frameworks Are Here to Stay. And Yet…
“Things that were only possible with frameworks and build tools can now be accomplished with features built into the browser. So I suggest, unless it is absolutely necessary, do not use a framework as your development platform. The browser itself is your platform; use the platform.”
At the very least, the stackless approach is a good way to re-familiarise yourself with the modern web platform.