Most web software serves the top of the demand curve: developers build for the largest common group, and the long tail of per-user needs goes unmet. LLMs just changed the economics of that tail — “in the past year your users have suddenly acquired the ability to speak code into existence.” Jeremy Morrell’s argument is that this points somewhere bigger than personal “Software for One”: a new category of extensible web software, with a solid accountable core that users safely extend with LLM-generated code.

What that looks like, concretely:

  • Not webhooks — those demand a whole separate service. Instead, hook into record updates (“when I tag this, run my function”), daily crons, and custom parsers (“the default algorithm garbles this site, make a parser”), then share the extension.
  • The blocker is security, not imagination. User code must be cheap to run (~$0 idle), cold-start in milliseconds, isolated against crashes and Spectre, and able to act without leaking your keys.
  • The answer is capabilities, not API keys. Hand untrusted code narrow references — IFTTT gives you twitter.post_new_tweet(), not a Twitter key — and remove ambient I/O. No credential is ever exposed, so there’s nothing to exfiltrate.
  • Salesforce has run exactly this since 2007 (Apex, custom endpoints, schedulable logic in transactions). It only needed a bespoke compiler/runtime because cheap sandboxing didn’t exist; in 2026, V8 isolates, microVMs, and WASM make the same economics available to any SaaS.

His pick for the primitive is Cloudflare’s Dynamic Workers: observability in the runtime, per-user SQLite, durable workflows, and hosted LLMs. The through-line worth taking away is that “running untrusted user code” is the same problem as agent execution platforms — and the capability model is the shape that makes LLM-generated extensions both safe and shareable. Platforms are hard, Morrell closes, but it’s worth it.