← all work
CASE STUDY2024 – 2025· confidential — no public code· datatailr.com

dt.cubeExcel for billions of rows

The analyst UI for a C++/WASM grid that eats datasets Excel chokes on.

#2
of ~8 contributors
1M+
rows in the grid
8
feature panels
AI
SQL assistant

dt.cube is "Excel for billions of rows" — a spreadsheet UI over a C++ engine compiled to WebAssembly and streamed to a canvas. I was the #2 contributor of about eight, over a year on the project.

I owned the TypeScript facade that bridges React to the C++ engine — pivot, filter, SQL, data-source, theme, column-stats, and S3 browsing, all over the Emscripten API. On top I built a drag-and-drop pivot builder (three cross-linked sortable drop zones with per-column aggregation and datetime granularity, compiling to one engine pivot() call) and an AI assistant that builds a schema-aware prompt live from the engine, calls GPT-4o-mini in JSON mode, and drops the generated SQL onto the grid in one click.

The hard part

A clean contract across the JS/WASM boundary

The grid's speed comes from a C++ engine in WebAssembly, but every interaction has to cross the JS↔WASM boundary cheaply and safely. I made a 353-line TypeScript facade the single contract: React never touches the engine directly, and each capability — pivot, filter, SQL, stats — is one typed call over the Emscripten API. That boundary let the UI move fast while the native core stayed untouched.

Highlights

  • #2 contributor of about eight, over a year on the project.
  • Owned the TypeScript facade bridging React to the C++/WASM engine over the Emscripten API.
  • Built a drag-and-drop pivot builder: 3 cross-linked sortable drop zones, per-column aggregation, datetime granularity, compiling to one engine pivot() call.
  • Shipped an AI assistant that builds a schema-aware prompt from the live engine, calls GPT-4o-mini in JSON mode, and applies the SQL in one click.
  • Built the Playground shell — 8 feature panels as floating popovers over the canvas, gated by deployment feature flags.

Stack

React 18TypeScriptC++ (Emscripten/WASM)WebSocket streamingCanvas renderingOpenAI APIDuckDB / ODBCTauri