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>Seventy 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
Five page types. One tree.
Switch a document's type — Kanban, Table, Calendar, Gallery, Outline — 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.
pnpm add @abraca/nuxtnpm i @abraca/nuxtyarn add @abraca/nuxtbun add @abraca/nuxtNuxt 4
module
Vue 3
composition
TipTap 2
editor
Yjs 13+
CRDT
Your turn to build.
<AProvider>. Ship the magic.