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