← All templates

Weather Dashboard

Operations & IoT · React + Node (Express) · 17 @molecule/* packages

Weather.com-like app with forecasts, alerts, saved locations, and historical data — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • geolocation
  • caching
  • alerts
  • charts
  • maps
  • history
  • subscriptions

Screens (13)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • LocationDetail /location/:id (signed in)
  • Locations /locations (signed in)
  • Radar /radar (signed in)
  • Alerts /alerts (signed in)
  • Settings /settings (signed in)
  • Trends /trends (signed in)
  • Compare /compare (signed in)

Data model (11 tables)

  • alert_preferences — id, user_id, location_id, enabled, min_severity, kinds, channels, quiet_hours, …
  • alerts — id, location_id, kind, title, body, severity, severity_rank, source, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • dismissed_alerts — id, alert_id, user_id, dismissed_at
  • forecast_current — id, location_id, observed_at, temperature, feels_like, condition, icon, humidity, …
  • forecast_daily — id, location_id, day_at, temp_high, temp_low, condition, icon, precipitation_pct, …
  • forecast_hourly — id, location_id, hour_at, temperature, feels_like, condition, icon, precipitation_pct, …
  • history_observations — id, location_id, observed_date, temp_high, temp_low, temp_avg, precipitation_mm, precipitation_type, …
  • locations — id, user_id, name, region, address, latitude, longitude, timezone, …
  • notifications — id, user_id, type, title, body, href, read, created_at
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (4 handlers)

  • alerts api/src/handlers/alerts.ts
  • forecasts api/src/handlers/forecasts.ts
  • history api/src/handlers/history.ts
  • locations api/src/handlers/locations.ts

Subscription tiers

free / pro / team — gated by: maxAlerts, maxForecasts, maxHistory, maxLocations, 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