velt-single-editor-mode-best-practices
Velt Single Editor Mode Best Practices
Comprehensive implementation guide for Velt's Single Editor Mode in React and Next.js applications. Contains 14 rules across 7 categories, prioritized by impact to guide automated code generation and integration patterns.
When to Apply
Reference these guidelines when:
- Enabling Single Editor Mode to restrict editing to one user at a time
- Setting up VeltSingleEditorModePanel and default UI
- Calling setUserAsEditor() and handling error codes
- Subscribing to editor state via useUserEditorState or isUserEditor()
- Building custom access request UX (editor accept/reject, viewer request/cancel)
- Scoping Single Editor Mode to specific containers with singleEditorModeContainerIds()
- Controlling elements with data-velt-sync-access attributes
- Enabling auto-sync for text elements (input, textarea, contenteditable)
- Configuring editor access timeout and auto-transfer behavior
- Subscribing to SEM events (accessRequested, editorAssigned, etc.)
- Handling multi-tab editing scenarios with singleTabEditor and editCurrentTab()
- Configuring heartbeat and presence detection for editor tracking
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Core Setup | CRITICAL | core- |
| 2 | Editor State Management | CRITICAL | state- |
| 3 | Access Request Flow | HIGH | access- |
| 4 | Element Control | HIGH | elements- |
| 5 | Timeout Configuration | MEDIUM | timeout- |
| 6 | Event Handling | MEDIUM | events- |
| 7 | Debugging & Testing | LOW-MEDIUM | debug- |
Quick Reference
1. Core Setup (CRITICAL)
core-setup— Enable Single Editor Mode with config, default UI, and panel component
2. Editor State Management (CRITICAL)
state-hooks— Use useUserEditorState and useEditor hooks for React editor statestate-set-user-editor— Call setUserAsEditor() with error handling for all 3 error codesstate-editor-api— Subscribe to isUserEditor() and getEditor() Observables
3. Access Request Flow (HIGH)
access-hooks— Use useEditorAccessRequestHandler hook for React access flowaccess-editor-side— Handle incoming requests with accept/reject via APIaccess-viewer-side— Request and cancel editor access as viewer
4. Element Control (HIGH)
elements-container-scope— Scope SEM to specific containers and enable auto-syncelements-sync-attributes— Apply data-velt-sync-access attributes to native HTML elements only
5. Timeout Configuration (MEDIUM)
timeout-hooks— Use useEditorAccessTimer for React countdown UItimeout-config— Configure timeout duration and auto-transfer behavior
6. Event Handling (MEDIUM)
events-hooks— Use useLiveStateSyncEventCallback for React event subscriptionsevents-subscribe— Subscribe to all 7 SEM event types via API
7. Debugging & Testing (LOW-MEDIUM)
debug-common-issues— Common issues, heartbeat config, and testing checklist
How to Use
Read individual rule files for detailed explanations and code examples:
rules/shared/core/core-setup.md
rules/shared/state/state-set-user-editor.md
rules/react/access/access-hooks.md
Each rule file contains:
- Brief explanation of why it matters
- Incorrect code example with explanation
- Correct code example with explanation
- Source pointers to official documentation
Compiled Documents
AGENTS.md— Compressed index of all rules with file paths (start here)AGENTS.full.md— Full verbose guide with all rules expanded inline
More from velt-js/agent-skills
velt-crdt-best-practices
Velt CRDT (Yjs) collaborative editing best practices for real-time applications. This skill should be used when implementing collaborative features using Velt CRDT stores, integrating with editors like Tiptap, BlockNote, CodeMirror, or ReactFlow, or debugging sync issues. Triggers on tasks involving real-time collaboration, multiplayer editing, CRDT stores, or Velt SDK integration.
28velt-comments-best-practices
Velt Comments implementation patterns and best practices for React, Next.js, and web applications. Use when adding collaborative commenting features, comment modes (Freestyle, Popover, Stream, Text, Page), rich text editor comments (TipTap, SlateJS, Lexical), media player comments, or chart comments.
27velt-setup-best-practices
Velt collaboration SDK setup guide for React, Next.js, Angular, Vue, and HTML applications. Use this skill when setting up Velt for the first time, configuring VeltProvider, implementing user authentication with authProvider and JWT tokens, initializing document collaboration with setDocuments, or debugging Velt setup issues. Triggers on any task involving Velt installation, VeltProvider configuration, auth token generation, document identity setup, or project structure for Velt integration — even if the user doesn't explicitly mention "setup".
26velt-notifications-best-practices
Velt Notifications implementation patterns and best practices for React, Next.js, and web applications. Use when adding in-app notifications, notification panels, email notifications via SendGrid, webhook integrations, or user notification preference management.
25velt-activity-best-practices
Velt Activity Logs implementation patterns and best practices for React, Next.js, and web applications. Use when adding real-time activity feeds, custom activity logging, audit trails, CRDT debounce configuration, or server-side activity management via REST API.
7velt-rest-apis-best-practices
Velt REST API v2 and webhook best practices for server-side integration. Use when calling Velt REST API v2 endpoints, generating JWT tokens for frontend authentication, handling Velt webhooks (comment events, huddle events, CRDT updates), managing users/documents/organizations via REST, or implementing server-side Velt operations. Triggers on any task involving Velt REST API, JWT token generation for Velt, Velt webhooks, x-velt-api-key headers, or server-side comment/notification/activity management — even if the user doesn't explicitly say 'REST API'. For the Python SDK (velt-py) for self-hosting, see velt-self-hosting-data-best-practices instead.
5