v0.4 — instant replay now in beta

Capture the bug, not the screenshot.

A one-shortcut Chrome extension that records the DOM, console, network, and your voice — so the next engineer to look at this gets the full picture, not five questions.

Add to Chrome — freeWatch a 90-second jam4.2k stars · MIT-licensed
Console
warnmissing translation key "vat.label.AT"
errorTypeError: cannot read 'rate'
errorPOST /charge → 422
logsubmit attempt #2
errorPOST /charge → 500
Teams reporting faster with OpenJam
kuratiofältssonOBELISKmodestoglaze.iopiers + co.

One shortcut. Full context.

Press ⌥J. We capture the DOM, console, network, viewport, and user agent — plus your voice if you want to talk through it.

Replay, don't imagine.

Jams play back as DOM events you can scrub, not blurry screenshots. Click an error to jump to the moment it fired.

Yours. Always.

Self-host the whole thing in Docker. No vendor lock-in, no per-seat tax. The extension talks to your instance.

Quote
We replaced a 20-message "what browser?" Slack thread with one link. Half our bug reports are jams now — and the other half should be.
TE
Tom Eriksen
CTO · fältsson
Self-host

Self-host the full stack.

OpenJam runs with Postgres, ClickHouse, Redis, object storage, and a queue. Start locally with Docker Compose, then deploy production through Helm when you need proper retention, metrics, and license heartbeats.

See the deploy guide
docker-compose.yml
services:
openjam:
image: ghcr.io/openjam/api:latest
depends_on: ["postgres", "clickhouse", "minio"]
ports: ["8080:8080"]
environment:
OPENJAM_JWT_SECRET: "change-me"
Docs
Install the extension
Point it at your OpenJam API URL and workspace slug.
Run locally
Start Postgres, the API, ingest worker, processor, and web app.
Capture API
Use workspace tokens to upload replay, network, and console bundles.
Changelog

Latest in v0.4

Tenant-scoped sessions and workspace switching
Video replay diagnostics with lazy artifact loading
Self-hosted branding and platform admin console

Cheaper than Jam. Self-hostable by default.

Start free on your own infrastructure, or use our hosted plans when you want us to run it.

Free Self-Hosted
€0
Run it yourself. Free forever.
Unlimited jams on your infrastructure
Unlimited Recording Links
10 creators, 3 workspaces
Source maps included
Self-host
Hobby
€6/ creator / mo yearly
Hosted OpenJam for small teams.
100 Recording Links
15-minute recordings
100 AI summaries
30-day retention
Start hosted
Recommended
Core
€10/ creator / mo yearly
The cheaper Jam Team alternative.
500 Recording Links
30-minute recordings
Source maps included
5 workspaces, unlimited viewers
Start Core
Pro
€16/ creator / mo yearly
Governance for larger product teams.
1,000 Recording Links
60-minute recordings
Audit logs and branding
OIDC login
Start Pro
Enterprise Self-Hosted
€1,499+/ mo yearly
Your infrastructure, our license and support.
100 creators included
10 tenants, 100 workspaces
SAML SSO and SCIM
Soft overage true-up
Talk to us
Enterprise Hosted
€2,999+/ mo yearly
We run OpenJam for enterprise teams.
Managed single tenant or shared cloud
SAML SSO and SCIM
Custom data residency
Priority support and SLA
Talk to us

Core beats Jam Team on the limits teams hit first.

Jam pricing reference checked May 30, 2026 from jam.dev/pricing; OpenJam limits come from the active plan catalog.

Compare self-hosting
MetricJamOpenJamWhy it matters
Hosted Team price$14 / creator / moCore at EUR 10 / creator / moYearly billing comparison for the main hosted team tier.
Recording Links150 on Team500 on CoreOpenJam Core includes more customer recording capacity before overage.
Recording duration15 minutes on Team30 minutes on CoreLonger recordings are included before Enterprise.
AI summaries200 on Team500 on CoreAI summary overage is metered instead of breaking the workflow.
Self-hostingNot offeredFree Self-Hosted plus Enterprise Self-HostedThe extension can point at your own OpenJam instance.

Hosted soft-billed meters

Storage, extra Recording Links, and AI summaries keep working for active paid customers and are added to the next invoice.

Self-hosted true-up

Enterprise Self-Hosted sends signed usage heartbeats for creators, tenants, workspaces, and platform admins. Storage stays your infrastructure cost.

Hard safety limits

Duration, abuse rate limits, and suspended billing can still block new writes unless a signed enterprise policy explicitly raises them.

Enterprise expansion is calculable before procurement.

Self-hosted customers pay for product scale and support, not their own storage or retention bill. Hosted Enterprise costs more because OpenJam carries infrastructure and uptime risk.

MeterIncludedEnterprise Self-HostedEnterprise Hosted
Creator seats100 in Enterprise€8 / creator / mo in 25-seat packs€8 / creator / mo in 25-seat packs
Tenants10 in Enterprise€99 / tenant / mo€149 / tenant / mo
Workspaces100 in Enterprise€49 / 25 workspaces / mo€75 / 25 workspaces / mo
Storage5 TB hosted EnterpriseCustomer infrastructure€100 / TB-month before volume discounts

What happens when a hosted team passes included usage?

Storage, Recording Links, and AI summaries continue for active paid customers and create billable overage records. Workspaces, tenants, creator seats, duration, and rate limits stay hard unless we sign a custom policy.

Why is Free Self-Hosted not a hosted free plan?

Free means you run the infrastructure. That lets us keep the free tier useful without subsidizing object storage, ClickHouse, and video traffic.

How does Enterprise Self-Hosted true-up work?

The instance verifies a signed license bundle locally, keeps working through allowed overages, and reports signed monthly usage heartbeats for invoice true-up.