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, N-API for Node.js, and Python bindings via PyO3. A custom bridge framework generates type-safe bindings for every target 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/mog-project/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, expanding Python support, and 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.