Etherpad

Real-time collaborative document editor

Chat & Communication ★ 18.6k stars Medium setup Apache-2.0

Etherpad is a highly customizable, open-source online editor providing real-time collaborative editing of documents. It supports a rich plugin ecosystem for added functionality.

Key features

  • Real-time multi-user editing
  • Large plugin ecosystem
  • Document revision history
  • HTTP API for integration

Pros & cons

Strengths

  • Very mature and stable
  • Highly extensible

Trade-offs

  • Dated default UI
  • Plugins vary in quality

Etherpad replaces

Last reviewed Aug 26, 2026 · 697 words

Etherpad is for the meeting that is happening right now: a URL, 8 people typing, a colour per author, a timeline slider that scrubs back through every keystroke, and nothing to sign up for. It has done exactly that since 2011, which is why it runs conference note-taking, hackathon whiteboards and a good share of the free-software world's minutes, and why it looks like 2011. Do not judge it against Google Docs on layout; judge it on time-to-first-shared-sentence, where nothing on this site beats it.

Postgres from day one, because the default database is a JSON file

Out of the box Etherpad writes to DirtyDB, a single append-only JSON file that works for a demo and degrades badly with real use. Point it at Postgres before you share the first link:

services:
  etherpad:
    image: etherpad/etherpad
    ports:
      - "9001:9001"
    environment:
      - DB_TYPE=postgres
      - DB_HOST=db
      - DB_PORT=5432
      - DB_NAME=etherpad
      - DB_USER=etherpad
      - DB_PASS=change-me
      - ADMIN_PASSWORD=change-me-too
      - TRUST_PROXY=true
    restart: unless-stopped
  db:
    image: postgres:16
    environment:
      - POSTGRES_DB=etherpad
      - POSTGRES_USER=etherpad
      - POSTGRES_PASSWORD=change-me
    volumes:
      - ./pgdata:/var/lib/postgresql/data

Etherpad listens on 9001. Put a reverse proxy with TLS in front and keep TRUST_PROXY=true so it sees real client addresses and the websocket upgrade works. The one shared Postgres pattern suits it well, since its whole schema is a single key-value table. Memory sits around 200 MB idle and the catalogue's 512 MB is honest for a few dozen concurrent editors.

Pads are public by URL, and that is a decision you must make

By default anyone who knows https://pad.example.com/p/budget-2026 can read and edit it; that is the feature. For an internet-facing instance there are three options in ascending order of effort: keep pad names obscure and accept it (fine for throwaway notes), set requireAuthentication in settings.json with a users block so every pad needs a login, or put the whole thing behind SSO with Authentik using a forward-auth rule on the proxy and let Etherpad stay unaware. The admin UI at /admin uses ADMIN_PASSWORD and is where plugins get installed; do not expose it without a strong one.

The five plugins that make it a real editor

Stock Etherpad has bold, italic, lists, colours and the timeline. The plugin registry has hundreds of entries of wildly varying quality; these five go on every instance I run: ep_headings2 (headings), ep_align (alignment), ep_markdown (import and export as Markdown), ep_comments_page (margin comments) and ep_adminpads2 (a pad list in the admin UI, because otherwise you cannot see what exists). Install from /admin/plugins, restart, done. Skip anything last published years ago; the 2.x line changed the build system and old plugins break in ways that only show up in the browser console.

Where it loses, and what to use instead

Etherpad is plain text with light formatting. No tables, no inline images, no page layout, comments only via plugin, and export to PDF or DOCX only if you point settings.json at a LibreOffice binary. If you want a document rather than a pad, ONLYOFFICE or Collabora inside Nextcloud are the real Google Docs replacements. If you want Markdown with live preview, CodiMD does that better. If you want end-to-end encryption, CryptPad has a pad mode and its server never sees the text. Etherpad's edge is the realtime engine and the HTTP API: one call to the createPad endpoint gives you a pad from a script, which is why it embeds into so many other tools.

What I'd do

Etherpad on Postgres, TLS via a proxy, requireAuthentication off for a LAN instance and forward-auth on for a public one, the five plugins above, and a monthly image update. Use it for the live stuff: meeting minutes, incident channels, shared drafts under time pressure. Keep a real office suite for documents that must look like documents. It is the most dependable 15-year-old piece of software in this category and it will still be running when the shinier editors have pivoted.

Compare Etherpad

1 head-to-head comparisons.

Similar chat & communication apps