← All templates

Status Page

Developer Tools · React + Node (Express) · 17 @molecule/* packages

Statuspage-like with incidents, component monitoring, uptime history, and subscriber notifications — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • notifications
  • subscriptions

Screens (19)

  • PublicStatus /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • IncidentList /incidents (signed in)
  • IncidentDetail /incidents/:id (signed in)
  • Components /components (signed in)
  • Subscribers /subscribers (signed in)
  • Settings /settings (signed in)
  • IncidentForm /incidents/new (signed in)
  • ComponentDetail /components/:id (signed in)
  • MaintenanceList /maintenance (signed in)
  • MaintenanceDetail /maintenance/:id (signed in)
  • Profile /profile (signed in)
  • Notifications /notifications (signed in)
  • Team /team (signed in)
  • AuditLog /audit (signed in)

Data model (14 tables)

  • audit_log — id, user_id, actor_user_id, action, scope, target, summary, payload, …
  • checks — id, serviceId, status, httpStatus, latencyMs, error, checkedAt
  • component_status_history — id, component_id, status, changed_at, created_at, updatedAt
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • incident_updates — id, incident_id, status, message, posted_by, created_at, updatedAt
  • incidents — id, createdAt, updatedAt, serviceId, title, description, severity, status, …
  • maintenance — id, user_id, title, message, scheduled_for, scheduled_until, duration_minutes, affected_components, …
  • notifications — id, user_id, kind, title, body, payload, read_at, created_at, …
  • services — id, createdAt, updatedAt, name, url, method, expectedStatus, timeoutMs, …
  • status_components — id, user_id, name, description, group, status, monitor_url, uptime_pct_90, …
  • status_subscribers — id, user_id, channel, destination, email, notification_type, components, is_confirmed, …
  • team_members — id, user_id, member_id, name, email, role, on_call, shift, …
  • uptimeWindows — id, serviceId, window, uptimePct, totalChecks, upChecks, avgLatencyMs
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (9 handlers)

  • \_audit api/src/handlers/_audit.ts
  • audit api/src/handlers/audit.ts
  • components api/src/handlers/components.ts
  • incidents api/src/handlers/incidents.ts
  • maintenance api/src/handlers/maintenance.ts
  • notifications api/src/handlers/notifications.ts
  • public api/src/handlers/public.ts
  • subscribers api/src/handlers/subscribers.ts
  • team api/src/handlers/team.ts

Subscription tiers

free / pro / team — gated by: maxComponents, maxIncidents, maxSubscribers, advancedFeatures, canExport, retentionDays

Built from 17 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string

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