← All templates

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

Open in Molecule

What is inside

  • auth
  • recording
  • sharing
  • analytics
  • comments
  • subscriptions

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 (9 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
  • 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

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • S3_BUCKET S3 bucket for recordings
  • MAILGUN_API_KEY Mailgun 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