Dynamic Apps
Deploy user-generated applications in isolated agentOS VMs with SQLite, workflows, multiplayer, and static sites out of the box.
Dynamic Apps runs user-generated HTTP applications inside your own Node.js server. Each app runs in an isolated agentOS VM and can add durable SQLite state, workflows, realtime multiplayer, and static sites.
Dynamic Apps is in preview and its API is subject to change.
Quickstart
Start the host server, deploy a generated app, and visit it.
Deploying Apps
Deploy files or a directory, repair build errors, and configure apps.
Static Websites
Serve an HTML, CSS, and JavaScript site.
SQLite
Store durable relational data in an actor-owned database.
Multiplayer
Share realtime state between every connected client.
Workflows
Run durable multi-step jobs that sleep and resume.
Architecture
Dynamic Apps is a library, not a hosted app deployment platform. You own the Hono server, its authentication, and the URL on which applications are mounted.
Requests reach your Hono server, where appsRouter executes them in a cached
agentOS VM holding the app’s active release. Warm requests never touch storage
or a Rivet actor.
Deployment is separate from serving. deployApp() builds the files in a
sandboxed agentOS build VM and publishes an immutable release. The default
@rivet-dev/dynamic-apps package stores releases in a per-app Rivet actor;
@rivet-dev/dynamic-apps-core lets you supply another store.
An app may also export a RivetKit registry. Those app-defined actors use normal Rivet routing for durable state, actions, events, and connections, while the same app’s ordinary HTTP handler still runs through the agentOS VM.
agentOS provides the filesystem, process, environment, and network permission boundary for direct requests. App-defined actor workers share the host process, so run one trust domain per container for mutually untrusted tenants.