The original web was a revelation. It may be lo-fi compared to what we know today, but it was a dream for academics, scientists, and indie hobbyists. The Internet connected computers and people around the world.
It took a long time for technologists to decide the best way to connect people-with-computers to computers-with-content. But content was everywhere and innovation thrived.
Browsers were born, walled off, and burned down. Vendors thrashed. All while adoption of the web accelerated. People shared.
As the business of the web took hold, companies and developers pushed the web to its limits. Constantly running into browser and device limitations. We had to build sites with `<table>`s and spacer .gifs.
Libraries helped normalize programming for the web. Then the frameworks had frameworks. And configuration of configuration. Soon frameworks rewrote browser mechanics inside the browser instead of dealing with browser compatibility and shortcomings.
Add a whole new crop of mobile devices and their browsers, the best we could do was paper over browsers and send whole apps to the client. Complete with the fanciest loading screens. Single page apps were cranked out with iterative tools stitched together with .config files and transpiling bundlers.
Component-style development takes off. The only relief from the chaos is authoring web applications with composable elements; small, understandable containers for the madness. As long as the config files were set up correctly…
While we were waiting on our test suites, browser vendors worked together and got their act together. Performance gains, standardized APIs, increased user security and privacy, and native components. The sun rises on the platform. 🌅
Back to basics. Real `<form>` tags. Sane CSS layouts in .css files. Native custom elements. No breaking changes or chasing version numbers.
What’s left to solve? Well, getting your code from a server to users’ browsers and a way to organize all those features of the next unicorn. A progressively-enhanced, web-native, HTML-first framework that will work as long as the web does: <framework-website.url>