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
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
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
@molecule/api-cron-node-cron@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-geolocation-nominatim@molecule/api-payments-stripe@molecule/api-push-notifications-web-push@molecule/api-realtime-socketio@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-webhook-http@molecule/app-billing-react@molecule/app-command-palette@molecule/app-data-table@molecule/app-maps@molecule/app-notification-feed-react@molecule/app-realtime-socketio@molecule/app-sidebar-layout-react@molecule/app-status-timeline-react@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeiliSearch API keyMAILGUN_API_KEYMailgun API key for notificationsMAILGUN_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