Dotvoid

A European solution

The editorial tool that
scales down as well
as up.

A collaborative editorial product from Dotvoid. For solo writers, daily desk, or a busy 400-reporter newsroom - same platform your workflow.

One product, any size

Same solution from one writer to hundreds.

Workflows are yours to define. Roles are yours to configure. Easily integrates with your systems. A solution that easily adapts to what your team needs.

Minimal workspace with a single monitor and keyboard on a wooden table by a window.

Solo

If you’re one

Run Draft → Published and ship. You are the admin, the editor, and the author. Real-time collaboration still earns its keep - offline reconciliation, version history, undo across sessions, and a snapshot before any AI operation runs.

Photo by Pedro Henrique Santos on Unsplash

Several editors at adjacent workstations facing computer monitors in a modern newsroom.

Newsroom

If you’re four hundred

Run Draft → Sub-edit → Legal → Categorise → Done → Schedule → Published, role-gate every transition, automatic AI on transitions where configured, and deliver document.usable snapshots into your CMS, your archive, or your search index through signed webhook calls.

Photo by Israel Andrade on Unsplash

Workflows

AI runs on transitions, not in a chat window.

Every document type has its own state machine. Each transition can be human-only, role-gated, confirm-prompted, version-bumped, or AI-transformed.

Editors at a row of computer workstations in an open-plan newsroom.
Photo by Israel Andrade on Unsplash
DraftTranslatedSub-editedLegal reviewPublishedTranslateSubmit for reviewSend to legalPublish
A working article workflow. The AI translation runs on the move out of Draft, legal review is human, the publish move bumps the version and signs a webhook on the way out.
DraftScheduledPublishedSchedulePublish
The smallest workflow for simple needs. A solo writer runs Draft to Published.

I rolled back a bad AI translation in one click and rewrote the lede by hand. The rest of the article was untouched. That’s the bit I wanted.

Sub-editor, weekly magazine
  • Per-doc-type state machines: article, planning item, newswire
  • Role-gated, confirm-prompted, version-bumping transitions
  • AI bound to a transition, never a sidebar chatbot
  • textPatch preserves marks; inputPath updates fields
  • Pre-AI snapshot on every operation, rollback in one click
  • Adapters: OpenAI, Anthropic, Mistral, OpenAI-compatible
Workflows in depth

Newswire

Wires arrive as drafts. Already sorted.

Reuters, TT, AP, and whatever else you subscribe to land as Draft documents in your queue, categorised by the AI on the way in.

Multiple people working at long wooden desks under industrial pendant lights.
Photo by Shridhar Gupta on Unsplash
Newswire · 4 new
auto-categorised
  • TT
    Regeringen lägger fram budgetreserv inför vintern
    Politics · Sweden2 min ago
  • Reuters
    Central bank holds rate; signals later cut path
    Economy6 min ago
  • AP
    Wildfires force evacuations in southern France
    World · Climate11 min ago
  • AFP
    Tennis: Stockholm Open draw released, seeded list
    Sport24 min ago
Wires land as Draft documents. The AI categoriser ran on arrival; by the time the desk editor opens the queue, each item is already on the right desk with a working category tag.

The wire used to be a separate inbox. Now it’s just my draft queue, already sorted. I shaved an hour off my morning.

Newswire editor, mid-size daily
  • Incoming feeds appear as Drafts, not a separate inbox
  • AI categoriser runs on arrival, before a human sees it
  • Pick up a wire and ship it through your normal workflow
  • Same transitions, role gates, and webhooks as any other doc
  • Swap the model per operation; tune the categoriser prompt
  • Promote, withhold, or cancel a wire item in one click
Newswire in depth

Collaboration

Two cursors in the headline field, not just the body.

Yjs and Awareness on every document type, every field. Headlines, bylines, planning items, newswire items - all collaborative, all CRDT-native.

Two colleagues working together in a bright open-plan office.
Photo by Vitaly Gariev on Unsplash
Planning item·
ABC3 editing
synced
Headline
Cabinet reshuffle expected ahead of Thursday vote
Summary
Two cabinet members are expected to step down. Coverage from the
Publication slot
Front · Politics · 18:30 CETCara editing
Headlines, summaries, planning slots - every field is a Y.Text. Two cursors in the headline is the same primitive as two cursors in the body.

I’m one person and a Postgres. Real-time collaboration sounded like overkill until I started writing with an editor twice a month.

Solo newsletter operator
  • Yjs CRDTs on every document type, not only articles
  • Awareness in every field, including headlines and meta
  • Cursors, presence, and per-user undo across sessions
  • Offline edits reconcile cleanly when you come back
  • Built on Textbit, our open-source editor
  • Try four live editors on the Textbit page
Collaboration in depth

Integrations

Signed webhooks out, your AI in, your infra underneath.

HMAC-SHA256 signed webhooks on the events you subscribe to. Bring your own OpenAI-compatible model. Self-host the whole thing if you want.

A focused worker at a desk with a laptop, natural daylight.
Photo by Sigmund on Unsplash
AI operation

Translate article

Bound to the Translate transition on every article workflow.

usable
Connector
OpenAI · gpt-5
Applies to
core/article
Instructions
Translate the article body into the target language. Preserve inline marks and core/link nodes verbatim. Reference user input via `userInputs.targetLanguage`.
User input
SwedishDanishNorwegian+ 5 more
Output targets
textPatchpatchescontent.text
inputPathtargetLanguagemeta.lang
One operation, declared once, bound to any transition. The user picks the language at trigger time; the operation writes the translated text and updates meta.lang in the same atomic step.
Webhook
POST https://crm.example.com/hooks/void0
Subscribes to
document.usabledocument.cancelleddocument.translated
Signed with
X-Void-Signature: sha256=…
↓ fires
// Your endpoint receives: { "type": "document.usable", "tenantId": "newsroom-1", "documentId": "a3e1...", "version": 4, "actor": { "kind": "user", "email": "..." }, "snapshot": { "title": "Cabinet reshuffle", "meta": { "lang": "sv" } } }
Workflows already know when something interesting happens. Webhooks let you forward those events anywhere - CRM, search index, Slack, your publishing pipeline.

We verify X-Void-Signature on the way in and trust the snapshot. Our archive finally matches what went out.

Engineering lead, regional publisher
  • HMAC-SHA256 signed webhooks, header X-Void-Signature
  • Subscribe per webhook per event, not all-or-nothing
  • document.usable payload includes the snapshot
  • AI adapters: OpenAI, Anthropic, Mistral, OpenAI-compatible
  • Textbit editor is open source at github.com/dotvoid/textbit
  • Self-host on a VPS or a cluster, or run managed
Integrations in depth

Shapes it takes

Newsletters, newsrooms, and everything between.

Same product, configured differently. A few of the shapes Void0 already takes.

  • A one-person newsletter

    Hosted on a single VPS. Draft to Published. The collaboration layer is dormant until you let someone in.

  • A weekly regional paper

    Three writers and a sub-editor. Two role-gated transitions. A signed webhook to the print pre-press system.

  • A daily newsroom of thirty

    A wire feed, a planning desk, an article workflow, and a categoriser keeping the right desk on the right story.

  • A public-service broadcaster

    Four hundred reporters. Legal gate before Schedule. Translation on the way to Done. Snapshots in every webhook.

  • A newswire agency

    Producing content for every shape above. Per-customer webhooks. The schema stays yours.

Read the code

Textbit is open source. Read it before you trust it.

Our editor lives at github.com/dotvoid/textbit. The docs explain workflows, AI operations, webhooks, and self-hosting in plain English. We don't expect you to take a sales call to find out how the product works.

Start writing

Make a document. See where it goes.

Register, define one workflow, write one draft. You'll know in ten minutes whether Dotvoid fits.

Quotes attributed to roles on this page are illustrative placeholders while we collect real ones - they describe how the product is meant to feel in use, not specific customers.