Open-source WYSIWYG DOCX editor for the browser. No server required. Live demo
- WYSIWYG editing with Word fidelity — formatting, tables, images, hyperlinks
- Track changes (suggestion mode) with accept/reject
- Comments with replies, resolve/reopen, scroll-to-highlight
- Plugin system, undo/redo, find & replace, print preview
- Client-side only, zero server dependencies
npm install @eigenpal/docx-js-editorimport { useRef } from 'react';
import { DocxEditor, type DocxEditorRef } from '@eigenpal/docx-js-editor';
import '@eigenpal/docx-js-editor/styles.css';
function Editor({ file }: { file: ArrayBuffer }) {
const editorRef = useRef<DocxEditorRef>(null);
return <DocxEditor ref={editorRef} documentBuffer={file} onChange={() => {}} />;
}Next.js / SSR: Use dynamic import — the editor requires the DOM.
| Package | Description |
|---|---|
@eigenpal/docx-js-editor |
React UI — toolbar, paged editor, plugins. Install this one. |
@eigenpal/docx-core |
Framework-agnostic core — parsing, ProseMirror, layout engine |
@eigenpal/docx-editor-vue |
Vue.js scaffold — contributions welcome |
import { DocxEditor, PluginHost, templatePlugin } from '@eigenpal/docx-js-editor';
<PluginHost plugins={[templatePlugin]}>
<DocxEditor documentBuffer={file} />
</PluginHost>;See docs/PLUGINS.md for the full plugin API.
bun install
bun run dev # localhost:5173
bun run build
bun run typecheckExamples: Vite | Next.js | Remix | Astro | Vue
Props & Ref Methods | Plugins | Architecture
MIT