🖥️ The Web Escapes the Browser Electron, Tauri, and friends
Apps you may have used today that are web pages in a desktop window: VS Code, Slack, Discord, Figma, Obsidian, 1Password, WhatsApp Desktop, Notion, Spotify (mostly), and — recursion alert — the app many of you write code in. HTML/CSS/JS is arguably the world's most-shipped desktop GUI toolkit.
The entire Electron app: three files
Take any page from this site — say Web95 — put these next to it, and it becomes a real desktop application with a dock icon and its own window:
// main.js
const { app, BrowserWindow } = require('electron');
app.whenReady().then(() => {
new BrowserWindow({ width: 1024, height: 720 })
.loadFile('index.html'); // ← the exact same HTML file
});
// package.json
{
"name": "web95-desktop",
"main": "main.js",
"devDependencies": { "electron": "^38.0.0" }
}
# run it npm install npx electron . # Web95 opens as a desktop app. That's it.
Yes — after a whole site of "zero npm packages," this exhibit needs one. Fair is fair: the zero-package streak ends exactly where the browser does. The skills don't: it's the same HTML, the same CSS, the same DOM.
The lighter way: Tauri
Tauri wraps the same web frontend in the OS's built-in webview instead of bundling Chromium — apps in the ~10 MB range instead of ~200 MB, with a Rust backend. Same idea, different tradeoff.
And phones, and watches, and TVs, and fridges
PWAs install from the browser (next exhibit ⟶). React Native and Capacitor put web skills in app stores. Smart TVs run their UIs on web engines. The kiosk at the airport is a fullscreened browser. The web is not "the graphics one" — it is the most widely deployed application runtime in human history.