Updated Sep 11, 2025

Step-by-Step Guide: Building a Deliveroo Clone with Adalo

Table of Contents
Text Link

This comprehensive tutorial walks you through creating a Deliveroo-style food delivery platform using Adalo's no-code platform. While certain advanced features like real-time tracking have limitations, you'll build a complete multi-sided marketplace with restaurants, customers, and delivery drivers matching Deliveroo's core functionality.

Prerequisites and Initial Setup

Step 1: Create Adalo Account and Select Template

  1. Visit Adalo.com and sign up
  2. Click "Create New App" → "Mobile App"
  3. Browse templates and select "Restaurant template"
  4. Name your app "DeliverooClone" or your brand name
  5. Choose Deliveroo's signature teal (#00CCBC) as primary color
  6. Select clean, modern typography matching Deliveroo's design

The Restaurant template includes essential features: sign-in, restaurant browsing, menu, cart, and checkout.

Step 2: Plan Your Deliveroo-Style Architecture

Design three interconnected apps replicating Deliveroo's ecosystem:

  1. Customer App: Restaurant discovery, menu browsing, ordering, tracking
  2. Restaurant Partner App: Menu management, order processing, analytics
  3. Rider App: Delivery assignments, navigation, earnings tracking

Plan separate apps with shared data (via the same Adalo app or a shared backend) for specialized interfaces.

Building Deliveroo's Database Structure

Step 3: Configure Users Collection for Multiple Roles

  1. Navigate to Database in left sidebar
  2. Select default "Users" collection
  3. Add Deliveroo-specific properties:
    • Account Type (Text) - Values: "Customer", "Restaurant Partner", "Rider"
    • Phone Number (Text)
    • Profile Photo (Image)
    • Current Location (Location) - For customers and riders
    • Rider License Number (Text) - For delivery partner verification
    • Vehicle Type (Text) - "Bicycle", "Motorbike", "Car", "On Foot"
    • Rider Status (Text) - "Online", "Busy", "Offline"
    • Average Rating (Number) - From customer reviews
    • Total Orders (Number) - Order history counter
  4. Create Addresses collection (for saved addresses):  
    • Label (Text) — e.g., Home, Office
    • Street (Text)  
    • City (Text)  
    • State/Region (Text)
    • Postal Code (Text)  
    • Location (Location)  
    • Is Default (True/False) 
  5. Relationships:  
    • In Addresses: add Owner → Users (Many to One)

User collection guide

Step 4: Create Restaurant Partners Collection

  1. Click "+ Add Collection"
  2. Name it "Restaurant Partners"
  3. Add Deliveroo restaurant properties:
    • Business Name (Text)
    • Cuisine Type (Text) - "Italian", "Chinese", "Indian", etc.
    • Description (Text - Multiline)
    • Hero Image (Image) - Main restaurant photo
    • Logo (Image)
    • Business Address (Location)
    • Contact Phone (Text)
    • Business Email (Email)
    • Delivery Radius (Number) - In kilometers
    • Delivery Fee (Number)
    • Minimum Order Value (Number)
    • Average Preparation Time (Number) - In minutes
    • Restaurant Rating (Number)
    • Total Reviews (Number)
    • Is Open (True/False) - Real-time availability
    • Opening Hours (Text) - JSON format for weekly schedule
    • Stripe Connect Account ID (Text) - For marketplace payments
    • Commission Rate (Number) - Platform fee percentage
    • Featured Status (True/False) - For promoted listings

Step 5: Build Menu Categories System

  1. Add collection "Menu Categories"
  2. Configure Deliveroo-style categorization:
    • Category Name (Text) - "Starters", "Mains", "Desserts", "Drinks"
    • Category Description (Text)
    • Category Image (Image) - Optional visual
    • Display Order (Number) - For sorting
    • Is Available (True/False) - Enable/disable categories
    • Special Badges (Text) - "Popular", "New", "Spicy"

Step 6: Create Menu Items with Deliveroo Features

  1. Add collection "Menu Items"
  2. Include Deliveroo-specific properties:
    • Item Name (Text)
    • Item Description (Text - Multiline)
    • Base Price (Number)
    • Item Image (Image)
    • Is Available (True/False) - Real-time stock control
    • Preparation Time (Number) - Individual item timing
    • Nutritional Info (Text) - Calories, allergens
    • Dietary Labels (Text) - "Vegetarian", "Vegan", "Gluten-Free", "Halal"
    • Spice Level (Number 0-3) - Deliveroo's spice system
    • Popular Badge (True/False) - "Most Popular" indicator
    • Customizable (True/False) - Has modification options

Step 7: Design Orders Collection

  1. Add collection "Orders"
  2. Implement Deliveroo's order structure:
    • Order ID (Text) - Auto-generated unique identifier
    • Order Status (Text) - "Placed", "Accepted", "Preparing", "Ready", "Picked Up", "Delivered", "Cancelled"
    • Subtotal (Number) - Items cost
    • Delivery Fee (Number) - Variable by distance/time
    • Service Fee (Number) - Deliveroo's platform fee
    • Total Amount (Number) - Final payment
    • Payment Method (Text) — e.g., “Card”
    • Payment Status (Text) - "Pending", "Paid", "Refunded"
    • Delivery Address (Location) - Customer destination
    • Delivery Instructions (Text - Multiline) - Special notes
    • Estimated Delivery Time (Date & Time)
    • Order Placed At (Date & Time - Automatic)
    • Delivered At (Date & Time)
    • Rider Notes (Text) - Internal communication
    • Customer Rating (Number) - Post-delivery feedback

Step 8: Create Order Items Junction Table

  1. Add collection "Order Items"
  2. Configure cart functionality:
    • Quantity (Number)
    • Unit Price (Number)
    • Line Total (Number) - Quantity × Unit Price
    • Customizations (Text) - JSON for modifications
    • Special Requests (Text) - Customer notes per item

Step 9: Establish Database Relationships

  1. In Restaurant Partners:


    • Add "Business Owner" → Users (Many to One)
  2. In Menu Categories:


    • Add "Restaurant" → Restaurant Partners (Many to One)
  3. In Menu Items:


    • Add "Category" → Menu Categories (Many to One)
    • Add "Restaurant" → Restaurant Partners (Many to One)
  4. In Orders:


    • Add "Customer" → Users (Many to One)
    • Add "Restaurant" → Restaurant Partners (Many to One)
    • Add "Rider" → Users (Many to One)
  5. In Order Items:


    • Add "Order" → Orders (Many to One)
    • Add "Menu Item" → Menu Items (Many to One)

Database relationships

Building Deliveroo's Customer Experience

Step 10: Create Restaurant Discovery Screen

  1. Add screen "Restaurant Discovery"

  2. Implement Deliveroo's browsing interface:


    • Search Bar with cuisine and restaurant name filtering
    • Horizontal Category Scrolling - "Pizza", "Chinese", "Healthy", "Fast Food"
    • Delivery Time Filter - "Under 30 mins", "Under 45 mins"
    • Rating Filter - 4.0+ stars only
    • Free Delivery Badge - Filter by zero delivery fee
  3. Add Custom List for restaurants:


    • Data: Restaurant Partners
    • Filter: Is Open = true (use stored Delivery Radius or allowed zones; distance math is not native)
    • Sort: Featured Status (Descending), then Rating
    • Show: Hero image, logo, name, cuisine, rating, delivery time, delivery fee
  4. Include Deliveroo-style visual elements:


    • "New" badges for recently added restaurants
    • "Free Delivery" promotional tags
    • Estimated delivery time (combine restaurant prep time + driver estimate; live traffic isn’t native)

Step 11: Build Restaurant Detail Page

  1. Add screen "Restaurant Detail"

  2. Replicate Deliveroo's restaurant layout:


    • Hero Section: Large restaurant image, name, rating, delivery info
    • Restaurant Info Strip: Cuisine type, delivery fee, minimum order
    • Menu Categories Navigation: Sticky horizontal scroll
    • Popular Items Section: Highlighted best-sellers
  3. Add Custom List for Menu Categories:


    • Filter: Restaurant = Current Restaurant AND Is Available = true
    • Sort: Display Order (Ascending)
    • Navigation: Click to jump to category section
  4. Include Deliveroo features:


    • Restaurant rating breakdown with review count
    • Estimated delivery time (combine restaurant prep time + driver estimate; live traffic isn’t native)
    • Restaurant opening hours with "Opens at" indicators

Step 12: Create Menu Item Selection

  1. Add screen "Menu Category View"

  2. Display items in Deliveroo's card format:


    • Item Cards: Image, name, description, price
    • Dietary Labels: Visual icons for vegetarian, vegan, etc.
    • Spice Level Indicators: Chili pepper symbols
    • Popular Badges: "Most Popular" flags
  3. Add quantity selector with customization:


    • Plus/Minus Buttons for quantity adjustment
    • Customization Modal for modifications
    • Add to Cart Animation matching Deliveroo's feedback

Step 13: Implement Deliveroo-Style Cart

  1. Add screen "Basket Review"

  2. Build cart interface matching Deliveroo:


    • Restaurant Header: Current restaurant with change option
    • Item List: Quantities with inline editing
    • Cost Breakdown: Subtotal, delivery fee, service fee, total
    • Delivery Time: Updated estimate based on current load
    • Delivery Address: Selected from address book
  3. Add checkout validation:


    • Minimum order value checking
    • Restaurant availability confirmation
    • Delivery area check (compare address against stored delivery radius or allowed zone)

Shopping cart

Step 14: Configure Deliveroo Payment Processing

  1. Install Stripe Marketplace Payment component

  2. Set up Deliveroo's payment structure:


    • Customer pays total amount
    • Set a platform fee (percentage) in the component
    • Payouts go to the restaurant’s connected account
    • Restaurant receives subtotal minus commission
    • Delivery fee goes to rider payment pool
  3. Configure payment flow:


    • Save payment methods for faster checkout
    • Apply promotional codes and discounts
    • Handle payment failures with retry options
    • Send payment confirmation notifications

Marketplace Payments

Building Restaurant Partner Dashboard

Step 15: Create Restaurant Onboarding Flow

  1. Add screen "Partner Registration"

  2. Implement Deliveroo's partner signup:


    • Business Information: Name, cuisine, description, images
    • Legal Documents: Business license upload, tax information
    • Bank Details: Stripe Connect account creation
    • Operating Hours: Weekly schedule configuration
    • Delivery Settings: Radius, fees, minimum orders
  3. Add approval workflow:


    • Set initial status to "Pending Approval"
    • Admin review before activation
    • Email notifications for status updates

Step 16: Build Menu Management Interface

  1. Add screen "Menu Management"

  2. Create Deliveroo partner tools:


    • Category Management: Add, edit, reorder menu sections
    • Item Management: Full CRUD operations for menu items
    • Bulk Availability Toggle: Quick enable/disable for items
    • Price Adjustment: Real-time pricing changes
    • Image Upload: High-quality food photography
  3. Include inventory features:


    • "Out of Stock" toggles for unavailable items
    • Preparation time adjustments during busy periods
    • Special dietary labels management

Step 17: Create Order Management Dashboard

  1. Add screen "Orders Dashboard"

  2. Implement Deliveroo's restaurant interface:


    • New Orders Tab: Incoming orders requiring acceptance
    • Preparing Tab: Accepted orders in kitchen
    • Ready Tab: Completed orders awaiting pickup
    • Order History: Past orders with analytics
  3. Add order actions:


    • "Accept Order" with preparation time estimate
    • "Reject Order" with reason selection
    • "Mark Ready" triggering rider assignment
    • Customer communication options

Step 18: Build Order Detail Management

  1. Add screen "Order Processing"

  2. Show comprehensive order information:


    • Customer Details: Name, phone, delivery address
    • Order Summary: Itemized list with customizations
    • Timing Information: Order placed time, promise time
    • Special Instructions: Customer notes and dietary requirements
  3. Include restaurant tools:


    • Preparation time adjustment slider
    • Direct customer messaging
    • Print receipt functionality
    • Order modification capabilities

Developing Deliveroo Rider App

Step 19: Create Rider Dashboard

  1. Build separate "Rider App"

  2. Add screen "Available Deliveries"

  3. Show Deliveroo-style delivery marketplace:


    • Available Orders List: Orders ready for pickup
    • Earning Estimates: Payment per delivery with distance
    • Delivery Distance: Pickup to dropoff calculation
    • Batch Opportunities: Multiple orders from same area
  4. Add delivery filters:


    • Maximum distance preference
    • Vehicle type compatibility
    • Estimated delivery time ranges
    • Minimum earning thresholds

Step 20: Build Active Delivery Interface

  1. Add screen "Active Delivery"

  2. Implement Deliveroo rider tools:


    • Restaurant Information: Name, address, phone, order details
    • Customer Information: Delivery address, contact, special instructions
    • Navigation Integration: Direct maps link for routing
    • Status Updates: "Arrived at restaurant", "Picked up", "Delivered"
  3. Include communication features:


    • Quick SMS templates for common updates
    • Call restaurant and customer buttons
    • Photo confirmation for delivery proof
    • Delivery completion with digital signature

Step 21: Implement Location Updates

  1. Add Map component for delivery tracking
  2. Update rider location during key events:
    • Order acceptance → Send location to customer
    • Restaurant arrival → Notify estimated pickup time
    • Order collection → Update with delivery ETA
    • Customer arrival → Confirm delivery location

Important: Adalo doesn’t support continuous GPS tracking or background location updates.

Implementing Deliveroo's Communication System

Step 22: Configure Push Notifications

  1. Navigate to Settings → Push Notifications
  2. Upload iOS and Android certificates
  3. Set up Deliveroo-style notification triggers:
    • Order Placed → Restaurant partner
    • Order Accepted → Customer with preparation time
    • Order Ready → Assigned rider
    • Rider Assigned → Customer with rider details
    • Order Collected → Customer with delivery ETA
    • Delivered → All parties with completion confirmation

Push notifications setup

Step 23: Create Order Status Updates

  1. Configure automatic status notifications:


    • Order Confirmation: "We've received your order from [Restaurant]"
    • Preparation Updates: "Your order is being prepared - [X] minutes remaining"
    • Rider Assignment: "[Rider Name] is collecting your order"
    • Delivery Updates: "Your rider is [X] minutes away"
  2. Include dynamic content using magic text:


    • Restaurant names and order numbers
    • Estimated delivery times
    • Rider names and contact information
    • Order totals and payment confirmations

Step 24: Add Customer Support Chat

  1. See Add chat

  2. Create support channels:


    • Customer ↔ Restaurant: Order modifications, special requests
    • Customer ↔ Rider: Delivery coordination, location clarification
    • Restaurant ↔ Rider: Pickup instructions, order details
  3. Configure automated responses:


    • Order status inquiries with real-time updates
    • Delivery time estimates based on current location
    • Common FAQ responses for typical questions

Advanced Deliveroo Features

Step 25: Build Rating and Review System

  1. Create "Reviews" collection:


    • Rating (Number 1-5) - Star rating system
    • Review Text (Text - Multiline) - Customer feedback
    • Review Type (Text) - "Restaurant", "Rider", "Order Quality"
    • Helpful Votes (Number) - Community feedback on reviews
    • Review Date (Date & Time - Automatic)
  2. Implement post-delivery review prompts:


    • Automatic review request 1 hour after delivery
    • Separate ratings for food quality, delivery speed, rider service
    • Photo uploads for visual feedback

Step 26: Create Deliveroo-Style Promotions

  1. Add "Promotions" collection:


    • Promo Code (Text) - Unique discount codes
    • Discount Type (Text) - "Percentage", "Fixed Amount", "Free Delivery"
    • Discount Value (Number) - Amount or percentage
    • Minimum Spend (Number) - Order threshold
    • Usage Limit (Number) - Maximum redemptions
    • Expiry Date (Date) - Promotion deadline
    • Applicable Restaurants (Text) - JSON list of eligible partners
  2. Implement dynamic pricing:


    • First-time user discounts
    • Restaurant-specific promotions
    • Free delivery thresholds
    • Loyalty program rewards

Step 27: Add Delivery Zones (native approach)

  1. Create a “Delivery Zones” collection:


    • Zone Name (Text)
    • Base Delivery Fee (Number)
    • Is Active (True/False)
  2. Add a Zone relationship on Restaurants and on Addresses
  3. Implement checks:
    • Show restaurants where Zone matches the Address’s Zone
    • Apply the Base Delivery Fee from the selected Zone

Note: Polygon boundaries and distance/ETA math aren’t native. If needed, store pre-assigned zones or call an external API via Custom Actions.

Step 28: Build Analytics Dashboard

  1. Create admin analytics screens:


    • Restaurant Performance: Orders, ratings, revenue
    • Rider Metrics: Deliveries completed, earnings, ratings
    • Customer Insights: Order frequency, favorite cuisines, spending
    • Platform KPIs: Total orders, average order value, commission revenue
  2. Add Operations screens:
    • Orders by status (list views)
    • Average delivery times
    • Customer satisfaction scores
    • Revenue tracking and forecasting

Testing Your Deliveroo Clone

Step 29: Conduct Comprehensive Testing

  1. Customer User Journey:


    • Account registration and profile setup
    • Restaurant discovery and filtering
    • Menu browsing and customization
    • Cart management and checkout
    • Order tracking and communication
    • Review submission and ratings
  2. Restaurant Partner Workflow:


    • Business registration and approval
    • Menu creation and management
    • Order acceptance and processing
    • Status updates and communication
    • Analytics and performance tracking
  3. Rider Experience Testing:


    • Registration and vehicle verification
    • Order assignment and acceptance
    • Navigation and delivery completion
    • Earnings tracking and payment
    • Customer communication tools

Step 30: Optimize Performance

  1. Database Optimization:


    • Limit restaurant lists to 20-30 items per load
    • Implement pagination for menu items
    • Use conditional visibility for role-based features
    • Clear completed orders older than 30 days
  2. Image Management:


    • Compress all food photos before upload
    • Use appropriate image dimensions (1200x800 for hero images)
    • Implement lazy loading for menu items
    • Cache frequently accessed restaurant logos

See Optimize performance for list sizes, images, and data strategies.

Deployment and Platform Considerations

Step 31: Prepare for Launch

  1. App Store Requirements:


    • Choose a paid plan as needed — see Pricing
    • App icons, splash screens, and store descriptions
    • Privacy policy and terms of service
    • Age rating and content classifications
  2. Legal Compliance:


    • Food safety regulations compliance
    • Data protection (GDPR/CCPA) requirements
    • Business license and insurance verification
    • Payment processing compliance (PCI DSS)

Step 32: Handle Platform Limitations

Deliveroo Features Not Available in Adalo:

  • Real-time GPS tracking of riders
  • Live order updates without app refresh
  • Advanced route optimization
  • Background location monitoring
  • Complex surge pricing algorithms

Recommended Workarounds:

  • Push notifications for status updates
  • Manual refresh prompts for customers
  • Use Custom Actions for external APIs
  • Use Push notifications for live-like updates
  • Hybrid architecture for advanced functionality

Step 33: Plan Scaling Strategy

  1. Keep UI in Adalo; move heavy calculations/history to a backend via External collections
  2. Use Custom Actions for advanced APIs (e.g., distance/ETA, geocoding)
  3. Monitor App Actions & list sizes

Costs: Plans and usage vary — see Pricing

Additional Resources

Essential Adalo Resources:

Development Timeline:

  • Basic Deliveroo MVP: 3-4 weeks
  • Complete three-app platform: 8-10 weeks
  • Testing and optimization: 2-3 weeks
  • App store approval: 1-2 weeks

Note: This Deliveroo-style clone covers menus, cart/checkout, basic order status, and role-specific apps using Adalo’s native features. Advanced logistics like continuous GPS tracking, automatic dispatch/batching, distance-based fees, and background jobs aren’t native. If you need those, wire a lightweight backend and trigger server-side workflows via Custom Actions. Keep lists lean, enable progressive loading, and test on real devices for performance.

Start Building With An App Template
Build your app fast with one of our pre-made app templates
Try it now
Read This Next

Looking For More?

Ready to Get Started on Adalo?