One tree. Every surface.
Three lines. You're live.
Install. Add the module. Wrap your app. Every collaboration primitive auto-imports — components, composables, server runners.
- Zero boilerplate — auto-imports light up on install.
- Toggle features: editor, search, renderers, sync.
- Nitro service account for server-side runners.
- SSR-friendly with doc-tree cache on the edge.
<AProvider>A hundred composables, auto-imported.
Every collaboration primitive is one function call away — no manual imports, no plumbing. Editor, auth, sync, search, voice, files — all reactive.
- Auto-imported via Nuxt's compiler magic.
- All reactive — Y.Doc → ref in one line.
- Scoped per-document, per-field, per-peer.
- Tree-shakable — features you don't use compile away.
Components that know who's touching them.
Drop-in aware primitives broadcast hover, focus, press, and typing to every connected peer. Field-level presence, zero config.
- Hover halos show who's inspecting what.
- Focus rings reveal who's editing which field.
- Typing indicators travel with keystrokes.
- Built on the server's awareness frame — no extra wire.
<AButton><AInput><ATextarea>useAAField('save-btn') → { hoveredBy, pressedBy, focusedBy }TipTap with carets included.
Full rich-text editor with collaboration caret, awareness, drag handles, slash commands, and 30+ extensions — one composable.
- Colored carets + name pills for every peer.
- Selection highlights travel with each user.
- Slash menu, mentions, emoji — plug-in extensible.
- Conflict-free merge through Yjs CRDT.
AliceReal-time collaboration,
rendered by TipTap with
presence, carets, and comments.Yuki
Fifteen page types. One tree.
Switch a document's type — Kanban, Table, Calendar, Gallery, Outline and ten more — and the same children render as cards, rows, events, tiles, or bullets.
- Change
meta.type, render flips instantly. - Same children — no data copy, no migration.
- Register custom page types via plugins.
- Every renderer is awareness-enabled.
"kanban"Extend everything.
One plugin object can add TipTap extensions, toolbar groups, slash commands, page types, and server-side runners. All typed, all hot-reloadable.
- One interface — `AbracadabraPlugin`.
- Fully typed — auto-complete in your editor.
- Hot-reload in dev; lazy-load in prod.
- Server runners extend Nitro via the same plugin.
Yjs in, real-time out.
The provider wraps any Y.Doc, persists every update to IndexedDB, speaks Hocuspocus V2 to the server, and resolves your effective role — all from one constructor.
- Framework-agnostic — React, Vue, Svelte, vanilla.
- IndexedDB persistence — every update queued offline.
- Subdocument tree — lazy or eager loading.
- Effective role cached locally for offline gating.
Your docs, now AI-native.
The MCP server exposes every doc, space, and chat channel to your AI coding agent, your terminal, and any MCP client. One command, and your AI agent is in the tree.
- Works with any Model Context Protocol client.
- 40+ tools — read, write, search, chat, upload.
- Inherits your user role — no bypass.
- Awareness-aware — the agent shows up as a peer.
Install anywhere.
@abraca/dabra
The framework-agnostic core SDK — provider, client and CRDT sync for React, Vue, Svelte or vanilla JS.
pnpm add @abraca/dabra @abraca/nuxt
First-class Nuxt 4 module: auto-imported composables, components and SSR-friendly doc rendering.
pnpm add @abraca/nuxt @abraca/mcp
MCP server that lets AI agents read and write your docs, spaces and chat as real users.
pnpm add @abraca/mcp @abraca/schema
The universal document-metadata and page-type registry shared across every client.
pnpm add @abraca/schema @abraca/convert
Loss-free conversion between documents and Markdown, HTML and JSON fragments.
pnpm add @abraca/convert Your turn to build.
<AProvider>. Ship the magic.