One frontend, many targets

Workbooks runs on desktop, in the browser, and on mobile. There is no separate desktop app, web app, and mobile app — there is one frontend that talks to a single capability surface. A target is just a choice of how that surface is fulfilled. No code fork per platform.

desktoprouting config webrouting config mobilerouting config One frontend (the UI) Host / Dock seamsingle membrane · invoke provider: localTauri / OS · browser-native APIsfile · dialog · on-device provider: runtimethe nexus over RCPserver units · data · sync · compile/weave asks for a capability router fulfillsrouter fulfills

The single seam

The UI never calls the operating system, the network, or the runtime directly. It calls one set of named capabilities — open a file, fetch a URL, run a unit — through a single membrane: the Host (the Dock seam). Behind the membrane a router decides who fulfills each call. That is the whole architecture: the app asks for a capability; a provider supplies it.

Providers fulfill capabilities

Every capability is satisfied by a provider. There are two kinds:

A target — desktop, web, or mobile — is a routing config: which capabilities go local, which go to a runtime, and which runtime endpoint to use. Swap the config and the same frontend runs somewhere new. The UI is never recompiled for a platform; it is re-pointed.

Where the lanes run

This mirrors the placement model:

The browser is a render target, not a second runtime contract the UI has to manage. There is one Host surface; targets route it differently.

Why one seam matters

The trap every cross-platform tool falls into is a second contract: the UI ends up knowing about both an OS API and a server API and managing the difference. Here the UI knows exactly one thing — the capability membrane. Local versus runtime is the router's problem, not the app's. That is how desktop, web, and mobile stay one codebase instead of three that drift apart. The handshake that lets a client discover and connect to a runtime is Runtime connect (RCP).