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.
| service | what for | per month |
|---|---|---|
| Vercel Hobby | Next.js hosting, serverless functions | $0 |
| Cloudflare Workers | 100k requests/day, Durable Objects included | $0 |
| Upstash Redis | Free tier, used by the cache lab where configured | $0 |
| Gemini Flash | Free tier, rate limited, used by the pipeline lab | $0 |
| Everything else | Runs 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