Real-time Editing
Collaborate on documents with live updates, presence awareness, and intelligent conflict resolution
Real-time Editing
Cothon's real-time collaboration engine enables teams to work on bid analyses and proposals simultaneously without version control chaos. Built on WebSocket technology with operational transformation algorithms, the platform delivers Google Docs-style collaboration optimized for complex procurement workflows.
See changes as they happen, track who's working on what sections, and coordinate large teams with presence indicators and intelligent conflict resolution. No more emailing "Track Changes" versions or wondering if you're working on the latest draft.
How Real-time Editing Works
Technical Foundation
Cothon uses Socket.IO over WebSocket connections to deliver sub-second synchronization:
Client-Side:
- Browser establishes persistent WebSocket connection when you open an analysis
- Local edits broadcast to server immediately via Socket.IO events
- Incoming changes from other users render instantly in your view
- Operational transformation resolves conflicting edits automatically
Server-Side:
- Flask-SocketIO backend manages connection pools and event routing
- Changes validated and stored in Supabase with timestamp and user attribution
- Broadcasts updates to all connected clients on same analysis
- Automatic reconnection handling if connections drop
Data Flow:
User A types → Client broadcasts event → Server receives & validates →
Stores to database → Broadcasts to other clients → User B sees change
(Typical latency: 50-200ms)
What Synchronizes in Real-Time
When multiple users open the same analysis:
- Live content sync - Text edits, requirement status changes, metadata updates
- Presence indicators - Who's viewing, who's editing, where they're focused
- Cursor tracking - Real-time cursor positions in text fields (optional)
- Comment additions - New comments appear immediately for all users
- Assignment changes - Workflow updates broadcast to assignees
- Status updates - Requirement completion, analysis phase transitions
- Conflict prevention - Automatic locking and merge resolution
Note
Real-time editing works on bid analyses, proposals, requirement reviews, and shared documents. Project-level content like opportunity lists uses real-time updates for status changes only.
Presence Indicators
Understanding Who's Here
The presence bar at the top of every shared analysis shows active collaborators:
Avatar Stack:
- Profile pictures of all users currently viewing the analysis
- Maximum 10 avatars shown; click +5 more to see full list
- Avatars update within 2 seconds of users joining/leaving
Visual Status Indicators:
| Indicator | Meaning | Example |
|---|---|---|
| Solid colored ring | User is actively editing (typing, clicking, moving elements) | Sarah is drafting technical requirements |
| Faded ring | User is viewing only (idle for 30+ seconds) | John is reading but not editing |
| Green dot | User is online and connected | Real-time sync active |
| Gray dot | User recently viewed (within 5 minutes) but currently offline | Alex was here recently |
| Pulsing ring | User is performing AI action (generating content, analyzing) | AI generation in progress |
Hover Details:
- Move mouse over any avatar to see tooltip with:
- Full name and role in organization
- Current section they're viewing (if determinable)
- Connection status and last activity timestamp
- Permission level (Viewer, Commenter, Editor)
Location Indicators
Track where teammates are working within the analysis:
Section Highlights:
- Active sections show subtle colored border matching user's avatar color
- User's name appears in top-right corner of section they're editing
- Multiple users in same section show stacked name tags
Cursor Tracking (optional, enable in Settings > Collaboration):
- Real-time cursor positions for users in same text field
- Cursor rendered in user's avatar color with name label
- Selection ranges highlighted in semi-transparent color overlay
- Useful for pair-editing or live training sessions
Focused Element:
- Element currently focused by user shows thin colored outline
- Prevents accidental simultaneous edits of same field
- Advisory lock - you can still edit, but you'll see warning
Tip
Privacy Control: Disable cursor tracking in Settings > Collaboration > Privacy if you prefer teammates not see your exact cursor position. Presence indicators and section-level tracking remain active.
Presence in Different Views
Grid View (requirements grouped by status):
- User avatars appear on requirement cards they're actively editing
- Hover to see who last modified each requirement
List View (chronological requirements):
- Colored bar on left edge indicates user working on that requirement
- Name appears on hover
Table View (spreadsheet-style):
- Cell highlighting shows active editors
- Lock icon appears if another user editing same cell
Working Together: Collaboration Patterns
Simultaneous Editing (Parallel Workflow)
Best For: Large teams with clearly divided sections, tight deadlines
How It Works: Multiple users edit different sections simultaneously without conflicts:
Example Scenario: 5-person team working on 72-hour RFP response:
- Hour 1-4: Parallel section drafting (5 people editing simultaneously)
- Hour 4-6: Cross-review period (viewers mode, comments only)
- Hour 6-8: Final refinements (sequential edits with one editor at a time)
Performance:
- Supports up to 50 concurrent editors per analysis
- Sync latency remains under 200ms with 10+ active editors
- Beyond 20 editors, consider splitting into multiple linked analyses
Same-Section Editing (Collaborative Workflow)
Best For: Complex requirements needing multi-disciplinary input, training/mentoring sessions
How It Works: Two or more users edit the same requirement or section:
Conflict Prevention:
- Advisory Locks: First user to click into field gets "soft lock" (others see warning, can override)
- Operational Transformation: If both users type simultaneously, algorithm merges changes intelligently
- Character-Level Merge: Edits at different positions merge automatically (User A adds to beginning, User B adds to end = both changes kept)
- Conflict Detection: If edits overlap same characters, last save wins with notification to other users
Example: Technical writer drafts compliance statement while compliance officer simultaneously adds regulatory citations:
Writer types: "Our team has experience with secure facility access..."
Officer types: [adds at end] "...in accordance with NISPOM Chapter 5."
Result: "Our team has experience with secure facility access in accordance with NISPOM Chapter 5."
(Both edits merge automatically)
Warning
Best Practice: Coordinate verbally (Slack/call) when multiple people need to edit same section. Real-time merge works well for additive edits, but complex rewrites can create confusion. Use comment suggestions instead for major changes to same content.
Review & Feedback Workflow
Best For: Quality control, executive review, compliance checks
How It Works: Reviewers use comment-only mode while writers see feedback in real-time:
Collaboration Indicators During Review:
- Reviewer avatars appear on requirements they're actively reviewing
- Comment count badge shows new unread comments
- Resolved comment threads collapse but remain accessible
Auto-Save and Synchronization
Auto-Save Behavior
Cothon eliminates "Save" buttons with intelligent auto-save:
Triggering Events:
- During active typing: Saves every 3 seconds while you continue typing
- After stopping: Saves immediately when you pause (500ms idle)
- On field blur: Saves when you click away from input field
- On navigation: Saves before you switch to different section or page
- On connection loss: Queues changes locally until reconnection
What Gets Saved:
- All text content changes
- Requirement status changes
- Metadata updates (priority, complexity, tags)
- Comment additions and edits
- Workflow assignments and status
- Folder moves and organization changes
Confirmation Indicators:
- Small checkmark appears next to field after successful save
- "Saving..." indicator shows during save operation
- "All changes saved" status in top bar when fully synced
- Error notification if save fails (rare, usually connection issue)
Synchronization Strategies
Optimistic UI Updates: Your changes appear immediately in your view before server confirmation (optimistic concurrency). If server rejects change (e.g., permission revoked), local change reverts with notification.
Conflict Resolution:
Scenario 1: Non-overlapping edits (most common)
- User A edits requirement text
- User B changes requirement priority
- Both changes merge automatically ✓
Scenario 2: Sequential edits same field
- User A edits field, saves at 2:00:00
- User B edits field, saves at 2:00:05
- User B's change overwrites User A's (last-write-wins)
- User A sees notification: "Your change was overwritten by [User B]. View history to restore."
Scenario 3: Simultaneous edits same field (rare)
- Both users editing identical text at same time
- Operational transformation attempts character-level merge
- If merge ambiguous, server picks one version (usually user who saved first)
- Both users notified of conflict; can review history and manually merge
Note
Conflict Rate: In practice, conflicts occur in less than 0.1% of edits due to advisory locks and section-level coordination. When conflicts do occur, version history provides safety net for recovery.
Offline Support and Recovery
Working Offline: If your internet connection drops while editing:
- Continue working: All edits queue locally in browser storage
- Visual indicator: Orange banner shows "Offline - changes will sync when reconnected"
- Local auto-save: Changes persist in browser even if tab closed (session storage)
- Automatic reconnection: When connection restored, queued changes upload automatically
- Conflict check: Server compares your offline changes with any edits others made during your offline period
Offline Capabilities:
| Feature | Offline Support | Notes |
|---|---|---|
| View content | ✓ Full support | Cached analysis and requirements remain viewable |
| Edit text | ✓ Queued sync | Changes queue until reconnection |
| Add comments | ✓ Queued sync | Comments queue with timestamp |
| Change status | ✓ Queued sync | Status updates queue |
| Upload files | ✗ Requires connection | File uploads fail offline |
| AI generation | ✗ Requires connection | AI features need server access |
| See others' changes | ✗ Requires connection | Real-time sync disabled |
| View presence | ✗ Requires connection | Presence indicators unavailable |
Recovery After Extended Offline Period:
Example: You edit offline for 2 hours, others made changes during that time
Warning
Risk Mitigation: Avoid offline editing during critical pre-deadline periods. Offline mode is safe and well-tested, but adds manual conflict resolution overhead that can slow you down. For important work, ensure stable internet.
Keyboard Shortcuts for Faster Collaboration
Boost productivity with real-time editing shortcuts:
Navigation
Editing
Collaboration
Workflow
Tip
Customizable Shortcuts: Change keyboard shortcuts in Settings > Keyboard. Useful if you're accustomed to different shortcuts from other tools like Microsoft Word or Google Docs.
Version History and Rollback
Automatic Version Snapshots
Cothon automatically creates version snapshots at key moments:
Auto-Snapshot Triggers:
- Hourly: Automatic snapshot every hour when analysis has active edits
- Major edits: After 50+ changes or 5+ requirement status updates
- Milestone events: Analysis status changes (Draft → Review → Final)
- Sharing events: Before first share with external users
- Pre-export: Immediately before PDF/Word export
Named Milestones: Create manual snapshots with custom labels:
- Click History in toolbar
- Click Create Snapshot
- Enter descriptive name (e.g., "Before Red Team Review", "Final Submit Version")
- Snapshot appears in history timeline
Viewing Version History
Restoring Previous Versions
Full Restore (revert entire analysis):
Partial Restore (cherry-pick specific changes):
- Open version comparison between current and target version
- Review diff highlighting
- Click Restore This Section on specific requirement or section
- Selected content reverts while rest of analysis remains unchanged
Warning
Team Notification: When you restore a previous version, all team members with access receive notification. This prevents confusion from unexpected content changes. Coordinate with team before major restores.
Version History Analytics
Insights from History Data:
- Edit Velocity: Graph showing edits over time (identifies crunch periods)
- Contributor Breakdown: Pie chart of edits by team member
- Section Iteration: Heat map showing which requirements changed most frequently
- Change Volume: Metrics on additions vs. deletions vs. modifications
Access analytics: History > Analytics tab
Useful for:
- Post-project retrospectives (where did team spend most effort?)
- Compliance audits (demonstrate thorough review processes)
- Process improvement (identify bottleneck sections that needed excessive rework)
Advanced Real-time Features
Section Locking
Prevent accidental edits during critical phases:
Temporary Lock:
- Click ⋮ More on section > Lock Section
- Only Managers can unlock
- Useful for sections under executive review
- Editors downgraded to Commenters temporarily
Approval Lock:
- Click ⋮ More on requirement > Require Approval to Edit
- Changes to locked requirement queue as "Pending Approval"
- Manager approves or rejects proposed changes
- Useful for sensitive sections like pricing or legal compliance
Conflict Highlighting
When conflicts detected (rare but possible):
Visual Indicators:
- Conflicted section shows yellow warning banner
- Tooltip explains: "This section was edited by [User] while you were editing"
- Click View Conflict to see diff
Resolution Interface:
- Three-pane view: Your version | Server version | Merged result
- Edit merged result to manually combine changes
- Click Resolve Conflict when satisfied
- Original versions preserved in history
Real-time Notifications
Beyond presence indicators, get proactive alerts:
Editing Notifications (optional, configure in Settings):
- Desktop notification when someone starts editing analysis you're viewing
- Useful for small teams wanting high awareness
- Can be noisy for large teams (disable or set to "Managers only")
Section-Specific Alerts:
- Watch specific high-priority requirements
- Receive instant notification if anyone edits watched content
- Set up: Right-click requirement > Watch for Changes
Collision Warnings:
- If you start typing in field another user is editing, warning appears: "Sarah is also editing this field"
- Suggestion to coordinate or choose different section
Performance Optimization
For Large Teams (10+ Concurrent Editors)
Best Practices:
- Split analyses: Divide 200+ requirement RFPs into multiple linked analyses by section
- Shift-based editing: Coordinate editing shifts (Team A: 9am-12pm, Team B: 1pm-4pm) to reduce simultaneous load
- Focused views: Use filters to load only relevant requirements, reducing client-side rendering
- Close inactive tabs: Each Cothon tab maintains WebSocket connection; close unused tabs
- Dedicated devices: For 24/7 operations, use dedicated machine for always-on monitoring (don't mix with heavy tasks)
System Requirements for Smooth Real-time:
- Internet: 5+ Mbps down, 1+ Mbps up (wired preferred over WiFi for stability)
- Browser: Chrome 100+, Firefox 95+, Safari 15.4+, Edge 100+ (avoid Internet Explorer)
- RAM: 4GB+ available (8GB+ for analyses with 100+ requirements)
- CPU: Modern multi-core processor (collaboration uses Web Workers for performance)
For Complex Documents (100+ Requirements)
Performance Strategies:
-
Paginated Loading: Enable in Settings > Performance > Load requirements in batches
- Loads 25 requirements at a time
- Scroll to bottom to load more
- Reduces initial render time from 10s to 2s for 200-requirement analyses
-
Virtualized Rendering: Automatically enabled for 50+ requirements
- Only renders visible requirements in viewport
- Invisible requirements rendered as placeholders
- Seamless scrolling experience with 1000+ requirements
-
Debounced Sync: For high-velocity editing (multiple keystrokes per second)
- Batches rapid changes into single sync event
- Reduces network overhead
- Still maintains sub-second sync for other users
Note
Connection Quality Indicator: Green circle in top-right shows connection status. Click for details:
- Green: Excellent (latency <100ms)
- Yellow: Moderate (latency 100-500ms, still functional)
- Orange: Poor (latency >500ms, consider switching networks)
- Red: Disconnected (working offline)
Troubleshooting Lag
Symptom: Changes take 5+ seconds to appear for others
Diagnostic Steps:
- Check connection: Click connection indicator, verify latency
- Network test: Run speed test at
fast.com(need 5+ Mbps) - Browser console: Open DevTools > Console, look for WebSocket errors
- Disable extensions: Ad blockers sometimes interfere with WebSockets
- Whitelist domain: Ensure
*.cothon.aiwhitelisted in firewall/VPN - Switch networks: Try different WiFi network or wired connection
- Restart browser: Clears WebSocket connection pool
Server-Side Issues (rare):
- Check status page:
status.cothon.ai - If server maintenance in progress, you'll see banner notification
- Scheduled maintenance announced 48h in advance via email
Real-time Collaboration Scenarios
Scenario 1: Rush RFP (24-Hour Deadline)
Team: 6 people, 45 requirements, complex proposal
Hour 0-2: Kickoff & Assignment
- Manager creates analysis, shares with team (all as Editors)
- Assigns requirements by category in rapid succession
- Team members see assignments appear in real-time, immediately start work
Hour 2-8: Parallel Drafting
- All 6 people editing simultaneously, different sections
- Manager monitors progress via presence indicators (see who's active)
- One collision occurs (two people start same requirement) - advisory lock prevents conflict, they coordinate via Slack
Hour 8-12: Sleep Shift
- Half team offline, others continue editing
- Changes sync when morning shift returns
Hour 12-18: Review Cycle
- Manager switches team to Comment permission (prevent edits)
- Team adds 30+ comments with feedback
- Lead editor addresses comments, marks resolved
- All 6 people see progress in real-time
Hour 18-24: Final Polish & Submit
- Single editor (proposal manager) makes final refinements
- Others in Viewer mode, watching changes happen live
- Export to PDF at deadline - final version automatically shared
Result: 24-hour turnaround with 6-person team, zero version control issues, complete audit trail
Scenario 2: Distributed Team (5 Time Zones)
Team: 10 people across US, Europe, Asia
Challenge: No overlap in working hours for full team
Solution with Real-time Collaboration:
- Asynchronous editing: Each region works during their day shift, edits auto-sync for next region
- Handoff protocol: End-of-day team posts comment summarizing progress, tags next shift
- Presence history: Activity feed shows "Last edited 6 hours ago by [Asia team]" so EU team knows where to resume
- Version snapshots: Each region creates named snapshot at end of shift (e.g., "US EOD 3/15", "Europe EOD 3/16")
- Collision-free: Time zone offset ensures no two regions editing simultaneously
Outcome: Continuous 24-hour progress, seamless handoffs, no merge conflicts
Scenario 3: Client Collaboration (External Reviewers)
Team: 4 internal, 2 external consultants (limited Cothon access)
Setup:
- Share analysis with external consultants via public link (Comment permission, 7-day expiration)
- Consultants review without Cothon accounts, add comments
- Internal team sees comments in real-time, addresses immediately
- Consultants notified via email when comments resolved
- After review complete, revoke link to maintain security
Outcome: External input integrated seamlessly without granting full system access
FAQ
Next Steps
Master Collaboration Features
- Comments - Threaded discussions, @mentions, and resolution workflows
- Activity Feed - Track all team actions and configure smart notifications
- Sharing - Advanced sharing options including public links and access tracking
Related Topics
- Team Setup - Configure organization, roles, and permissions
- Notifications - Customize notification preferences
- Keyboard Shortcuts - Customize shortcuts for faster workflows
Quick Wins
First Real-time Session: Try this with a teammate:
- Both open same analysis simultaneously
- Watch presence indicators show each other
- Each edit a different requirement - see instant sync
- One person add a comment, other person receive notification
- Try commenting on same requirement - see threaded discussion form
Advanced Practice:
- Enable cursor tracking and try pair-editing same requirement
- Intentionally create conflict (both edit same sentence) and resolve it
- Create manual version snapshot, make changes, then restore previous version
- Use keyboard shortcuts to rapidly navigate and edit while teammate watches
Real-time editing transforms bid team productivity. Master these features to eliminate version control chaos and accelerate your win rates.
Related Articles
Was this page helpful?