Real apps, measured on every merge

Each example lives in the Jazz repository, most of them as working apps. The numbers under it come from benchmarks of that same workload, run on CodSpeed as changes merge to main. We show the latest released numbers; hover any of them for how they changed across releases.

* Estimated times: CodSpeed wallclock medians divided by 5, a rough allowance for a typical modern machine being faster than the shared CI runner. This is illustrative, not a measured prediction for your hardware; every history card also shows the measured runner time.

Todos

Local-first basics: instant writes, live queries, shared across devices.

A React todo list with anonymous local-first identity and IndexedDB persistence. Every write lands locally first and syncs in the background; every device subscribed to the list sees it immediately. Row-level permissions let anyone read every todo, while only its owner may change or delete it.

  • Two devices add todos and see each other's changes live
  • Checking off your own todo syncs instantly
  • Trying to change someone else's todo is refused by the permission policy
  • Live filters are just queries: typing narrows the list as you type
Two independent browser profiles (separate storage and identities) syncing through a local Jazz server. Recorded automatically with Playwright from the example app.

Key metrics

Add a todo…Reading CodSpeed…
Check off a todo…Reading CodSpeed…
Bulk edit 1,350 todos…Reading CodSpeed…
Reopen with 1,500 todos…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

Chat

Rooms, invites, reactions and shared drawing canvases, synced live.

A React chat app with public rooms and private chats joined by invite code, emoji reactions and collaborative drawing canvases attached to a chat. Every message, reaction and stroke is a local write that Jazz replicates in the background; row-level policies in the schema decide who can read and change what, so components carry no auth logic.

  • Messages and reactions appear on every member's screen as they're sent
  • Join a private chat with its invite code
  • Draw together on a canvas attached to the chat
Walkthrough coming

Walkthrough capture is planned: two people chatting, reacting and drawing together.

Key metrics

Open a chat…Reading CodSpeed…
Send a message…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

BandChat

Private rooms with membership boundaries, attachments and fast resume.

A Next.js app with Better Auth sign-in, where a room's creator admits or removes members and only members can read or post. Messages carry inline attachments and are created local-first. Its benchmark covers the reads a chat does constantly: a room's timeline page, unread rooms by recent activity, one author's history, and resuming a caught-up client.

  • Create a room and admit a bandmate
  • Send a message with an inline attachment
  • Removing a member stops their later writes
Walkthrough coming

Walkthrough capture is planned: two bandmates in a private room.

Key metrics

Scroll back in a room…Reading CodSpeed…
Reconnect when up to date…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

World Tour

Tour management on a live globe: dates, venues and a public calendar.

A Vue app for planning a band's tour, with the schedule drawn on a dot-art globe. Members see the full calendar; the public sees confirmed dates only. Both are ordered, bounded three-week itinerary reads that include each stop's venue.

  • The tour's stops are drawn on the globe
  • Members see every date; the public calendar shows confirmed dates only
Walkthrough coming

Walkthrough capture is planned: planning a tour stop and checking the public calendar.

Key metrics

Open the public calendar…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

Wequencer

A collaborative step sequencer: many small subscriptions, many concurrent edits.

Bandmates edit a shared pattern together, watch its transport state and see who else is around. It makes hard local-first shapes concrete: an ordered, windowed step grid with many small subscriptions, concurrent edits to nearby and identical steps, and editor and viewer roles on one shared session.

  • Two bandmates toggle steps in the same pattern at once
  • Go offline, keep editing, and reconnect
  • A viewer's edit is refused
Walkthrough coming

Walkthrough capture is planned: two bandmates editing one pattern.

Key metrics

Open a pattern…Reading CodSpeed…
Toggle a pad…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

PosterShop

A collaborative gig-poster canvas with layers, shapes and live cursors.

The durable data a tldraw-like canvas needs, without tying it to a renderer: canvases, ordered layers, shapes, asset metadata and checkpoints. Layers, canvas, cursors, assets and checkpoints are independently subscribed, so a stream of cursor updates never re-runs the whole canvas query.

  • Two editors add shapes to the same canvas
  • Cursors move live without touching history
  • Offline edits replay to peers after reconnecting
Walkthrough coming

Walkthrough capture is planned: two editors designing one poster.

Key metrics

Open a poster…Reading CodSpeed…
Draw a shape…Reading CodSpeed…
A collaborator's cursor moves…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

RecordPlayer

Shared playlists over streamed audio, with listener and editor invitations.

Albums are browsed in a CoverFlow view and collected into shared playlists. Audio is uploaded as streamed bytes, and invitations grant listener or editor access to a playlist. Concurrent additions from two people converge on the same list.

  • Invite a friend to listen, or to edit
  • Two people add tracks to one playlist at once
  • Offline additions flush on reconnect
Walkthrough coming

Walkthrough capture is planned: browsing albums and sharing a playlist.

Key metrics

Open the library…Reading CodSpeed…
Open a long playlist…Reading CodSpeed…
Add a track…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

EpicDrop

A file browser for large binary values, streamed straight from the browser.

Uploads stream a browser File directly into Jazz, and a folder lists each file's name, type and size without loading any file contents. A cancelled upload publishes nothing, and a retry starts clean.

  • Drop a large file and watch it stream in
  • Browse a folder without downloading its files
Walkthrough coming

Walkthrough capture is planned: uploading and browsing files.

Key metrics

Upload a 4 MiB file…Reading CodSpeed…
List a folder…Reading CodSpeed…
Seek in a large file…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

Jamazon Warehouse

An operations console for an instrument store, shaped like TPC-C.

Warehouses, districts, stock, customers, orders and payments, with multi-row checkout, ordered and bounded operational reads, local-first retry, and an idempotent hand-off to external effects. Anyone can watch stock and orders; only a warehouse's operator can change them.

  • Place an order that reserves stock across several rows
  • Watch stock levels update live on the console
Walkthrough coming

Walkthrough capture is planned: checkout and the live stock console.

Key metrics

Check out…Reading CodSpeed…
Load pending orders…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

MusicAgent

An LLM agent transcript: streamed turns, tool calls and audio attachments.

A provider-free agent harness that records a conversation, streams a long assistant turn, logs tool invocations and keeps uploaded audio as bytes. A deterministic fake agent makes the whole flow run without an API key.

  • A long assistant reply streams in as it's written
  • Tool calls and attachments are part of the transcript
Walkthrough coming

Walkthrough capture is planned: one agent conversation with a tool call.

Key metrics

Stream a reply…Reading CodSpeed…
Open a conversation…Reading CodSpeed…
Reopen after a restart…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

Team task board

A permissioned project tracker with boards, task details, comments and activity.

The W1 workload models a team project tracker: users, projects, 3,000 tasks, 12,000 comments and 9,000 activity rows, with team-inherited read permissions. Its benchmarks time the reads a real board UI makes, and a dashboard that opens one overview plus many independently mounted lists at once.

  • Open a project board and a task's detail view
  • A dashboard mounts dozens of live lists at once
  • Another team's tasks are invisible, enforced by inherited permissions
Walkthrough coming

A board UI for this workload does not exist yet. The walkthrough follows once it does.

Key metrics

Open a project board…Reading CodSpeed…
Open a task…Reading CodSpeed…
Dashboard with 60 live lists…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

BigLabel

A multi-tenant record-label SaaS: organizations, teams, roles, artists and releases.

BigLabel is a Next.js app with Better Auth sign-in, where each organization manages its artists and releases under admin-checked membership policies. It exercises what SaaS apps do all day: tenant-scoped lists, relations, cold loads and bulk imports.

  • Sign in and land in your own organization
  • Invite teammates and assign roles
  • Import a catalogue of releases in bulk
Walkthrough coming

Walkthrough capture is planned: sign-in, team setup and a bulk release import.

Key metrics

Open a label's releases…Reading CodSpeed…
Import 10,000 releases…Reading CodSpeed…
Import 100,000 releases…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

Permissioned resources

A deep-permission resource catalogue synced onto a fresh device.

A synthetic catalogue with deeply inherited access rules, shaped like a real adopter's fixture. The benchmark brings a brand-new device from empty to a fully settled, permission-filtered view through a device-local persistence relay, with every row authorized by the server.

  • A fresh device signs in and syncs its visible slice
  • Access is inherited through parent resources
  • The view settles once every subscription is complete
Walkthrough coming

This example has no UI yet, so there is nothing to record.

Key metrics

First sync, 27,518 rows…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

Policy-scoped documents

What row-level security costs: the same page of documents with and without a policy.

100,000 documents owned by 100 people in 25 organizations. A user may read their own documents and those of organizations they were admitted to. The benchmarks load the first page of 50 documents with the policy and with an explicit allow-all policy, so the difference is the price of authorization.

  • Show my documents, newest first
  • Show my organization's documents
  • Keep the page live as documents change
Walkthrough coming

This example has no UI yet, so there is nothing to record.

Key metrics

Organization page, with policy…Reading CodSpeed…
Live organization page…Reading CodSpeed…
What it costs to runPlanned
Estimated hosting cost for this app at a given number of users, derived from these metrics.
Compared with alternativesPlanned
Metrics, cost and code size for the same app built on the closest competing stacks.

More benchmarks

Every other wallclock benchmark we track, grouped by the workload it belongs to. Hover, focus or tap a number for its history.

Reading CodSpeed…