← All templates

Delivery Tracking

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

AfterShip-like delivery tracking with shipments, status updates, map view, and notifications — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • realtime
  • map
  • notifications
  • webhooks
  • subscriptions

Screens (16)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Shipments /shipments (signed in)
  • ShipmentDetail /shipments/:id (signed in)
  • Carriers /carriers (signed in)
  • Webhooks /webhooks (signed in)
  • Settings /settings (signed in)
  • CarrierDetail /carriers/:id (signed in)
  • Alerts /alerts (signed in)
  • Analytics /analytics (signed in)
  • Profile /profile (signed in)
  • Team /team (signed in)

Data model (11 tables)

  • alerts — id, user_id, shipment_id, type, severity, message, read_at, created_at
  • carriers — id, name, code, tracking_url_template, webhook_url, logo_url, base_url, status, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • notification_log — id, user_id, type, payload, sent_at, created_at
  • notification_preferences — id, user_id, email_on_delivered, email_on_exception, push_on_status_change, created_at, updated_at
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
  • shipments — id, user_id, tracking_number, carrier_id, recipient_name, recipient_email, origin, destination, …
  • team_members — id, owner_user_id, member_user_id, email, role, status, invited_at, joined_at, …
  • tracking_events — id, shipment_id, status, description, location, latitude, longitude, raw, …
  • webhook_events — id, webhook_id, user_id, payload, attempts, last_error, delivered_at, created_at
  • webhooks — id, user_id, url, events, secret, status, created_at, updated_at

API (13 handlers)

  • \_seed api/src/handlers/_seed.ts
  • \_test api/src/handlers/_test.ts
  • alerts api/src/handlers/alerts.ts
  • carriers api/src/handlers/carriers.ts
  • events api/src/handlers/events.ts
  • notifications api/src/handlers/notifications.ts
  • reports api/src/handlers/reports.ts
  • settings api/src/handlers/settings.ts
  • shipments api/src/handlers/shipments.ts
  • team api/src/handlers/team.ts
  • tracking api/src/handlers/tracking.ts
  • webhook-events api/src/handlers/webhook-events.ts
  • webhooks api/src/handlers/webhooks.ts

Subscription tiers

free / pro / team — gated by: maxCarriers, maxNotifications, maxShipments, maxTracking, advancedFeatures, canExport, retentionDays

Built from 22 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MEILISEARCH_API_KEY MeiliSearch API key
  • MAILGUN_API_KEY Mailgun API key for notifications
  • MAILGUN_DOMAIN Mailgun sending domain

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