🖥️ 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.