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
Key metrics
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 capture is planned: two people chatting, reacting and drawing together.
Key metrics
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 capture is planned: two bandmates in a private room.
Key metrics
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 capture is planned: planning a tour stop and checking the public calendar.
Key metrics
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 capture is planned: two bandmates editing one pattern.
Key metrics
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 capture is planned: two editors designing one poster.
Key metrics
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 capture is planned: browsing albums and sharing a playlist.
Key metrics
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 capture is planned: uploading and browsing files.
Key metrics
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 capture is planned: checkout and the live stock console.
Key metrics
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 capture is planned: one agent conversation with a tool call.
Key metrics
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
A board UI for this workload does not exist yet. The walkthrough follows once it does.
Key metrics
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 capture is planned: sign-in, team setup and a bulk release import.
Key metrics
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
This example has no UI yet, so there is nothing to record.
Key metrics
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
This example has no UI yet, so there is nothing to record.
Key metrics
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…