Reference

Vue-free advanced schema

Use advancedSchemaExtensions() on a server, validator or migration without Vue, React or browser globals.
import { getSchema } from '@tiptap/core'
import { advancedSchemaExtensions } from '@skaile/forge-editor/schema/advanced'

const schema = getSchema(advancedSchemaExtensions())
schema.nodeFromJSON(stored).check() // validate stored documents, run migrations, convert Yjs ↔ ProseMirror

advancedSchemaExtensions() is the node/mark set of the advanced editor in the exact order the browser editor uses: StarterKit (history off), StrikeX, media, transcript segment, Typed block family, mention/tag, the author and comment marks, BlockId and the node flags. It imports no Vue, React, Nuxt UI or browser globals and runs under plain Node; bun run check:editor-entries bundles it for Node and executes it, and compares the node/mark names, attributes and content expressions against a snapshot. Use @skaile/forge-editor/schema/simple for servers that only handle simple documents.

The package's collab server builds collabSchema() from this entry, or from the schema option when the host passes one (src/server/collab.ts, createCollabServer); a custom Hocuspocus server (e.g. for a plain-Vue or React app) does the same and sets the Collaboration field to default.

Copyright © 2026