Skip to content

docs.plus 2.1.0

Choose a tag to compare

@HMarzban HMarzban released this 13 Oct 11:50
· 124 commits to main since this release
docs.plus 2.1.0: a pad with the Find bar, an AI app card, a QR code and a voice note, above the release numbers

docs.plus 2.1.0 is here: your AI app can now work in your documents, and docs.plus tells you when others edit. docs.plus is an open-source editor where every heading has its own chat. If you write and read on docs.plus, nothing breaks.

📊 43 days in numbers

🔨 559 commits about 13 a day since 2.0.1
✅ 136 issues closed 71 bugs and 33 security fixes among them
✨ 102 feature commits, 218 fix commits plus 93 commits that improve the docs
🧪 1,216 tests pass 851 server tests and 365 webapp unit tests, with 65 new test files
🗄️ 31 database migrations 28 for Supabase and 3 for the document server, all live on docs.plus
🧩 5 extensions, 1 version the first family release on npm

All of it is open source and built in public. Try it on docs.plus.

🚀 The big three

  • 🤖 You can now work with docs.plus from your AI app. Connect Claude, ChatGPT, Claude Code, Codex or another MCP app to find, read and create documents, and to read and post chat. It edits only the documents you own, and it never changes a heading or removes media.
    • Settings → Connected apps shows each app, and Disconnect ends its access. A version that an app wrote carries a Connected app badge in History.
  • 📬 You no longer miss what changed. Turn on email in Settings → Notifications and follow a document. docs.plus then emails you the added and removed words under each changed heading. You get no mail for edits you saw live.
    • View in the notification list opens History, with compare from Last left to the newest version.
  • 🎙️ You can now send a voice note by letting go of the mic. On a phone, hold the mic to record. Slide up to lock, or slide left to cancel.
    • Play chat audio with a waveform, seek, and 1×, 1.5× or 2× speed. Starting one clip pauses the others.

🔍 Find and share

  • 🔎 You can now find text in a floating Find bar. Press ⌘+F or Ctrl+F, and Find in document floats at the top right of the document. It shows a count such as "3 of 12", with Previous and Next buttons.
    • ⌘+G, ⇧+⌘+G and F3 step through matches. A short selection fills in the query.
    • Find opens a folded section to show a match, then folds it back.
    • On a phone, Find is a docked row, and the outline drawer offers it too. (#393)
  • 📱 You can now share a document with a QR code. Open Share, and a phone opens the document with one scan. Click the code for a full-screen Present view for a projector, with a dark background for a dark room.
    • The card now shares a clean link that holds no heading, chat or Filter state. A Private document shows no code.
    • The access line says "Anyone with the link can edit" unless the document is Read-only or Private. The owner sees Change beside it.
    • Copy link, your system share sheet and Facebook, X, LinkedIn, WhatsApp, Reddit and Email sit in the same card.
  • 🖥️ You can now keep the QR code on the desktop pad. A toolbar toggle after Filter shows it in a card, and any reader can use it. Drag the card's corner to size the code from 128 px to 1024 px, for a meeting room or a class.

⚡ Faster every day

  • ⌨️ You can now insert and jump from the keyboard. Type / on an empty line to insert a block. Press ⌘+⇧+K to jump to a place or a document.
  • 💬 You can now give docked chat the full pad width. Drag the desktop outline narrow, and it folds into a 32 px tick rail. Drag docked chat's top edge down to close it.
  • 🗂️ You can now see all your documents in one list. It shows the documents you own and the ones you joined, and Home shows your recent ones. Pin favorites, sort by Last opened, and see each document's first page on its grid tile.
  • 🕰️ You can now load History 50 versions at a time. Version compare now shows bold, link and heading-level edits.
  • 📲 The installed app now does more. It shows an unread count on its icon where your browser supports it. You can share a Word or Markdown file into it from another app, and an export opens a save picker.
    • Home now has an Install app button.
  • 🔄 You can now change a setting once and see it everywhere. A saved setting shows in every open tab and on every device where you are signed in. The theme stays per browser.
  • ⚙️ Editors no longer resend unchanged cursor updates. In a 40-client test, WebSocket CPU fell from 33% to 3% per replica.

🎨 A calmer, clearer UI

  • One look everywhere. The editor toolbar, popovers, outline and History share one look. Sign-in, consent and error pages share one card, and every confirmation uses one dialog, with Cancel first.
    • Menus and phone sheets behave the same. Shift+F10 or the Menu key opens the outline and chat menus.
  • Headings that read right. In a section, headings of one level share one size, from 24pt down to 14pt. Paragraphs sit closer, so a section reads as one block.
  • A quieter page. An empty line's hint shows only its heading chain, in one grey that passes 4.5:1 contrast in every theme.
  • Small things that add up. The heading chat button shows while you hover its section. Outline rows line up, and Clear formatting keeps your headings and links.
    • The link form focuses its URL field, and Backspace joins two split lists.
  • No more jumping on load. Loading screens match the page they turn into, so nothing moves when your content arrives.

🔔 Things that work again

  • Push reaches Chrome, Android, Edge, Brave and Opera again. These browsers got no push from 2026-08-09. (#398, #417)
  • A chat push or notification now opens the exact message, even when it is in another document.

🔒 Safer by default

  • A Private document's chat now opens only for its owner.
  • Chat messages and channels can no longer be changed by people who should not change them.
  • Files in Trash are no longer served, and server errors no longer show database text.
  • An AI app's token works only on the MCP server. It cannot reach database tables, Storage or Realtime.

That is 33 security issues closed in this release.

🛠️ If you self-host, read this first

Email now needs an explicit provider. Before you deploy:

Set this Why
EMAIL_PROVIDER (resend or smtp) and EMAIL_FROM Without them, mail does not send.
EMAIL_UNSUBSCRIBE_SECRET (at least 32 characters) Without it, unsubscribe links do not work.

SendGrid is removed; use its SMTP relay with EMAIL_PROVIDER=smtp. GET /health/push is gone, and GET /api/email/health returns status only. The admin dashboard has an Email setup page that names each problem and sends a test mail to you.

Follow the hocuspocus Migration in order. It covers the two Supabase migrations that wait until later and the Private-chat backfill. The self-hosting guide now has backup, restore and upgrade steps too. The new MCP guide shows how to connect an AI app.

🧩 Extensions: one family, one version

Package What you get in 2.1.0
@docs.plus/extension-hyperlink Typing at a link edge stays plain, and pasted content can no longer style a link
@docs.plus/extension-hypermultimedia A corner drag keeps the aspect ratio, one key press never deletes media, and the … menu works from the keyboard
@docs.plus/extension-inline-code Loads on Safari versions without lookbehind
@docs.plus/extension-indent No behaviour change; aligned to the family
@docs.plus/extension-placeholder No behaviour change; aligned to the family

All five ship 2.1.0 together, so any two of them at the same version were tested together. Each README now opens with an Open in StackBlitz example. The Tiptap peer floor rises to ^3.31.3. In hyperlink, set a link class with the HTMLAttributes.class option. In hypermultimedia, the … menu rows now use aria-checked.

npm install @docs.plus/extension-hyperlink@2.1.0

Also works with pnpm add, yarn add and bun add.

🤯 The surprise

While wiring the new sign-in mail, we found that email sign-in on our server could send only 2 mails an hour, to the whole world. The built-in sender was never meant for production, and nobody had noticed. It now sends through Resend, with room for 100 an hour. New accounts also get a branded Confirm signup mail. If you self-host, the Sign-in mail section shows the setting to check.


Full details: CHANGELOG.md · webapp · hocuspocus