Skip to content
← Back to blog
·Mog Team

Introducing Mog: An Open-Source Spreadsheet Engine

announcementlaunch

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

bash
# Node.js SDK
npm install @mog-sdk/node
# Or clone the repo
git clone https://github.com/fundamental-research-labs/mog.git
cd mog && pnpm install

Check 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.