Warehouse Fulfillment
Operations & IoT · React + Node (Express) · 23 @molecule/* packages
ShipBob-like warehouse fulfillment with orders, picking, packing, shipping, and tracking — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (21)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Orders
/orders(signed in) - OrderDetail
/orders/:id(signed in) - PickList
/pick/:id(signed in) - Inventory
/inventory(signed in) - Shipments
/shipments(signed in) - Settings
/settings(signed in) - InventoryDetail
/inventory/:sku(signed in) - ShipmentDetail
/shipments/:id(signed in) - Receiving
/receiving(signed in) - Returns
/returns(signed in) - Reports
/reports(signed in) - Notifications
/notifications(signed in) - Profile
/profile(signed in) - Scanner
/scan(signed in) - Locations
/locations(signed in)
Data model (21 tables)
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- inventory_movements — id, productId, variantId, type, quantity, reason, referenceId, createdAt
- inventory_reservations — id, productId, variantId, quantity, orderId, createdAt
- inventory_stock — id, productId, variantId, total, reserved, lowStockThreshold, createdAt, updatedAt
- locations — id, user_id, zone_id, code, bin_capacity, current_occupancy_pct, created_at, updated_at, …
- notifications — id, user_id, kind, body, payload, read_at, created_at, title, …
- order_events — id, orderId, status, metadata, createdAt
- order_items — id, orderId, productId, variantId, name, price, quantity, image
- orders — id, userId, status, subtotal, tax, shipping, discount, total, …
- pick_lines — id, user_id, pick_list_id, product_variant_id, location_id, quantity_to_pick, quantity_picked, picked_at, …
- pick_lists — id, user_id, order_id, status, assigned_user_id, started_at, completed_at, created_at, …
- product_variants — id, productId, name, sku, price, inventory, createdAt, updatedAt
- products — id, name, slug, description, price, currency, status, imageUrl, …
- receipt_items — id, user_id, receipt_id, product_variant_id, expected_qty, received_qty, created_at
- receipts — id, user_id, supplier, expected_at, received_at, status, received_by_user_id, created_at, …
- return_items — id, user_id, return_id, product_variant_id, quantity, condition, restock_to_location_id, created_at
- returns — id, user_id, original_order_id, rma_number, reason, status, received_at, created_at, …
- shipment_events — id, user_id, shipment_id, status, description, location, created_at
- shipments — id, user_id, order_id, carrier, tracking_number, label_s3_key, weight_oz, status, …
- zones — id, user_id, name, kind, description, created_at, updated_at, code, …
- user_preferences — user_id, data, updated_at
API (12 handlers)
- inventory
api/src/handlers/inventory.ts - locations
api/src/handlers/locations.ts - notifications
api/src/handlers/notifications.ts - orders
api/src/handlers/orders.ts - packing
api/src/handlers/packing.ts - picks
api/src/handlers/picks.ts - preferences
api/src/handlers/preferences.ts - receipts
api/src/handlers/receipts.ts - returns
api/src/handlers/returns.ts - setup
api/src/handlers/setup.ts - shipments
api/src/handlers/shipments.ts - zones
api/src/handlers/zones.ts
Subscription tiers
free / pro / team — gated by: maxOrders, maxPacking, maxPicks, maxShipments, maxZones, advancedFeatures, canExport, retentionDays
Built from 23 @molecule/* packages
@molecule/api-cron-node-cron@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-import-export-csv@molecule/api-payments-stripe@molecule/api-push-notifications-web-push@molecule/api-realtime-socketio@molecule/api-reporting-database@molecule/api-resource-inventory@molecule/api-resource-order@molecule/api-resource-payment@molecule/api-resource-product@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/app-billing-react@molecule/app-charts@molecule/app-command-palette@molecule/app-data-table@molecule/app-keyboard-shortcuts@molecule/app-realtime-socketio@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeiliSearch API keyMAILGUN_API_KEYMailgun API key for shipping 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