
This comprehensive tutorial will walk you through creating a fully functional food delivery marketplace using Adalo's no-code platform. You’ll build a complete multi-sided marketplace with restaurant listings, ordering systems, payments, and delivery management. While some advanced features like real-time GPS tracking and live order updates require external integrations, we will guide you on how to implement these features using Custom Actions and third-party services like Firebase.
Prerequisites and Initial Setup
Step 1: Create Your Adalo Account and App
- Visit Adalo.com and create an account
- Click "Create New App"
- Select "Mobile App" for full camera and location features
- Name your app (e.g., "FoodHub Delivery")
- Choose "Start from Template" and select Restaurant Ordering Template
Step 2: Configure Basic App Settings
- Set primary color scheme (red/orange for food apps)
- Choose readable fonts for menu text
- Enable location services in app settings
- Configure push notification permissions
- Set up the Google Maps API key in Adalo. For configuration details, refer to Google Maps API setup documentation
Setting Up the Marketplace Database
Step 3: Enhance the Users Collection
- Navigate to Database in left sidebar
- Select default "Users" collection
- Add role-based properties:
- Is Customer (True/False - default: true)
- Is Restaurant Owner (True/False - default: false)
- Is Driver (True/False - default: false)
- Phone Number (Text)
- Profile Picture (Image)
- Current Location (Location)
- Delivery Address (Location)
Step 4: Create Restaurants Collection
- Click "+ Add Collection"
- Name it "Restaurants"
- Add essential properties:
- Restaurant Name (Text)
- Description (Text - Multiline)
- Address (Location)
- Phone (Text)
- Cuisine Type (Text)
- Opening Hours (Text)
- Delivery Fee (Number)
- Minimum Order (Number)
- Rating Average (Number - default: 0)
- Is Active (True/False - default: true)
Step 5: Build Menu Structure Collections
- Create "Menu Categories" collection:
- Category Name (Text)
- Display Order (Number)
- Is Available (True/False)
- Create "Menu Items" collection:
- Item Name (Text)
- Description (Text - Multiline)
- Price (Number)
- Image (Image)
- Is Available (True/False)
- Preparation Time (Number)
Step 6: Create Order Management Collections
- Create "Orders" collection:
- Order Number (Text)
- Status (Text - Values: "Pending", "Confirmed", "Preparing", "Ready", "Out for Delivery", "Delivered", "Cancelled")
- Order Total (Number)
- Delivery Fee (Number)
- Tax Amount (Number)
- Tip Amount (Number)
- Special Instructions (Text)
- Delivery Address (Location)
- Order Date (Date & Time - Automatic)
- Estimated Delivery (Date & Time)
- Create "Order Items" collection:
- Quantity (Number)
- Item Price (Number)
- Special Requests (Text)
Step 7: Set Up Database Relationships
- Restaurants relationships:
- Add "Owner" → Users (Many to One)
- Menu Categories relationships:
- Add "Restaurant" → Restaurants (Many to One)
- Menu Items relationships:
- Add "Category" → Menu Categories (Many to One)
- Add "Restaurant" → Restaurants (Many to One)
- Orders relationships:
- Add "Customer" → Users (Many to One)
- Add "Restaurant" → Restaurants (Many to One)
- Add "Driver" → Users (Many to One)
- Order Items relationships:
- Add "Order" → Orders (Many to One)
- Add "Menu Item" → Menu Items (Many to One)
Building Customer-Facing Features
Step 8: Create Restaurant Discovery Screen
- Add new screen "Browse Restaurants"
- Add Custom List component:
- Data source: Restaurants
- Filter: Is Active = true
- Display for each restaurant:
- Restaurant image/logo
- Name and cuisine type
- Rating stars and delivery time
- Delivery fee and minimum order
- Add Search Input component:
- Filter restaurants by name
- Enable real-time-like search via manual refresh
Step 9: Build Restaurant Detail Screen
- Create "Restaurant Detail" screen
- Add restaurant header section:
- Cover image
- Name, rating, and delivery info
- Hours and contact details
- Add menu categories navigation:
- Horizontal Custom List of categories
- Click action filters menu items
- Add menu items display:
- Custom List filtered by selected category
- Show item details and "Add to Cart" buttons
Step 10: Implement Shopping Cart System
- Create "Shopping Cart" screen
- Add cart items list:
- Custom List of Order Items
- Filter: Order > Customer = Logged In User AND Order > Status = "Pending"
- Display item details and quantity controls
- Add order summary section:
- Subtotal calculation
- Delivery fee display
- Tax calculation
- Total amount
- Add checkout button linking to payment
Step 11: Configure Payment Processing
- Set up Stripe Marketplace Payments and get API keys. For detailed instructions, refer to the official Stripe Marketplace Payments documentation
- In Adalo settings, add Stripe configuration
- Create "Checkout" screen with:
- Payment Component from Adalo
- Dynamic pricing from cart total
- Success action: Update order status to "Confirmed"
- Send confirmation notifications
Restaurant Management Dashboard
Step 12: Build Restaurant Owner Registration
- Create "Restaurant Registration" screen
- Add form components:
- Restaurant details input
- Location picker for address
- Document upload for verification
- Bank details for payments
- On submit: Create restaurant record linked to user
Step 13: Create Order Management Interface
- Add "Restaurant Dashboard" screen
- Add incoming orders list:
- Filter: Restaurant = Current User's Restaurant
- Group by order status
- Real-time refresh capability
- Add order detail actions:
- Accept/Decline buttons for new orders
- Status update dropdown
- Estimated preparation time input
Step 14: Build Menu Management System
- Create "Menu Management" screen
- Add category management:
- Custom List of menu categories
- Add/edit/delete category options
- Add item management:
- Custom List of menu items by category
- Edit pricing and availability
- Upload/change item images
- Toggle item availability
Driver Functionality
Step 15: Create Driver Registration
- Build "Driver Application" screen
- Add verification forms:
- Driver license upload
- Vehicle information
- Insurance documents
- Background check consent
- Set up approval workflow for new drivers
Step 16: Build Driver Dashboard
- Create "Driver Home" screen
- Add available orders list:
- Filter: Status = "Ready" AND within delivery radius
- Sort by distance or order value
- Add active delivery tracking using external services like Firebase (for real-time updates)
- Current assigned order details
- Customer contact information
- Navigation integration with external maps
Step 17: Implement Delivery Status Updates
- Add status update buttons on active deliveries
- Configure automatic notifications:
- "Picked up" status → notify customer
- "Delivered" status → complete order
- Photo capture for delivery confirmation
Adding Location and Maps Integration
Step 18: Configure Google Maps Services
- Get Google Maps API key with enabled services:
- Maps JavaScript API
- Places API
- Geocoding API
- Distance Matrix API
- Add API key in Adalo settings
- Test location services on all screens
Step 19: Add Restaurant Location Features
- Install Maps component from Adalo Marketplace
- Display restaurants on map view:
- Multiple markers for restaurant locations
- Custom markers with restaurant logos
- Info windows with basic details
- Add distance-based filtering:
- "Restaurants within 5 miles" filter
- Sort by closest to furthest
Step 20: Handle Delivery Address Management
- Add location picker for delivery addresses
- Save customer addresses for repeat orders
- Calculate delivery fees based on distance
- Validate addresses within delivery zones
Implementing Real-Time Features
Step 21: Set Up Push Notifications
- Configure notification permissions on app launch. For guidance on setting up Push Notifications, visit Adalo Push Notifications setup guide
- Create notification triggers for:
- New orders (to restaurants)
- Order confirmations (to customers)
- Status updates (to all parties)
- Delivery completion alerts
- Test notifications across iOS and Android
Step 22: Add Live Order Tracking (External Integration)
- Sign up for Firebase or similar service for real-time updates
- Use Custom Actions to update driver locations and enable location-based updates
- Create webhook endpoints for location updates from external services
- Display tracking on customer order screen
- Offer manual refresh (pull-to-refresh or button) or on-visit updates via Custom Actions while the screen is open; background intervals aren’t supported natively
Step 23: Configure Order Status Automation
- Set up automatic status progressions
- Add time-based triggers:
- Auto-accept after restaurant timeout
- Driver assignment for ready orders
- Delivery completion reminders
- Implement status change notifications using Push Notifications
Payment and Commission Management
Step 24: Set Up Stripe Connect for Marketplace
- Choose a paid plan as needed — see Pricing
- Configure Stripe Connect in restaurant onboarding — see Stripe Connect Marketplace
- Add commission percentage settings
- Set up automatic payment splitting:
- Platform commission (5-15%)
- Restaurant payment (remaining amount)
- Driver tips (separate processing)
Step 25: Build Financial Dashboard
- Create earnings overview for restaurants
- Add transaction history displays
- Show commission breakdowns
- Enable payout schedule management
- Add dispute resolution workflows
Advanced Features and Optimization
Step 26: Implement Performance Optimizations
- Enable "Load Items as User Scrolls" on all lists
- Set maximum list item limits (20-30 items)
- Optimize images (compress/resize before upload and use smaller thumbnails in lists)
- Use calculated fields instead of dynamic calculations
- Consider external database migration for large datasets
Step 27: Add Review and Rating System
- Install Star Rating component from marketplace
- Create "Reviews" collection with:
- Rating (1-5 stars)
- Review text
- Customer and restaurant relationships
- Calculate average ratings for restaurants
- Display reviews on restaurant detail screens
Step 28: Build Customer Support Features
- Create help center with FAQs
- Add in-app chat for customer service
- Build order issue reporting system
- Set up refund request workflows
- Add contact information and support hours
Multi-App Architecture Strategy
Step 29: Split Into Specialized Apps
For optimal performance, create separate apps sharing one database:
- Customer App: Ordering and tracking only
- Restaurant App: Order management and menu updates
- Driver App: Delivery assignments and navigation
- Admin App: Platform management and analytics
Each app optimizes for specific user needs while sharing the same database.
Step 30: External Service Integration
Consider these external services for production scaling:
- Xano or Airtable: Database management for 10,000+ records
- Firebase or similar services: Real-time notifications and tracking
- Twilio: SMS backup notifications
- Make.com: Complex workflow automation
- Analytics platforms: User behavior tracking
Testing and Launch Preparation
Step 31: Comprehensive Testing Protocol
- Create test accounts for all user types
- Test complete order workflows:
- Customer browsing and ordering
- Restaurant order management
- Driver pickup and delivery
- Payment processing and commissions
- Verify notification delivery across platforms
- Test location services and mapping accuracy
Step 32: Launch Preparation
- Choose a paid plan as needed
- Complete app store preparation:
- App descriptions and screenshots
- Privacy policy and terms of service
- Age ratings and content guidelines
- Set up customer support systems
- Prepare marketing materials and launch strategy
Platform Limitations and Workarounds
Critical Constraints to Address:
Performance Issues:
- Apps slow significantly after 2,500 records per collection
- Lists-within-lists create exponential performance problems
- External database required for large-scale operations
Real-Time Limitations:
- Adalo does not support native live tracking. For such features, use external integrations like Custom Actions or Firebase
- Manual refresh required for updates
Workaround Strategies:
- Use external collections for large datasets
- Implement Firebase for real-time updates
- Create separate apps for different user types
- Optimize images and limit list sizes
Cost Breakdown and Resources
Adalo Subscription Costs:
- For detailed pricing, please refer to the official Adalo Pricing page
Additional Service Costs:
- For detailed Google Maps API pricing, visit Google Maps API pricing
- For detailed Stripe pricing, visit Stripe Pricing
- External databases may incur additional fees (varies by provider)
- Optional third-party push services may incur additional fees
Marketplace Components:
- For detailed pricing on components, visit Adalo Component Marketplace
Additional Resources
- Adalo Component Marketplace for specialized features
- Database Documentation for relationship setup
- Custom Actions Guide for external integrations
- App Templates for starting points
- Video Tutorials for visual learning
Note: This Grubhub clone includes menus, ordering, cart/checkout, basic payment integration, and delivery management using Adalo’s features. Real-time updates like GPS tracking, dynamic ETA calculations, and background job handling aren’t native. If you need those features, integrate external services through Custom Actions or External Collections. For large-scale apps, optimize your app with progressive list loading, external databases, and efficient image handling to ensure better performance.










