← Back to archive

Repo of the Day

rivet-dev/dynamic-apps

Published: Sep 1, 2026

Open repository ↗

Deploy an AI-generated backend for every user

Summary

rivet-dev/dynamic-apps is a TypeScript system for deploying an AI-generated backend per user. User-written request handlers run inside a sandboxed deployment VM, each handler's release state lives in a Rivet actor, and repeat ("cache-hit") requests are served from bounded local V8 isolates without routing through an execution actor. The project is built on top of RivetKit and targets platforms that need isolated, per-user server-side code on demand.

What it is useful for

This repository targets the "code per user" pattern, where each end user gets their own dynamically generated server-side handler rather than sharing a single multi-tenant process. Scenarios implied by the description include:

  • AI agent or chat platforms that synthesize a custom backend (routes, tools, persistence rules) for each user from a prompt.
  • Multi-tenant SaaS where tenants generate or upload custom request handlers that need to execute without giving them direct access to host infrastructure.
  • Latency-sensitive workloads where the first request loads a handler into a V8 isolate and subsequent requests are served from that isolate locally, avoiding an extra hop to an execution actor.

The combination of a sandboxed VM and a Rivet-actor-backed state store suggests a design that tries to balance isolation, persistence, and low-latency repeat execution.

How engineers can use it

The repository is a TypeScript project. The root README does not include install or run commands directly; it directs readers to three companion documents for the actual implementation details:

  • packages/dynamic-apps/README.md for the package-level guide and usage.
  • packages/dynamic-apps/API_CONTRACT.md for the API surface.
  • benchmarks/dynamic-apps/RESULTS.md for performance measurements.

It also points to the RivetKit reference at https://rivet.dev/llms.txt for the underlying actor runtime. A reasonable starting path for an engineer is to read the package guide to understand how handlers are deployed into the sandboxed VM, how state is wired to a Rivet actor, and how cache-hit requests are routed to local V8 isolates. Because the root README does not document a setup sequence, installation steps are not derivable from the supplied material — check the linked package guide and API contract before integrating. The benchmark report is the place to look for documented performance numbers rather than relying on any general claims about throughput or latency.