back tovanilla

HTML components, JSON content, edge functions. One Rust binary. No runtime dependencies.

$ curl -fsSL vanilo.ludovichorem.com/api/i|sh copy
scroll ↓

From info.cern.ch to vanilo.
35 years reinventing HTML.

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.

node_modules 0 dependencies
Aug 1991

Tim writes HTML

The first public website

On August 6, 1991, Tim Berners-Lee announces the WWW on alt.hypertext. One .html file, one server, that’s it.

deps 0
1993

Mosaic

The consumer browser

Mosaic displays images inline. The web becomes visual. Still zero dependencies.

deps 0
May 1995

JavaScript

10 days to invent a language

Brendan Eich prototypes Mocha in 10 days at Netscape. Renamed JavaScript in December. Behavior added, no build step.

deps 0
1995

PHP

The server renders the page

PHP arrives. HTML, a bit of logic, an FTP upload. Nobody talks about pipelines.

deps 0
2004

Ajax

Gmail changes everything

Gmail (April 2004) popularizes XMLHttpRequest. Jesse James Garrett coins “Ajax” in 2005. Pages stop reloading. Complexity begins.

deps 0
Jan 2006

jQuery

$('#everything')

John Resig presents jQuery at BarCamp NYC. One library. DOM manipulation, animations — we call it simple.

deps 1
Oct 2010

Backbone.js

Client-side MVC

Jeremy Ashkenas releases Backbone. Models, views, controllers — client-side. Business logic moves into the browser.

deps 12
2009 → 2010

Node.js + npm

JavaScript leaves 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.

deps 47
2010 → 2012

AngularJS

Two-way binding

AngularJS ships October 2010, 1.0 in June 2012. HTML becomes a magic template. People start talking about digest cycles.

deps 180
May 2013

React

Everything is a component

The virtual DOM. JSX. You compile HTML that isn’t HTML to produce HTML.

deps 340
2012 → 2015

Webpack

Bundler everything

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.

deps 720
2016

Babel + ESLint + Prettier

The tooling explodes

You write JS that you transpile to JS, lint, format, bundle, and minify.

deps 1,240
Oct 2016

Next.js

The framework’s framework

Vercel ships Next.js in October 2016. Then SSR, SSG, ISR, RSC. Each acronym is a new way to render HTML.

deps 1,680
2022

node_modules

The black hole

npx create-... downloads a moon in dependencies. The Hello World weighs 280 MB on disk.

deps 2,400
2026

vanilo

Back to fundamentals

One Rust binary. Zero runtime. You write HTML and JS. The rest is handled.

deps 0
~/projects/my-site
zsh
$

vanilo.

HTML, JSON, JS. One binary. No runtime. You build, it ships.

$ curl -fsSL vanilo.ludovichorem.com/api/i|sh