DOCX · RTF · TXT · Free · No Signup

Edit Word Documents
Online for Free

Open, edit, and save DOCX files in your browser. Full rich text editor with formatting, tables, and export.

📝

Drag & Drop your document here

Supports DOCX, DOC, TXT · Or create a new blank document

Open Document

Find: Replace:

Start typing or open a document...

Words: 0 · Chars: 0

Full-Featured DOCX Editor

All the essentials of a word processor — free, private, browser-based.

📝

Rich Text Editing

Bold, italic, underline, font size, color, highlight, superscript, subscript, and more.

📋

DOCX Import & Export

Open existing Word documents and save your edits back to DOCX format.

Tables & Lists

Insert tables, bulleted lists, numbered lists, and horizontal rules with one click.

🔍

Find & Replace

Find any text in your document and replace all occurrences instantly.

How It Works

Edit Documents in 3 Steps

1

Open or Create

Upload an existing DOCX/TXT file or start with a blank document.

2

Edit Content

Use the full-featured toolbar to format text, add tables, and more.

3

Save as DOCX

Download your finished document as a .docx file, ready for Word or Google Docs.

Frequently Asked Questions

Can I open any DOCX file?
Yes. DOCX files are opened using Mammoth.js which converts Word formatting to HTML for editing. Complex layouts may be simplified, but all text content is preserved.
Is my document private?
100% yes. Your file is loaded and processed entirely in your browser. It never touches any server or external service.
Can I export as PDF?
Use the browser print dialog (Ctrl/Cmd+P) and choose "Save as PDF" to export to PDF format.
Does it support images?
Yes — use the image insert button to add images from your device. They will be embedded in the document.
Trustpilot

📤 Share this tool

`); w.document.close(); w.focus(); w.print(); } function downloadTxt() { const text = docPage.innerText; const blob = new Blob([text], {type:'text/plain'}); const url = URL.createObjectURL(blob); const a = document.createElement('a');a.href=url;a.download='document.txt';a.click(); URL.revokeObjectURL(url); showToast('TXT downloaded'); } function downloadDocx() { try { const {Document, Packer, Paragraph, TextRun, HeadingLevel, Table, TableRow, TableCell, WidthType} = docx; const children = []; const elements = docPage.querySelectorAll('h1,h2,h3,p,li,blockquote,hr'); elements.forEach(el => { const tag = el.tagName.toLowerCase(); const text = el.innerText || ''; if(tag==='h1') children.push(new Paragraph({text,heading:HeadingLevel.HEADING_1})); else if(tag==='h2') children.push(new Paragraph({text,heading:HeadingLevel.HEADING_2})); else if(tag==='h3') children.push(new Paragraph({text,heading:HeadingLevel.HEADING_3})); else children.push(new Paragraph({children:[new TextRun(text)]})); }); if(children.length===0) children.push(new Paragraph({children:[new TextRun(docPage.innerText)]})); const doc = new Document({sections:[{properties:{},children}]}); Packer.toBlob(doc).then(blob=>{ const url=URL.createObjectURL(blob); const a=document.createElement('a');a.href=url;a.download='document.docx';a.click(); URL.revokeObjectURL(url); showToast('✅ DOCX downloaded!'); }); } catch(e) { console.error(e); showToast('Error creating DOCX'); } } // Word count docPage.addEventListener('input', updateWordCount); function updateWordCount() { const text = docPage.innerText; const words = text.trim().split(/\s+/).filter(Boolean).length; const chars = text.replace(/\s/g,'').length; document.getElementById('wordCount').textContent = words; document.getElementById('charCount').textContent = chars; } function toggleFaq(el){el.parentElement.classList.toggle('open');} function showToast(msg){const t=document.getElementById('toast');t.textContent=msg;t.classList.add('show');setTimeout(()=>t.classList.remove('show'),3000);}