Overview
Lawn provides a seamless video upload experience with automatic processing and transcoding powered by Mux. Videos are uploaded to S3 storage and then processed through Mux for optimized streaming delivery.Upload Process
When you upload a video to Lawn, it goes through several stages:Upload Initiation
The video is created with an initial
uploading status and assigned a unique public ID for sharing.File Storage
The video file is uploaded to S3 storage with metadata including file size and content type.
Mux Processing
The video is sent to Mux for transcoding with:
- Adaptive streaming support (max 1080p resolution)
- 720p playback profile for consistent delivery
- Public playback policies
- Automatic thumbnail generation at time 0
Video States
Videos progress through the following states:Uploading
Initial state when the file is being uploaded to storage
Processing
Mux is transcoding the video for streaming delivery
Ready
Video is fully processed and available for playback
Failed
Upload or processing encountered an error
Supported Features
File Metadata
Each uploaded video tracks:- File size and content type
- Original uploader information
- Upload timestamp
- Video duration (after processing)
- Thumbnail URL (generated by Mux)
Storage Limits
Video uploads are subject to team storage quotas:- File size is validated before upload begins
- Actual uploaded size is reconciled after upload completes
- Teams must have an active subscription to upload to projects
Storage quota checks happen both at upload initiation and after the file is fully uploaded to ensure accurate billing.
Mux Integration
Lawn uses Mux for professional-grade video infrastructure:Adaptive Streaming
Videos are transcoded to HLS format for adaptive bitrate streaming
Optimized Delivery
720p playback profile ensures fast loading and smooth playback
Automatic Thumbnails
Video thumbnails are generated automatically from the first frame
Public Playback
Videos can be played back using public or signed playback IDs
Visibility Settings
Videos can be set to different visibility modes:- Public
- Private
Public videos can be accessed by anyone with the public link, even without logging in. Comments can be added by authenticated users.
All videos default to public visibility for convenience, following Lawn’s philosophy of good defaults and minimal friction.
Error Handling
If a video upload or processing fails:- The video status is set to
failed - An error message is stored with the video record
- The Mux asset status is marked as
errored - Users can retry by uploading the video again
Technical Details
Mux Configuration
Videos are processed with these Mux settings:- Playback policies: Public (can be upgraded to signed)
- Video quality: Basic tier
- Max resolution: 1080p adaptive streaming
- Delivery profile: Locked to 720p for consistency
- MP4 support: Disabled (streaming only)
Performance Optimizations
Lawn follows a performance-first philosophy:- Upload metadata is collected upfront to enable optimistic UI updates
- Video processing happens asynchronously via Mux webhooks
- Status updates are tracked in real-time
- Playback URLs are pre-generated for instant playback
Videos are ready for review as soon as Mux completes processing, typically within minutes of upload.
