Energy Monitoring
Operations & IoT · React + Node (Express) · 16 @molecule/* packages
Sense-like energy monitoring with usage tracking, solar production, cost analysis, alerts, and consumption trends — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (13)
- Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Devices
/devices(signed in) - Reports
/reports(signed in) - Alerts
/alerts(signed in) - Settings
/settings(signed in) - DeviceDetail
/devices/:id(signed in) - AlertRule
/alerts/rules/new(signed in) - Profile
/profile(signed in) - Billing
/billing(signed in)
Data model (10 tables)
- alert_rules — id, user_id, name, meter_id, type, threshold, comparison, notify_email, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- energy_alerts — id, user_id, rule_id, meter_id, type, severity, message, status, …
- energy_daily_summary — id, user_id, meter_id, date, total_kwh, peak_kwh, off_peak_kwh, reading_count, …
- energy_monthly_summary — id, user_id, meter_id, year, month, total_kwh, total_cost, reading_count, …
- meter_tokens — id, meter_id, user_id, token_hash, label, enabled, last_used_at, created_at, …
- meters — id, user_id, name, type, location, unit, description, status, …
- rate_plans — id, user_id, name, rate_per_kwh, peak_rate, off_peak_rate, peak_start_hour, peak_end_hour, …
- readings — id, meter_id, value, unit, timestamp, created_at
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
API (6 handlers)
- \_seed
api/src/handlers/_seed.ts - alerts
api/src/handlers/alerts.ts - costs
api/src/handlers/costs.ts - me
api/src/handlers/me.ts - meters
api/src/handlers/meters.ts - readings
api/src/handlers/readings.ts
Subscription tiers
free / pro / team — gated by: maxAlerts, maxCosts, maxMeters, maxReadings, advancedFeatures, canExport, retentionDays
Built from 16 @molecule/* packages
@molecule/api-cron-node-cron@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-push-notifications-web-push@molecule/api-reporting-database@molecule/api-resource-payment@molecule/api-resource-user@molecule/app-billing-react@molecule/app-charts@molecule/app-command-palette@molecule/app-data-table@molecule/app-date-range-picker@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringMAILGUN_API_KEYMailgun API key for alert emailsMAILGUN_DOMAINMailgun sending domain
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing