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.
One desktop app, Universal Office (Beta), with three editors — compatible with the formats you already use. One install gives you all three.
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 browserSpreadsheet compatible with .xlsx. Calculation engine, number formatting with locale fidelity, and lossless round-trip of the OOXML package.
Try it live in your browserThree architecture decisions other editors don't make.
The data model mirrors OOXML — no "pretty" abstraction that breaks compatibility. Parts and attributes not yet modeled are preserved byte for byte on save.
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.
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
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.
Embed the .docx editor as a Custom Element. Canvas rendering, full editing API, events, and a plugin system for custom inlines. Works offline.
Side-by-side comparison of two .docx files: automatic block alignment, word-by-word refinement, nested table diffing, and content-vs-format change distinction.
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.
Embed the .xlsx editor: canvas grid with Excel's look, inline editing, and a formula engine that recalculates on every edit.
<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>
Tested on real devices — editing, menus, the context menu, comparison and both themes, on desktop and on phones: