Introducing Mog: An Open-Source Spreadsheet Engine
Spreadsheets are the most widely used data tool in the world, but the engines behind them are either proprietary or incomplete. If you want to embed a spreadsheet in your app, process XLSX files on a server, or build a data tool on spreadsheet primitives, your options are limited.
Today, we're open-sourcing Mog — a spreadsheet engine built from scratch in Rust.
Why build a new spreadsheet engine?
Most spreadsheet libraries solve one piece of the puzzle. Some handle formulas but not rendering. Some render a grid but can't parse XLSX files. Some work in the browser but not on a server. Mog is a single engine that covers the full stack.
What Mog is
A Rust compute core — 500+ Excel-compatible functions compiled to WebAssembly for browsers and N-API for Node.js. A custom bridge framework generates type-safe bindings for supported targets from a single annotated API.
CRDT-based collaboration — Built on Yrs (Rust port of Yjs). Every edit merges conflict-free, even offline. Cells are keyed by stable UUIDs, so concurrent structure changes compose correctly.
Canvas rendering — Every pixel drawn on HTML Canvas. A binary wire protocol streams viewport data from Rust with zero allocations per cell, enabling 60fps rendering.
Native file I/O — XLSX parsing and writing in Rust, client-side, no server needed.
Get started
# Node.js SDKnpm install @mog-sdk/node
# Or clone the repogit clone https://github.com/fundamental-research-labs/mog.gitcd mog && pnpm installCheck out the Getting Started guide or explore the API documentation.
What's next
See our public roadmap for what's coming. We're stabilizing the public API, building a self-hosted collaboration server.
Join the community
- GitHub — Star the repo, report issues, contribute
- Discord — Chat with the team and other developers
- Twitter — Follow for updates
We're building Mog in the open and welcome contributions. Check out the contributing guide to get started.