Universal OfficeBeta

The Office suite,
faithful to the originals

Universal Office opens, edits, and saves .docx, .xlsx, and .pptx — with pagination, fonts, and formatting that match the reference application, and lossless round-trip on save. One desktop app for Windows, macOS, and Linux with the three editors, running fully offline — now in beta.

Download the app →
or try it live in your browser: Write Sheet Slides

What's inside

One desktop app, Universal Office (Beta), with three editors — compatible with the formats you already use. One install gives you all three.

Available

Universal Write Beta

Text editor compatible with .docx. Pagination identical to the reference app, full editing (styles, lists, tables, headers/footers, comments), and export to PDF, HTML, Markdown, ODT, and XPS.

Try it live in your browser
Available

Universal Sheet Beta

Spreadsheet compatible with .xlsx. Calculation engine, number formatting with locale fidelity, and lossless round-trip of the OOXML package.

Try it live in your browser
Available

Universal Slides Beta

Presentation editor compatible with .pptx. Layouts, masters, and faithful slide rendering.

Try it live in your browser

Why Universal Office?

Three architecture decisions other editors don't make.

Lossless round-trip

The data model mirrors OOXML — no "pretty" abstraction that breaks compatibility. Parts and attributes not yet modeled are preserved byte for byte on save.

Faithful rendering

A custom line breaker using real font metrics (TTF/OTF parsing). Every line break and glyph position replicates the reference app — the same pagination, every time.

Observed behavior, not guessed

Every editing operation is specified by automated experiments against the reference application: the resulting XML diff becomes a regression test, and the exported PDF becomes a pixel-by-pixel layout comparison.

Extra · for developers

Also available as web components

Prefer to embed the editor in your own product? Each one is also a standalone custom element — one HTML tag, one API, no backend. Full documentation and live examples. Open source, MIT license.

CI npm: @universal-office/write npm: @universal-office/sheet npm: @universal-office/slides NuGet: UniversalOffice.Docx License: MIT

Available

<universal-write>

Embed the .docx editor as a Custom Element. Canvas rendering, full editing API, events, and a plugin system for custom inlines. Works offline.

Available

<universal-write-diff>

Side-by-side comparison of two .docx files: automatic block alignment, word-by-word refinement, nested table diffing, and content-vs-format change distinction.

Available

<universal-document-viewer>

Read-only viewer for .docx and .doc with the editor's layout: Print, Read and Web views, outline, comments, thumbnails and a player-style control bar.

Available

<universal-sheet>

Embed the .xlsx editor: canvas grid with Excel's look, inline editing, and a formula engine that recalculates on every edit.

Available

<universal-slides-viewer>

Play .pptx and .ppt faithful to PowerPoint — transitions, animations, slide show and media — with a control bar like <video>.

Available

<universal-slides>

The .pptx editor built on the slides viewer: in-place text editing and fonts embedded on save.

<universal-write id="editor" src="/contract.docx" fonts="/fonts"></universal-write>

<script type="module">
  const editor = document.getElementById('editor');

  editor.addEventListener('uw-ready', () => editor.focusEditor());
  editor.addEventListener('uw-change', () => {
    const { pages, words } = editor.stats();
    console.log(`${pages} pages · ${words} words`);
  });

  // Save back as .docx, byte-compatible
  const bytes = await editor.save('docx');
</script>

Runs in the browsers you use

Tested on real devices — editing, menus, the context menu, comparison and both themes, on desktop and on phones:

Read the developer documentation →