TabTaskerTools
Skip to article
All articles

Tools & guides

The Complete Guide to Online Document Editors

Write, format, co-edit, and export real documents in a browser tab while they stay on your own device: the document model, why rich-text editing is hard, live CRDT collaboration, and faithful export.

TabTasker Team13 min read

Where do your words actually live?

You open a document, you write, you format a heading, you drop in a bullet list. It feels weightless. But pause on one question: where is that document, really? If you are writing in a typical cloud word processor, the answer is "on a company's servers." Every sentence you type, every draft of every idea, including the half-formed ones you delete, lives on infrastructure you do not own, governed by a policy you did not write.

For a grocery list, who cares. For a contract, a medical letter, a resignation, an unpublished manuscript, or a journal entry, that is a different feeling entirely. Writing is intimate. The first draft is where you are most honest and most exposed, and it is strange that the default is to compose it inside someone else's building.

There is another way: a full document editor that runs in your browser, formats text richly, exports to PDF and Markdown, even lets two people write together live, while the document stays on your own device. This guide explains how it works, from the everyday "just let me write" down to the document models, the famously hard problem of rich-text editing, and the collaboration algorithms that make a shared document possible. Read as far as you like.

If you want to try one, TabTasker's text workspace is a private, browser-based document editor with no account and no upload. The rest of this article is about what is happening as you type.

A browser document editor with a formatted page and toolbar

The everyday version: what is a browser document editor?

It is a word processor that lives in a web page. Three things make it worth using.

First, it is rich. Not a plain note, but real formatting, headings, bold and italic, lists, links, quotes, the structure that turns text into a document.

Second, it is portable. You are not locked into one company's file format. A good browser editor exports to the formats the rest of the world uses, PDF for sharing, Markdown for the web, HTML, plain text, so your writing goes wherever you need it.

Third, it is private and local. No account, no upload. The document is saved on your device and stays there. You can even write together with someone in real time without a server holding the document in the middle.

Here is the comparison.

Desktop word processorCloud editor (Google Docs)Browser editor
InstallYesNoNo
AccountSometimesYesNo
Where the document livesYour diskVendor serversYour browser, locally
Real-time co-editingRarelyYesYes, peer-to-peer
Export formatsManyManyPDF, Markdown, HTML, text
Works offlineYesLimitedYes, after first load
Private by defaultYesNoYes, nothing leaves

The pattern: a browser editor gives you the collaboration of a cloud editor and the privacy of a desktop one, with nothing to install. For most writing, especially writing you would rather keep to yourself, that is the better trade.

Who uses this, and when

A freelancer drafts a proposal or contract and would rather it not sit on a third party's servers before the client even sees it.

A journalist or researcher writes sensitive notes and needs them private by default, not synced to an account that could be subpoenaed or breached.

A student writes an essay, formats it, and exports a clean PDF to submit, with no software to buy or install.

A small team co-writes a document live, watching each other's cursors, without funneling the draft through a corporate platform.

Anyone who simply distrusts the cloud default for their first drafts, and wants a real editor that keeps their words on their own machine.

The common thread is private, structured writing: documents that deserve formatting and deserve to stay yours.

How it works, part one: rich-text editing is shockingly hard

Here is something most people never suspect: building a rich-text editor is one of the hardest problems in front-end engineering. Displaying formatted text is easy. Letting a human edit it, reliably, is a famous swamp.

The browser does offer a built-in way to make an element editable (the contenteditable attribute), but it is notoriously unpredictable. Left to its own devices, it produces messy, inconsistent markup, behaves differently across browsers, and turns simple operations (like "make this bold" or "merge these two list items") into edge-case minefields. Teams have spent years taming it.

The solution that modern editors converged on is to stop trusting the browser's idea of the document and keep their own. Libraries like ProseMirror (and TipTap, which builds on it) maintain a separate, strict document model: a structured tree that describes the document as data, not as HTML. A heading is a node. A paragraph is a node containing text nodes with formatting marks. A bullet list is a node containing list-item nodes. The visible page is just a rendering of this tree.

A document page on the left and its structured node tree on the right

This separation is the whole game. Every edit you make is not a poke at the messy HTML; it is a transaction that transforms the document tree from one valid state to another, according to a schema that defines what is allowed (a list item can contain paragraphs; a heading cannot contain a list; and so on). The schema makes invalid documents impossible to create. The transaction model makes every change precise, undoable, and inspectable.

Why go to all this trouble? Because a clean, structured model is what makes everything else possible: reliable undo and redo, correct copy and paste, consistent behavior across browsers, faithful export to other formats, and, crucially, real-time collaboration. The structured document is the foundation the whole editor stands on. It is the same lesson as a good codebase, get the data model right and the features follow; get it wrong and you fight the platform forever.

How it works, part two: writing together, live

Once the document is clean structured data, sharing it becomes tractable. Real-time co-editing, two or more people typing in the same document and seeing each other's changes instantly, is built on the same foundation as a shared whiteboard: a Conflict-free Replicated Data Type (CRDT).

The core problem is the same one any collaborative system faces: if you and a coauthor type into the same paragraph at the same moment, whose change wins, and how do both screens end up agreeing? A CRDT solves this by giving every character and edit enough identity (a unique id and a logical ordering) that any two copies of the document which have seen the same edits always converge to exactly the same result, no matter what order those edits arrived in. No central referee deciding the truth, the math guarantees everyone lands in the same place. The library Yjs provides this for text, and it is what lets a browser editor merge concurrent edits without scrambling the document.

On top of the document sits a lighter layer of presence: the colored cursors and text selections that show where each coauthor is. These caret positions are broadcast quickly and not saved, they are about the live feeling of writing together, not the document itself. And because all of this can travel over a direct peer-to-peer connection (the same kind that powers a browser video call), two people can co-write a document with the text flowing straight between their browsers, never resting on a server.

How it works, part three: exporting, and why the model pays off again

A document is only useful if you can get it out. Here the structured model earns its keep a second time. Because the editor holds the document as a clean tree rather than tangled HTML, it can transform that tree faithfully into whatever format you need.

One document exporting to PDF, Markdown, HTML, and text

To produce Markdown, it walks the tree and writes the Markdown equivalent of each node: a heading node becomes #, a bold mark becomes **, a list becomes dashes. To produce HTML, it emits clean, semantic tags. To produce a PDF, it does something more involved: it lays the content out onto fixed-size pages (A4, say), deciding where one page ends and the next begins, handling margins and page breaks, so the digital document becomes a paginated artifact ready to print or send. Plain text is the simplest projection of all, the tree stripped down to its words.

Each of these is a projection of the same underlying structure, which is exactly why they come out clean. An editor that only ever had messy HTML to work from would produce messy exports. A structured model produces faithful ones. Portability, the freedom to take your writing anywhere, is a direct dividend of getting the data model right, and it is what keeps your work from being trapped in any single tool. (We made the broader case for keeping your documents under your control in how to edit documents without compromising your privacy.)

How it works, part four: where the document lives

Because there is no server, the document is saved in the browser itself, in its local database, so your writing is there when you return, with no account and no sync to anyone's cloud. This is the quiet privacy win: your drafts, including every version you would never want anyone to see, simply never leave your machine. There is no upload to intercept, no server-side copy to retain, no policy to trust. The most private draft is the one that was never sent anywhere, the same principle behind why your files should never leave your browser.

The honest tradeoff mirrors the other browser apps: a cloud editor syncs your document across all your devices automatically and keeps a server-side backup. A local-first editor keeps the document where you wrote it, which is more private but means you move it between devices deliberately (via export, or a direct peer connection) rather than through an always-on account. For writing you want to keep close, that is a feature, not a limitation.

When a browser document editor is the right tool

Reach for it when you want to write something real and keep it private: a draft, a letter, an essay, notes, a proposal, anything where formatting matters and privacy matters more. It is also ideal for quick collaborative writing without onboarding everyone onto a platform, and for working on a machine where you cannot install software.

Be realistic about the edges. A browser editor is not aiming to replace a heavyweight word processor's most advanced features (deep reference management, complex multi-column layouts, decades of niche formatting controls) or the always-synced, always-backed-up convenience of a cloud suite for a large team's shared knowledge base. Its promise is sharper: a clean, capable, private editor for the writing you would rather not hand to anyone, that exports to wherever you need to go next.

Frequently asked questions

Do I need an account or an install? No. A browser document editor runs in any modern browser with no install, and a privacy-first one needs no account.

Where is my document stored? Locally, in your browser's own database. It persists across sessions and is not uploaded to any server.

Can I really co-edit with someone in real time? Yes. Using CRDT technology, two or more people can edit the same document and see each other's changes and cursors live, and the edits can travel directly between browsers rather than through a server.

What can I export to? Commonly PDF (laid out on real pages), Markdown, HTML, and plain text, so your writing is portable to wherever you need it.

Is my writing private? Yes. Because the document stays on your device and is not uploaded, your drafts never reach a third party. Even live collaboration can run peer-to-peer with no server holding the text.

Why is rich-text editing considered so hard? Because the browser's native editable element is inconsistent and messy. Good editors maintain their own strict document model and render from it, which is what makes editing, undo, paste, and export reliable.

Can I use it offline? Yes, after the first load the editor works without a connection, since it runs locally. Live collaboration needs a connection so edits can reach your coauthor.

The bigger picture

A document editor in a browser tab looks ordinary, but it rests on some genuinely hard engineering. It refuses the browser's unreliable editing and keeps its own structured model of the document, a schema-checked tree transformed by precise transactions. That model makes real-time collaboration possible through conflict-free data types, makes faithful export to PDF, Markdown, and HTML possible, and makes reliable editing possible at all. And because it all runs locally, the convenience of a modern editor no longer costs you the privacy of your words.

The deeper point is about where writing should live. The cloud made collaboration easy by making your drafts someone else's data. A browser editor shows you do not have to accept that bargain: you can have rich formatting, live coauthoring, and clean export while your document stays on your own device, seen only by the people you choose. Your words, your machine.

If you want a private place to write, open a document. The same browser-only, nothing-leaves approach powers real-time whiteboards, video calls, and in-browser code editors: your work, your device, no upload required.

Keep exploring.

Back to all articles