Skip to the demos
Home
COLOPHON

How this is built

A site that asks you to trust its numbers should be willing to show its own workings.

your browser
  • sk-grid — hand-written virtualization in a custom element with Shadow DOM
  • Redux Toolkit + RTK Query — paging, caching, delta application
  • pdf.js — reads the text layer out of PDFs
  • Tesseract compiled to WebAssembly — OCR, downloaded only when a page needs it
  • PGlite — PostgreSQL 18 compiled to WebAssembly, schema and policies and planner
  • Performance observers — every number in the telemetry strip

Everything here costs nothing to serve and never leaves your machine.

vercel
  • The pages themselves, prerendered
  • /api/assets — dual-mode pagination over a generated 100,000-row table
  • /api/cache — the caching architecture and its inspector
  • /api/pipeline — LLM extraction and schema validation, streamed as server-sent events

Next.js on the Hobby plan. Static where possible; dynamic only where state demands it.

cloudflare
  • Room state, owned by a single authoritative instance
  • WebSocket hibernation — an idle room is evicted and costs nothing
  • The op log that repairs a client which has drifted

A Worker with one Durable Object per room, on the free plan.

COST

What it costs to run

Every claim on this site is meant to be checkable, including this one.

Monthly running cost by service
servicewhat forper month
Vercel HobbyNext.js hosting, serverless functions$0
Cloudflare Workers100k requests/day, Durable Objects included$0
Upstash RedisFree tier, used by the cache lab where configured$0
Gemini FlashFree tier, rate limited, used by the pipeline lab$0
Everything elseRuns in the visitor's browser$0
NOTES

What is real and what is generated

The demos are running systems, but not every byte in them came from a customer. Here is exactly which is which.

  • The inventory in the grid lab is synthetic — rows are a pure function of their index, which is how one endpoint can serve any window of a 100,000-row table without storing one.
  • The schema lab's data is seeded, but the database, the policies and the query planner are real.
  • Where no Redis is configured, the cache lab falls back to an in-process map and says so in the panel. On serverless that is genuinely unreliable, which is the point.
  • Where no model key is configured, the pipeline falls back to a deterministic extractor and labels itself as the fallback everywhere its output appears.
  • Timings are measured, not typed in. Anything that cannot be measured in your browser renders as an em dash rather than a plausible-looking number.

build dev · · production