Overview
Lawn’s comment system is purpose-built for video review, enabling teams to provide precise, timestamped feedback directly on videos. Comments support threaded discussions and resolution tracking to manage the review process.Timestamped Comments
Every comment is anchored to a specific moment in the video:Precise Feedback
Comments are attached to exact timestamps (in seconds) for context-specific feedback
Automatic Sorting
Top-level comments are sorted by timestamp to follow the video timeline
Quick Navigation
Click a comment to jump directly to that moment in the video
Visual Markers
Comment markers appear on the playback timeline for easy reference
Comment Structure
Comments follow a two-level threading model:Top-Level Comments
Top-level comments represent distinct pieces of feedback:- Anchored to a specific video timestamp
- Can be marked as resolved or unresolved
- Sorted chronologically by timestamp
- Include author name, avatar, and creation time
Replies
Each top-level comment can have multiple replies:- Inherit the timestamp from the parent comment
- Sorted by creation time (oldest first)
- Support threaded discussions
- Deleted when parent comment is deleted
The two-level threading model keeps discussions focused and prevents deeply nested reply chains that are hard to follow.
Creating Comments
Comments can be created through multiple access methods:- Team Members
- Public Links
Team members with viewer role or higher can comment on any video in their projects. Comments include full user information from the team membership.
Comment Management
Editing Comments
Users can edit their own comments:- Only the comment text can be modified
- Timestamp and author information remain unchanged
- No edit history is tracked (follows simplicity philosophy)
Deleting Comments
Comment deletion follows role-based rules:Resolution Workflow
Comments include a resolution system for tracking feedback completion:Resolution States
Unresolved
Default state for new comments. Indicates feedback that needs to be addressed.
Resolved
Comment has been addressed or is no longer relevant. Visual indicator shows completion.
Resolution Permissions
Only team members with member role or higher can toggle comment resolution:- Viewers can comment but cannot mark comments as resolved
- Resolution status helps track review progress
- Resolved comments remain visible in the timeline
Resolution is a simple boolean toggle - there’s no need for complex workflow states. This follows Lawn’s philosophy of good defaults and minimal friction.
Threaded View
Comments are organized in a threaded view for easy navigation:Comment Metadata
Each comment includes comprehensive information:User Information
- User Name: Display name of the commenter
- Avatar URL: Profile picture for visual identification
- User ID: Clerk authentication ID for ownership verification
Comment Data
- Text Content: The actual comment message
- Timestamp: Exact video position (in seconds with decimal precision)
- Creation Time: When the comment was created
- Parent ID: Reference to parent comment for replies
- Resolved Status: Whether feedback has been addressed
Public Comment Visibility
Comments on public and shared videos use privacy-safe data:Limited User Data
Only name and avatar are exposed, never user IDs or email addresses
Team Context Hidden
Team information is not included in public comment responses
Comment Queries
The comment system supports multiple query patterns:By Video
Retrieve all comments for a specific video:- Requires video access permissions
- Returns flat list sorted by timestamp
- Includes all replies
By Timestamp Range
Query comments within a specific time range:- Useful for highlighting comments in the current playback section
- Indexed by video ID and timestamp for fast lookups
- Supports playback scrubbing features
Threaded View
Get comments organized with replies:- Top-level comments sorted by timestamp
- Replies nested under parent comments
- Replies sorted by creation time
Performance Optimizations
Comments are optimized for real-time collaboration:Database Indexing
by_video: Fast queries for all comments on a videoby_video_and_timestamp: Range queries for playback positionby_parent: Efficient reply lookups
Optimistic Updates
- New comments appear instantly in the UI
- Resolution toggles feel immediate
- Comment counts update in real-time
Comment operations are designed to be fast and non-blocking, following Lawn’s performance-first philosophy.
Comment Count Tracking
Video records include real-time comment counts:- Total count includes both comments and replies
- Automatically updated when comments are added or removed
- Displayed in video lists for engagement visibility
- No separate counter table needed (calculated on query)
Integration with Video Workflow
Comments integrate with the video review workflow:- Unresolved comments indicate pending feedback
- Resolution progress helps determine when to move videos to “Done” status
- Comment activity drives team collaboration
- Comment timestamps link directly to video moments
