Tim writes HTML
On August 6, 1991, Tim Berners-Lee announces the WWW on alt.hypertext. One .html file, one server, that’s it.
HTML components, JSON content, edge functions. One Rust binary. No runtime dependencies.
The web started with a file. Today a Hello World ships 2,000 dependencies. Here’s how we got here — and how we get out.
On August 6, 1991, Tim Berners-Lee announces the WWW on alt.hypertext. One .html file, one server, that’s it.
Mosaic displays images inline. The web becomes visual. Still zero dependencies.
Brendan Eich prototypes Mocha in 10 days at Netscape. Renamed JavaScript in December. Behavior added, no build step.
PHP arrives. HTML, a bit of logic, an FTP upload. Nobody talks about pipelines.
Gmail (April 2004) popularizes XMLHttpRequest. Jesse James Garrett coins “Ajax” in 2005. Pages stop reloading. Complexity begins.
John Resig presents jQuery at BarCamp NYC. One library. DOM manipulation, animations — we call it simple.
Jeremy Ashkenas releases Backbone. Models, views, controllers — client-side. Business logic moves into the browser.
Node.js (May 2009, Ryan Dahl). npm (January 2010, Isaac Schlueter). You can install JS from the terminal. Nobody suspects what’s coming.
AngularJS ships October 2010, 1.0 in June 2012. HTML becomes a magic template. People start talking about digest cycles.
The virtual DOM. JSX. You compile HTML that isn’t HTML to produce HTML.
Tobias Koppers releases Webpack in 2012. Mass adoption 2014–2015. Everything goes through a module graph. webpack.config.js is 200 lines. node_modules is 400 MB.
You write JS that you transpile to JS, lint, format, bundle, and minify.
Vercel ships Next.js in October 2016. Then SSR, SSG, ISR, RSC. Each acronym is a new way to render HTML.
npx create-... downloads a moon in dependencies. The Hello World weighs 280 MB on disk.
One Rust binary. Zero runtime. You write HTML and JS. The rest is handled.
HTML, JSON, JS. One binary. No runtime. You build, it ships.