About Mog
Mog is an open-source spreadsheet engine built from scratch in Rust. It compiles to WebAssembly for browsers, N-API for Node.js, and spreadsheet experience anywhere, or process XLSX files server-side without Excel.
Why build a new spreadsheet engine?
Spreadsheets are the most widely used data tool in the world, but the engines behind them are either proprietary (Excel, Sheets) or incomplete (open-source libraries that handle formulas but not rendering, or rendering but not formulas). Developers building spreadsheet-powered products have to stitch together multiple libraries — and still miss features.
Mog is a single engine that covers the full stack. Formula evaluation, dependency graph recalculation, number formatting, conditional formatting, pivot tables, XLSX file parsing, canvas rendering, and CRDT collaboration — all written in Rust with a unified API across platforms.
Rust, not JavaScript. The compute core is written in Rust and compiles to WebAssembly for browsers (runs in a Web Worker to keep the main thread free), native N-API bindings for Node.js (no WASM overhead). A custom bridge framework generates type-safe bindings for supported targets from a single annotated Rust API.
CRDTs, not OT. Mog uses Yrs (Rust port of Yjs) for collaboration. Every edit merges conflict-free, even offline. Cells are keyed by stable UUIDs — not positions — so concurrent structure changes (two users inserting columns simultaneously) compose correctly under the CRDT.
Canvas, not DOM. Every pixel is drawn on HTML Canvas, the same approach used by Excel and Sheets. Viewport data is streamed from Rust as a compact binary buffer — the renderer reads cell values directly via DataView with zero allocations per cell.
How Mog compares
Mog vs. existing spreadsheet tools and libraries.
| Feature | Mog | Traditional tools |
|---|---|---|
| Compute engine | Rust compiled to WebAssembly — native speed in the browser | JavaScript-based formula evaluation |
| Formula coverage | 500+ Excel-compatible functions, fully tested in Rust | Partial coverage, varies by platform |
| Rendering | Canvas-based with spatial indexing and binary wire protocol | DOM-based (most web spreadsheets) or proprietary |
| Collaboration | CRDTs (Yrs/Yjs) — conflict-free, works offline | Operational Transform (requires central server) or last-write-wins |
| File I/O | Native Rust XLSX parser and writer, client-side, no server needed | Server-side conversion or limited client-side parsing |
| Programmability | Full SDK for Node.js and browser with unified Workbook/Worksheet API | VBA (Excel), Apps Script (Sheets), or limited scripting |
| Deployment | Embed anywhere — browser via WASM or server via N-API | Standalone desktop app or cloud-only SaaS |
Frequently asked questions
What is Mog?
Mog is an open-source spreadsheet engine. The compute core is written in Rust and compiles to WebAssembly for browsers and N-API for Node.js. It includes 500+ Excel-compatible functions, CRDT-based collaboration, canvas rendering, and native XLSX file I/O.
How does Mog compare to Microsoft Excel?
Mog implements 500+ Excel-compatible functions and supports native XLSX parsing and writing, so your existing files work out of the box. Unlike Excel, Mog runs in the browser via WebAssembly, offers CRDT-based collaboration (no central server required), and provides a full programmatic SDK. Mog is an engine you embed in your own apps — not a standalone desktop application.
How does Mog compare to Google Sheets?
Both offer real-time collaboration, but Mog uses CRDTs for conflict-free merging (even offline), while Sheets uses Operational Transform. Mog's Rust compute engine runs at native speed via WebAssembly, versus Sheets' JavaScript engine. Mog renders on Canvas for better large-dataset performance, and all computation happens client-side — your data never leaves the browser.
How does Mog compare to other spreadsheet libraries?
Most spreadsheet libraries are either UI components with limited computation, or formula engines without rendering. Mog is a complete engine — formulas, rendering, file I/O, collaboration — written in Rust for performance, with SDKs for every major platform.
What platforms does Mog support?
Browser (WebAssembly), Node.js (native N-API bindings for macOS, Linux, and Windows), and desktop (Tauri). The same Rust compute core powers all supported targets.
Is Mog open source?
Yes. Mog is open source under the MIT license. The full source code is available on GitHub. See the contributing guide to get involved.
Can I embed Mog in my own app?
Yes. The public @mog-sdk/spreadsheet-app package provides the full spreadsheet app shell for trusted hosts. The live demo on sheetmog.ai uses it with the formula bar enabled.
Is Mog production-ready?
Mog is published as a pre-stable SDK. The core engine (formulas, rendering, XLSX parsing) is functional, and we're stabilizing the public API and expanding test coverage before a 1.0 release. Check the roadmap for the current status.