Scalable. Stateful. Serverless.

Rivet is the platform to build realtime, edge, or agent applications.
No limitations of Redis or timeouts of Lambda.
Open-source & self-hostable.

Try Rivet

Documentation

Works with your application

Highlights

Simple primitives to build your backend

Leverage Rivet Actors to build complex functionality with ease

actor.ts

Runs on Rivet servers

import { Actor, type Rpc } from "@rivet-gg/actor";

class ChatRoom extends Actor {
	// receive an remote procedure call from the client
	sendMessage(rpc: Rpc, username: string, message: string) {
		// save message to persistent storage
		this._state.messages.push({ username, message });

		// broadcast message to all clients
		this._broadcast("newMessage", { username, message });
	}

	// initialize this._state
	override _onInitialize() {
		return { messages: [] };
	}
}

client.ts

Runs in the browser

import { Client } from "@rivet-gg/actor-client";
import type { Chat } from "./chat.ts";

// connect to actor
const rivet = new Client(/* ... */);
const room = await rivet.get<ChatRoom>({
	name: "room",
	channel: "random",
});

// send a message
room.sendMessage("william", "All the world's a stage.");

// receive broadcasted message from actor
room.on("newMessage", ({ username, message }) => {
	console.log(`${username}: ${message}`);
});

Rivet comes packed with features

State & Persistence

State that feels like memory but works like storage. Ideal for dynamic, fast-moving apps.

Documentation

RPC

Lightweight messaging built for speed. Complete client/server type safety included.

Documentation

Runs Forever, Sleeps When Idle

Always available, sleeps on network inactivity or timeouts, and wakes instantly on demand.

Documentation

Edge

Automatically distribute your applications near your users for ultra-low latency.

Documentation

Fault Tolerance

Ensure application & state resilience through crashes with zero downtime.

Documentation

Highlights

Build without limits

Scale from zero to millions of users with powerful built-in capabilities.

Works with Your Runtime

Supports v8 isolates, WebAssembly, and containers to work with your existing tools.

Scales to zero

Only pay for what you use with access to global regions.

No Servers & No Configuration

Deploy with one command. Scale on demand without any configuration.

Realtime State Made Easy

Access your data in-memory with persistence & fault tolerance using Rivet Actors.

Run Near Your Users

Automatically distribute your applications to global edge locations for ultra-low latency.

Simpler Than Lambda, No Timeouts Ever

No execution time limits, no complexity — just better serverless.

Rivet Cloud

Deploy on Rivet Cloud

A full-featured platform that lets
you focus on building.

Team collaboration

Bring your entire team together in one workspace, with no user limits on paid.

DDoS mitigation built-in

Automatic DDoS attack mitigation to protect your application.

Release management

Powerful release management & instant rollbacks.

Zero infrastructure maintenance

Instant scaling without the hassle.

Built-in SSL security

Automatic SSL/TLS for WebSocket connections.

Logging and monitoring included

Monitor detailed actor activity out of the box.

Run Rivet anywhere or in your own cloud

Learn More

Scalable. Stateful. Serverless.

Rivet is the platform to build realtime, edge, or agent applications.
No limitations of Redis or timeouts of Lambda.
Open-source & self-hostable.

Try Rivet

Documentation

Works with your application

Highlights

Simple primitives to build your backend

Leverage Rivet Actors to build complex functionality with ease

actor.ts

Runs on Rivet servers

import { Actor, type Rpc } from "@rivet-gg/actor";

class ChatRoom extends Actor {
	// receive an remote procedure call from the client
	sendMessage(rpc: Rpc, username: string, message: string) {
		// save message to persistent storage
		this._state.messages.push({ username, message });

		// broadcast message to all clients
		this._broadcast("newMessage", { username, message });
	}

	// initialize this._state
	override _onInitialize() {
		return { messages: [] };
	}
}

client.ts

Runs in the browser

import { Client } from "@rivet-gg/actor-client";
import type { Chat } from "./chat.ts";

// connect to actor
const rivet = new Client(/* ... */);
const room = await rivet.get<ChatRoom>({
	name: "room",
	channel: "random",
});

// send a message
room.sendMessage("william", "All the world's a stage.");

// receive broadcasted message from actor
room.on("newMessage", ({ username, message }) => {
	console.log(`${username}: ${message}`);
});

Rivet comes packed with features

State & Persistence

State that feels like memory but works like storage. Ideal for dynamic, fast-moving apps.

Documentation

RPC

Lightweight messaging built for speed. Complete client/server type safety included.

Documentation

Runs Forever, Sleeps When Idle

Always available, sleeps on network inactivity or timeouts, and wakes instantly on demand.

Documentation

Edge

Automatically distribute your applications near your users for ultra-low latency.

Documentation

Fault Tolerance

Ensure application & state resilience through crashes with zero downtime.

Documentation

Highlights

Build without limits

Scale from zero to millions of users with powerful built-in capabilities.

Works with Your Runtime

Supports v8 isolates, WebAssembly, and containers to work with your existing tools.

Scales to zero

Only pay for what you use with access to global regions.

No Servers & No Configuration

Deploy with one command. Scale on demand without any configuration.

Realtime State Made Easy

Access your data in-memory with persistence & fault tolerance using Rivet Actors.

Run Near Your Users

Automatically distribute your applications to global edge locations for ultra-low latency.

Simpler Than Lambda, No Timeouts Ever

No execution time limits, no complexity — just better serverless.

Rivet Cloud

Deploy on Rivet Cloud

A full-featured platform that lets
you focus on building.

Team collaboration

Bring your entire team together in one workspace, with no user limits on paid.

DDoS mitigation built-in

Automatic DDoS attack mitigation to protect your application.

Release management

Powerful release management & instant rollbacks.

Zero infrastructure maintenance

Instant scaling without the hassle.

Built-in SSL security

Automatic SSL/TLS for WebSocket connections.

Logging and monitoring included

Monitor detailed actor activity out of the box.

Run Rivet anywhere or in your own cloud

Learn More

Scalable.

Stateful.

Serverless.

Rivet is the platform to build realtime, edge, or agent applications.
No limitations of Redis or timeouts of Lambda.
Open-source & self-hostable.

Try Rivet

Documentation

Works with your application

Highlights

Simple primitives
to build your backend

Leverage Rivet Actors to build complex functionality with ease

actor.ts

Runs on Rivet servers

import { Actor, type Rpc } from "@rivet-gg/actor";

class ChatRoom extends Actor {
	// receive an remote procedure call from the client
	sendMessage(rpc: Rpc, username: string, message: string) {
		// save message to persistent storage
		this._state.messages.push({ username, message });

		// broadcast message to all clients
		this._broadcast("newMessage", { username, message });
	}

	// initialize this._state
	override _onInitialize() {
		return { messages: [] };
	}
}

client.ts

Runs in the browser

import { Client } from "@rivet-gg/actor-client";
import type { Chat } from "./chat.ts";

// connect to actor
const rivet = new Client(/* ... */);
const room = await rivet.get<ChatRoom>({
	name: "room",
	channel: "random",
});

// send a message
room.sendMessage("william", "All the world's a stage.");

// receive broadcasted message from actor
room.on("newMessage", ({ username, message }) => {
	console.log(`${username}: ${message}`);
});

Rivet comes packed with features

State & Persistence

State that feels like memory but works like storage. Ideal for dynamic, fast-moving apps.

Documentation

RPC

Lightweight messaging built for speed. Complete client/server type safety included.

Documentation

Runs Forever, Sleeps When Idle

Always available, sleeps on network inactivity or timeouts, and wakes instantly on demand.

Documentation

Edge

Automatically distribute your applications near your users for ultra-low latency.

Documentation

Fault Tolerance

Ensure application & state resilience through crashes with zero downtime.

Documentation

Highlights

Build without limits

Scale from zero to millions of users with powerful built-in capabilities.

Works with Your Runtime

Supports v8 isolates, WebAssembly, and containers to work with your existing tools.

Scales to zero

Only pay for what you use with access to global regions.

No Servers & No Configuration

Deploy with one command. Scale on demand without any configuration.

Realtime State Made Easy

Access your data in-memory with persistence & fault tolerance using Rivet Actors.

Run Near Your Users

Automatically distribute your applications to global edge locations for ultra-low latency.

Simpler Than Lambda, No Timeouts Ever

No execution time limits, no complexity — just better serverless.

Rivet Cloud

Deploy on Rivet Cloud

A full-featured platform that lets
you focus on building.

Team collaboration

Bring your entire team together in one workspace, with no user limits on paid.

DDoS mitigation built-in

Automatic DDoS attack mitigation to protect your application.

Release management

Powerful release management & instant rollbacks.

Zero infrastructure maintenance

Instant scaling without the hassle.

Built-in SSL security

Automatic SSL/TLS for WebSocket connections.

Logging and monitoring included

Monitor detailed actor activity out of the box.

Run Rivet anywhere or in your own cloud

Learn More