
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
- Visit Adalo.com and sign up
- Click "Create New App" → "Mobile App"
- Browse templates and select "Restaurant template"
- Name your app "DeliverooClone" or your brand name
- Choose Deliveroo's signature teal (#00CCBC) as primary color
- 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:
- Customer App: Restaurant discovery, menu browsing, ordering, tracking
- Restaurant Partner App: Menu management, order processing, analytics
- 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
- Navigate to Database in left sidebar
- Select default "Users" collection
- 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
- 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)
- Relationships:
- In Addresses: add Owner → Users (Many to One)
Step 4: Create Restaurant Partners Collection
- Click "+ Add Collection"
- Name it "Restaurant Partners"
- 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
- Add collection "Menu Categories"
- 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
- Add collection "Menu Items"
- 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
- Add collection "Orders"
- 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
- Add collection "Order Items"
- 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
- In Restaurant Partners:
- Add "Business Owner" → Users (Many to One)
- In Menu Categories:
- Add "Restaurant" → Restaurant Partners (Many to One)
- In Menu Items:
- Add "Category" → Menu Categories (Many to One)
- Add "Restaurant" → Restaurant Partners (Many to One)
- In Orders:
- Add "Customer" → Users (Many to One)
- Add "Restaurant" → Restaurant Partners (Many to One)
- Add "Rider" → Users (Many to One)
- In Order Items:
- Add "Order" → Orders (Many to One)
- Add "Menu Item" → Menu Items (Many to One)
Building Deliveroo's Customer Experience
Step 10: Create Restaurant Discovery Screen
- Add screen "Restaurant Discovery"
- 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
- 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
- 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
- Add screen "Restaurant Detail"
- 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
- 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
- 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
- Add screen "Menu Category View"
- 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
- 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
- Add screen "Basket Review"
- 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
- Add checkout validation:
- Minimum order value checking
- Restaurant availability confirmation
- Delivery area check (compare address against stored delivery radius or allowed zone)
Step 14: Configure Deliveroo Payment Processing
- Install Stripe Marketplace Payment component
- 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
- Configure payment flow:
- Save payment methods for faster checkout
- Apply promotional codes and discounts
- Handle payment failures with retry options
- Send payment confirmation notifications
Building Restaurant Partner Dashboard
Step 15: Create Restaurant Onboarding Flow
- Add screen "Partner Registration"
- 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
- Add approval workflow:
- Set initial status to "Pending Approval"
- Admin review before activation
- Email notifications for status updates
Step 16: Build Menu Management Interface
- Add screen "Menu Management"
- 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
- 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
- Add screen "Orders Dashboard"
- 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
- 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
- Add screen "Order Processing"
- 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
- 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
- Build separate "Rider App"
- Add screen "Available Deliveries"
- 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
- Add delivery filters:
- Maximum distance preference
- Vehicle type compatibility
- Estimated delivery time ranges
- Minimum earning thresholds
Step 20: Build Active Delivery Interface
- Add screen "Active Delivery"
- 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"
- 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
- Add Map component for delivery tracking
- 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
- Navigate to Settings → Push Notifications
- Upload iOS and Android certificates
- 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
Step 23: Create Order Status Updates
- 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"
- 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
- See Add chat
- Create support channels:
- Customer ↔ Restaurant: Order modifications, special requests
- Customer ↔ Rider: Delivery coordination, location clarification
- Restaurant ↔ Rider: Pickup instructions, order details
- 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
- 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)
- 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
- 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
- Implement dynamic pricing:
- First-time user discounts
- Restaurant-specific promotions
- Free delivery thresholds
- Loyalty program rewards
Step 27: Add Delivery Zones (native approach)
- Create a “Delivery Zones” collection:
- Zone Name (Text)
- Base Delivery Fee (Number)
- Is Active (True/False)
- Add a Zone relationship on Restaurants and on Addresses
- 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
- 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
- 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
- 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
- Restaurant Partner Workflow:
- Business registration and approval
- Menu creation and management
- Order acceptance and processing
- Status updates and communication
- Analytics and performance tracking
- 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
- 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
- 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
- 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
- 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
- Keep UI in Adalo; move heavy calculations/history to a backend via External collections
- Use Custom Actions for advanced APIs (e.g., distance/ETA, geocoding)
- Monitor App Actions & list sizes
Costs: Plans and usage vary — see Pricing
Additional Resources
Essential Adalo Resources:
- App Academy - Comprehensive tutorials
- Component Marketplace - Additional features
- Restaurant Template - Starting foundation
- Database Documentation - Relationship setup
- YouTube Channel - Video tutorials
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.










