← All templates

Video Conferencing

Communication · React + Node (Express) · 15 @molecule/* packages

Zoom-like video meetings with WebRTC, screen sharing, recording, and chat — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • realtime
  • video
  • screen-share
  • recording
  • calendar
  • subscriptions

Screens (16)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Schedule /schedule (signed in)
  • Lobby /meeting/:id/lobby (signed in)
  • Meeting /meeting/:id (signed in)
  • Recordings /recordings (signed in)
  • Settings /settings (signed in)
  • MeetingDetail /meeting/:id/details (signed in)
  • RecordingDetail /recordings/:id (signed in)
  • Notifications /notifications (signed in)
  • Billing /settings/billing (signed in)
  • TeamMembers /team (signed in)

Data model (9 tables)

  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • meeting_chat — id, meeting_id, user_id, guest_name, content, created_at, updatedAt
  • meeting_invites — id, meeting_id, invitee_email, invitee_user_id, token, sent_at, accepted_at, created_at, …
  • meeting_participants — id, meeting_id, user_id, guest_name, role, joined_at, left_at, audio_enabled, …
  • meetings — id, workspace_id, host_id, title, description, status, starts_at, ends_at, …
  • notifications — id, user_id, type, title, body, data, read_at, created_at, …
  • recordings — id, meeting_id, owner_id, video_url, thumbnail_url, duration_ms, size_bytes, status, …
  • workspace_members — id, workspace_id, user_id, role, joined_at, created_at, updatedAt
  • workspaces — id, owner_id, name, slug, plan_key, seat_limit, created_at, updated_at, …

API (8 handlers)

  • chat api/src/handlers/chat.ts
  • invites api/src/handlers/invites.ts
  • meetings api/src/handlers/meetings.ts
  • notifications api/src/handlers/notifications.ts
  • participants api/src/handlers/participants.ts
  • recordings api/src/handlers/recordings.ts
  • workspace-members api/src/handlers/workspace-members.ts
  • workspaces api/src/handlers/workspaces.ts

Subscription tiers

free / pro / team — gated by: maxChat, maxMeetings, maxParticipants, maxRecordings, 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 meeting invites
  • TURN_SERVER_URL TURN server URL for WebRTC relay
  • TURN_SERVER_SECRET TURN server shared secret

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing