BetterOffice

BetterOffice

The open-source office suite. Word-faithful editing and real-time collaboration on engines we build ourselves — running entirely in your browser, by the OpenOOXML project.

01 Suite

One suite, four editors

DOCX, XLSX and PPTX editors are published on npm and render inside your app. The VSDX diagram editor is available from source.

DocumentsavailableWord-faithful editing: fonts, theme colors, styles, tables, headers & footers, tracked changes..docxdemo
SpreadsheetsavailableCalculation graph, grid rendering and number formats on the same shared core..xlsxdemo
SlidesavailableSlide model, masters and shape editing on the same shared core..pptxdemo
Diagramssource previewSource preview: edit diagrams with pan and zoom, update shape data in batches, and export to Word or PowerPoint through Rust. Controls the engine would refuse are disabled rather than offered..vsdxdemo

02 Packages

Ships as components, not iframes

The DOCX, XLSX and PPTX editors install from npm and render inside your app — no embeds, no external services, documents never leave the page. The same engines publish to crates.io for native Rust and to PyPI for Python.

See the package guide for supported runtimes and fonts, and release notes for version-specific changes.

@betteroffice/docxFramework-free .docx core — parsing, CRDT editing and page layout on the Rust engine, with version-checked atomic text, paragraph and content-control batches, content-control discovery, structured JSON and Markdown export with page references, document comparison into tracked changes, host proposals with reversible accept and reject previews, undoable reanchoring of existing comments, and font loading kept apart between editors on one page.npm guide
@betteroffice/docx-reactThe DOCX editor as a drop-in React component, with host-controlled saving, awaited input flushing, composable toolbar controls, version-checked edit batches, host proposals a read-only viewer can preview, host-owned plugins with explicitly granted access, content-control discovery, page-referenced structured export, and several editors per page.npm guide
@betteroffice/xlsxFramework-free spreadsheet core — parsing, calculation and rendering on the Rust engine, with version-checked atomic cell batches, anchored JSON and Markdown export, and opt-in operation timings.npm guide
@betteroffice/xlsx-reactThe spreadsheet editor as a drop-in React component, with composable toolbar controls, version-checked edit batches that flush pending input first, and host-owned plugins with explicitly granted access.npm guide
@betteroffice/pptxFramework-free slides core — parsing, editing and rendering on the Rust engine, with version-checked atomic edit batches, structured JSON and Markdown export with anchors, opt-in operation timings, manual undo boundaries, comment repositioning, and caret anchors.npm guide
@betteroffice/pptx-reactThe slides editor as a drop-in React component, with host-controlled saving, awaited input flushing, pointer position queries, composable toolbar controls, version-checked edit batches, and host-owned plugins with explicitly granted access.npm guide

JavaScriptnpm docs

$npm install @betteroffice/docx-react

Rustcrates.io docs

$cargo add betteroffice-docx

PythonPyPI docs

$pip install betteroffice-xlsx

03 Features

Office editing for people and agents

OpenOOXML's Rust engines power every BetterOffice editor, from opening and editing files to layout and rendering. The same engines run in your browser and in headless workflows.

  • Documents, spreadsheets, and slidesOpen, edit, render, and save DOCX, XLSX and PPTX files with high fidelity. Native OOXML editing preserves untouched file parts losslessly when round-tripping.
  • Agent editing with human reviewReview attributed agent edits through tracked changes, inline diffs, and before-and-after previews. Accept or reject changes directly in the editor.
  • Real-time collaborationPeople and agents edit the same file together, with live cursors and selections. Concurrent changes merge automatically, and offline edits sync when peers reconnect.
  • Undo and redoNavigate editing history and undo accepted agent proposals as a single step. DOCX hosts can set explicit boundaries and choose automatic or manual grouping.
  • Embed or automateDrop React editors into your app, build on the framework-free JavaScript cores, or use Rust and Python APIs for headless processing and agent workflows. DOCX paragraphs with saved Word IDs resolve to the same anchor after reopening. DOCX hosts can query pointer positions for drops and hover tools.
  • Open source and self-hostableApache-2.0 licensed, with control over your document storage, deployment, and collaboration infrastructure.

Try it out, or explore the docs for setup, APIs, and format support.

See how published releases and source builds compare with Microsoft Office in our visual fidelity results.

04 Collaboration

People and agents, one document

The document itself is a CRDT: every editor — every person, every AI agent — is a peer on the same data structure, and concurrent edits merge in the engine. Agents don't get a sidebar; they get a cursor, with the same undo and the same tracked-changes attribution as any co-author.

Collaboration guide

  • PeopleLive co-editing over any WebSocket relay. Offline edits converge on reconnect — merging is the data structure, not a server feature.
  • AgentsAn agent edits through the same operations as a person, and human review is suggesting mode — accept or reject tracked changes, not a diff dialog.