Food Delivery
E-commerce · React + Node (Express) · 22 @molecule/* packages
DoorDash-like food delivery platform with restaurant menus, ordering, driver tracking, and real-time ETA — 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 - Restaurants
/restaurants(signed in) - RestaurantMenu
/restaurant/:id(signed in) - Checkout
/checkout(signed in) - OrderTracking
/order/:id(signed in) - Orders
/orders(signed in) - Settings
/settings(signed in) - Search
/search(signed in) - Favorites
/favorites(signed in) - Notifications
/notifications(signed in) - OrderConfirmation
/checkout/confirmation/:id(signed in) - OrderDetail
/orders/:id(signed in)
Data model (16 tables)
- addresses — id, user_id, label, street, city, postal_code, country, lat, …
- delivery_tracking — id, order_id, driver_id, status, driver_lat, driver_lng, eta_minutes, started_at, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- driver_locations — id, driver_id, order_id, lat, lng, recorded_at
- favorites — id, user_id, restaurant_id, created_at
- menu_items — id, restaurant_id, name, description, price, category, dietary_tags, preparation_time, …
- menu_modifiers — id, menu_item_id, name, options, required, max_selections, sort_order, created_at
- notifications — id, user_id, type, title, body, payload, read_at, created_at
- order_events — id, order_id, status, metadata, created_at
- order_items — id, order_id, menu_item_id, name, quantity, unit_price, modifiers, special_instructions, …
- order_reviews — id, order_id, customer_id, restaurant_id, driver_id, food_rating, delivery_rating, comment, …
- orders — id, customer_id, restaurant_id, driver_id, status, subtotal, delivery_fee, service_fee, …
- payment_methods — id, user_id, stripe_payment_method_id, brand, last4, exp_month, exp_year, is_default, …
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- restaurant_reviews — id, restaurant_id, user_id, order_id, rating, body, created_at
- restaurants — id, owner_id, name, description, cuisine, address, phone, latitude, …
API (11 handlers)
- \_hours
api/src/handlers/_hours.ts - \_seed
api/src/handlers/_seed.ts - addresses
api/src/handlers/addresses.ts - delivery
api/src/handlers/delivery.ts - favorites
api/src/handlers/favorites.ts - menu
api/src/handlers/menu.ts - notifications
api/src/handlers/notifications.ts - orders
api/src/handlers/orders.ts - payment-methods
api/src/handlers/payment-methods.ts - restaurants
api/src/handlers/restaurants.ts - settings
api/src/handlers/settings.ts
Subscription tiers
free / pro / team — gated by: maxDelivery, maxMenu, maxOrders, maxRestaurants, advancedFeatures, canExport, retentionDays
Built from 22 @molecule/* packages
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-geolocation-google@molecule/api-image-sharp@molecule/api-payments-stripe@molecule/api-push-notifications-web-push@molecule/api-realtime-socketio@molecule/api-resource-order@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-data-table@molecule/app-maps@molecule/app-notification-feed-react@molecule/app-realtime-socketio@molecule/app-status-timeline-react@molecule/app-top-nav-layout-react@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringSTRIPE_SECRET_KEYStripe secret API key for payment processingSTRIPE_PUBLISHABLE_KEYStripe publishable key for client-side checkoutSTRIPE_WEBHOOK_SECRETStripe webhook signing secretMEILISEARCH_API_KEYMeiliSearch admin API keyGOOGLE_MAPS_API_KEYGoogle Maps API key for geocoding and distance calculationsS3_BUCKETS3 bucket for restaurant and menu imagesAWS_ACCESS_KEY_IDAWS access key for S3AWS_SECRET_ACCESS_KEYAWS secret key for S3MAILGUN_API_KEYMailgun API key for transactional 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