Screen Sharing
Communication · React + Node (Express) · 15 @molecule/* packages
Loom-like screen recording with capture, sharing links, viewer analytics, and comments — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (16)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Library
/library(signed in) - RecordingDetail
/recordings/:id(signed in) - Record
/record(signed in) - Shared
/shared(signed in) - Settings
/settings(signed in) - Analytics
/analytics(signed in) - PublicShare
/share/:token - Notifications
/notifications(signed in) - Team
/team(signed in) - Billing
/billing(signed in) - Profile
/profile(signed in)
Data model (10 tables)
- comments — id, resourceType, resourceId, userId, parentId, body, editedAt, createdAt, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- folders — id, workspace_id, owner_id, name, parent_id, created_at, updated_at
- reactions — id, resourceType, resourceId, userId, type, createdAt, updatedAt
- recording_comments — id, recording_id, owner_id, user_id, name, content, timestamp_ms, parent_comment_id, …
- recording_views — id, recording_id, owner_id, viewer_user_id, viewer_email, viewer_ip, ip_hash, user_agent, …
- recordings — id, owner_id, workspace_id, folder_id, title, description, duration_ms, size_bytes, …
- share_links — id, recording_id, owner_id, token, password_hash, expires_at, max_views, allow_download, …
- workspace_members — id, workspace_id, user_id, role, invited_by, joined_at, created_at, updated_at
- workspaces — id, owner_id, name, slug, plan_key, seat_limit, created_at, updated_at
API (10 handlers)
- analytics
api/src/handlers/analytics.ts - comments
api/src/handlers/comments.ts - folders
api/src/handlers/folders.ts - notifications
api/src/handlers/notifications.ts - recordings
api/src/handlers/recordings.ts - settings
api/src/handlers/settings.ts - share-links
api/src/handlers/share-links.ts - views
api/src/handlers/views.ts - workspace-members
api/src/handlers/workspace-members.ts - workspaces
api/src/handlers/workspaces.ts
Subscription tiers
free / pro / team — gated by: maxComments, maxRecordings, maxViews, advancedFeatures, canExport, retentionDays
Built from 15 @molecule/* packages
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-reporting-database@molecule/api-resource-comment@molecule/api-resource-payment@molecule/api-resource-reaction@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-data-table@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringS3_BUCKETS3 bucket for recordingsMAILGUN_API_KEYMailgun API key for sharing notifications
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing