Sheetwrite

Canvas spreadsheet engine · Rust/WASM core · MIT

Build web spreadsheets you still own.

Sheetwrite is a canvas spreadsheet engine with a Rust/WASM data core and first-party Vanilla, React, Vue, and Svelte adapters. Your application owns the document, the persistence, and the chrome — the engine owns the speed.

sheetwriteruntime contract
MIT
document
owned by your application — lifecycle, persistence, and product UI stay in your codebase
engine
Rust/WASM columnar core — formulas, query scans, packed render windows
rows
1,000,000 paged through a Worker host, with measured evidence
sync
durable IndexedDB commits and one shared collaboration protocol
xlsx
optional — @sheetwrite/xlsx workbook and table backends
adapters
first-party Vanilla, React, Vue, and Svelte
TypeScript · Rustevery line has a live showcase below

Protocol evidence

Measured, not promised

Median speedups over Handsontable, rendered straight from checked-in protocol artifacts. The gap widens as the data grows.

  • 1k rows7.2× faster
    median of 14 interactions · best 96.7× in scroll-right.top-left
  • 10k rows10.7× faster
    median of 14 interactions · best 111.3× in scroll-right.top-left
  • 100k rows26.3× faster
    median of 14 interactions · best 201.2× in scroll-right.top-left
  • 1M rows130.3× faster
    median of 12 interactions · best 1522.2× in scroll-smooth.same-window · Handsontable did not finish 2 of 14
Bar length maps the median speedup on a shared log scale — ×1 would be parity.

Correctness checkpoints guard every interaction, and failures are recorded as failures. Read the full protocol.

Capability showcases

Evaluate by capability, not by demo.

Every public capability has one owning live showcase, a required interaction, and an executable browser contract. Browse the full capability index →

  1. 01Database & documentsReal IndexedDB commits, conflict recovery, and compaction.Open the live scenario →
  2. 02InteroperabilityXLSX and CSV/TSV exchange with honest fidelity boundaries.Open the live scenario →
  3. 03Performance & scaleA million paged rows with measured Worker evidence.Open the live scenario →
  4. 04CollaborationTwo live clients converging through one shared protocol.Open the live scenario →

Framework adapters

One engine, four first-party mounts

The same engine mounts four ways — every workbench is a bounded, directly editable product story.

Runtime contract

The ownership line is explicit

  1. 01 · Host

    You own the product.

    Lifecycle, persistence, collaboration, and product UI stay in your codebase.

  2. 02 · TypeScript core

    One narrow seam.

    Grid API, transactions, virtualization, interaction, and renderer coordination — ownership crosses in one place.

  3. 03 · Rust / WASM

    The engine owns the speed.

    Columnar cells, formulas, query scans, snapshots, and packed render windows.

Read the runtime-ownership model →