Extensible Web Apps

Web apps that the people using them can change.

Extensible Web Apps is an experiment in malleable software by Paul Kinlan (paul.kinlan.me, aifoc.us). Most web apps are fixed: you get the features the developer shipped, and if you need something else, you wait or you leave. Here, an app is a small kernel plus plugins, and anyone can add, remove or rewrite a plugin. That could be the developer who built the app, a person using it, or an LLM agent working for them.

To make that safe, each plugin is one JavaScript file that declares what it needs, runs in its own Web Worker, and can't do anything it didn't ask for. Changes to data it doesn't own wait for the person to approve them. It's plain HTML, CSS and JavaScript, with no build step.

This page is an app built that way. Each section below is a plugin: read how it works, then switch parts off and watch the page change.

Built on ideas from Ink & Switch's essay Malleable software, the DeepSeek Harness, where every part of the agent is an extension, the Cordis plugin framework that the kernel runs on, and the extensions of the Pi coding agent.

This is where the chapters go. They're plugins, and they're either loading or switched off. Turn everything back on.