| Region | Jan | Feb | Mar | Total |
|---|
Each capability is plain text in your .grid file. Diff it. Review it. Hand it to an LLM.
SUM, VLOOKUP, SUMIF, PIVOT, IF — author them the way you already know. Cross-sheet refs (sales!B2) supported.
Bar, line, pie, scatter, area, stacked bar, heatmap, sparkline, color scale — written as chart: bar blocks, rendered as inline SVG.
Write a transform(df) in either language. Python runs in a sandbox; JS runs in a Node vm. Set engine: javascript in meta.
@sourceLoad from URLs, JSON, CSV, XLSX — with caching, header injection, JSON path drilling, and inline fallback rows when the URL is denied.
Multiple browser tabs edit the same file at once. Convergence proven via Hybrid Logical Clocks + LWW per cell. No cloud needed.
{{ cell("B2") }} renders an editable cell. Edit in the preview → source rewrites → re-render. Comments and other cells preserved.
Import .xlsx with formula conversion. Export back with native Excel chart objects (Bar / Line / Pie). Or stick with .csv.
gridlang js-bundle packages a .grid into one runnable JS file — Node, browser, or Web Worker. No deps. Byte-identical.
An LLM can read, diff, edit, and explain a .grid file. Not a binary archive of XML pretending to be a spreadsheet.
Same job. Two very different shapes.
git diff works perfectlychart: bar blocksjs-bundle --browser → Web WorkerOpen the editor and the entire toolkit boots in your tab — no servers in the loop.
~10 MB Python + WebAssembly runtime, cached after first visit
pandas · numpy · jinja2 · openpyxl · xlsxwriter · pyyaml — all client-side
23 Python modules fetched from the manifest, mirrored into Pyodide's virtual FS
Live preview · cell-level editing · import .xlsx · export back · all 100% local
First load takes 15-30s while Pyodide warms up. Subsequent visits launch in seconds.