Server
Type-safe RPC you call like a function, resumable SSR that ships almost no JS, streaming render with islands, and a codec that carries your own types across the wire. Reach for Actors when a call needs identity and memory as well.
Type-safe server functions
Call server code from a component as a plain async function — serverFn compiles to a secure-by-default RPC endpoint. No routes, no fetch wrappers, no DTOs to keep in sync.
Resume, not re-hydrate
Add the resume pack and ship almost no JS — the browser gets a tiny loader, and a component’s chunk loads only when a handler first writes state. Upgrade-on-write, not hydrate-everything.
Streaming SSR & hydration
Render to a string or a stream for a fast first paint, re-attach reactivity on the client, and manage the document head.
Islands when you want them
Hydrate only the interactive parts with client:load / idle / visible / media — each in its own code-split chunk.
Your types on the wire
Date, Map, Set, bigint, URL and your own classes round-trip across every boundary through the serialize codec — not just JSON.
One plugin wires it all
The Vite plugin sets up SSR and wires in server functions and resume when you add them — manifests and endpoints included, zero config in dev.
Server is a collection — there's no single install. Add the package you need from the list below.
