Backends for realtime apps
Realtime made easy. Serverless like Lambda, but for WebSockets.
How it works
Introducing
session backends
Session backends are server-side processes that handle realtime connections for one or more clients.
Read docs
1
Spawn a backend
When a user opens a document in your app, your app spawns a session backend on Jamsocket.
2
Connect clients
Browser-based clients connect directly over HTTPS or WebSocket using secret tokens.
3
Your code runs
Each backend is a full, isolated Linux process, running code you provide in any language.
4
Automatic termination
Once every client disconnects, we automatically stop your backend.
Case Studies
Jamsocket in Action
Jamsocket is the most powerful solution for realtime collaboration, AI agents, and data-intensive apps.
Rayon
Multiplayer Collaboration
Rayon uses Jamsocket as the realtime data backend for its CAD software.
When a user opens a document, Rayon spins up a Jamsocket backend, which serves as the source-of-truth for all clients connected to that document. The session backend is responsible for persisting changes to the database.
“We love using Jamsocket at Rayon. It just works!”
Bastien Dolla
Co-founder, Rayon
Op
Data Intensive Apps
Op lets users analyze data with Pandas within the browser.
When a user opens a sheet, Op spins up a Jamsocket backend to load the user’s dataset into memory. It then allows the user to answer questions about the dataset using plain language (by invoking an LLM) or directly in Python.
“I wanted the easiest way to set up a code execution backend for every user. Jamsocket had the simplest API.”
Samuel Quinn
Co-founder, Op
Toolchest
Jupyter Notebooks
Toolchest uses Jamsocket to create ephemeral demo notebooks for its computational biology platform.
When prospective customers click the link, Toolchest starts a Jupyter server inside a Jamsocket session backend. When the tab is closed, we shut the notebook down.
“Before Jamsocket, we set up demo environments manually for each lead. Now, setting up a demo environment is as easy as sharing a link.”
Noah Lobovic
Co-founder, Toolchest
Developer Overview
Integrate with ease
Understand the basics of Jamsocket in three easy steps.
1
Push code to Jamsocket
Push your code using our CLI tool, or directly from Docker.
npx jamsocket push hello-app -f ./Dockerfile
1
Push code to Jamsocket
npx jamsocket push hello-app -f ./Dockerfile
2
Spawn a backend
Use our HTTP API or our JavaScript library to start backend instances from your app.
const jamsocket = new Jamsocket({
account: 'my-account',
service: 'my-service',
token: 'my-token'
})
const { url } = jamsocket.connect()
2
Spawn a backend
const jamsocket = new Jamsocket({
account: 'my-account',
service: 'my-service',
token: 'my-token'
})
const { url } = jamsocket.connect()
3
Connect to the backend
Each backend gets a unique URL. Connect using any HTTP or WebSocket client.
const ws = new WebSocket(url + '/path/to/websocket')
3
Connect to the backend
const ws = new WebSocket(url + '/path/to/websocket')
Advanced concepts
Building blocks for modern apps
Jamsocket provides simple, powerful abstractions for locking and authorization.
Keys
Ensure that only one session backend is running per document at a time, as a single source of truth.
Tokens
Limit backend access to authorized people by gating that backend behind a tokenized URL.
Monitor your app
Observability built in
Retrieve application logs or view details like memory and CPU usage in your Jamsocket dashboard or CLI.
Sign upDeployment options
Our cloud, or yours
Choose to deploy Jamsocket session backends on our managed cluster or on-prem using BYOC.
Fully Managed
We run everything for you. Spend your time building and let us handle the infrastructure.
See Pricing
BYOC
Run in your own AWS account or on-prem. We manage scheduling, DNS, certificates, and observability.
See Pricing