DEV3 Ladlero – Food Delivery Laravel Script with Kitchen Timers, Rider Dispatch & Food Halls (Flutter Apps)

A self-hosted multi-restaurant food delivery platform on Laravel 12 and Filament 4 with three Flutter apps: kitchen timers, rider dispatch, food-hall orders with one rider, refunds, commission rules and restaurant statements. Web installer and demo data included.

by DEV3 TechnologiesVerified Author(0) 0 sales 1 viewsUpdated 05 Nov 2026

Video tour. Pick a section below to browse 118 screenshots in 33 sections.

App & phone tours

Tap play to watch each app. Nothing downloads until you do.

  • Mobile web0:50
  • Customer app1:34
  • Restaurant app1:43
  • Rider app1:33

Ladlero is a food delivery platform that you host yourself, built by DEV3 Technologies on Laravel 12 and Filament 4, with three Flutter apps for customers, restaurants and riders. Customers order from independent kitchens or from a food hall, kitchens accept and prepare against a timer, and riders are offered deliveries by radius. Staff work in an admin panel, restaurants in their own panel. The demo business serves the fictional seaside city of Cassimar.

No live demo: 118 grouped screenshots and two video tours show the 3D marketing site, the public ordering site, the admin and restaurant panels and all three apps. Install it with the demo data to try every role on your own server.

Ordering

  • A public ordering site with a restaurant wall (each kitchen as a tile with rating, speed and delivery cost), search and filters, menus with required and optional modifier groups, a cart, checkout with a rider tip and a total that is re-quoted on every change.
  • Food halls: mix up to three kitchens in one order with one rider, one delivery fee and a subtotal per kitchen. If one kitchen declines, the customer sees the refund first and chooses to continue with the others or cancel everything.
  • Card, wallet and cash on delivery, vouchers and restaurant-funded promos.
  • Order tracking, delivered and rating screens, and a refund status that shows every refund, its amount and whether it is paid.

Kitchens

  • A restaurant panel and a restaurant app with a ticket rail (new, cooking, ready), accept or reject with a reason, prep time from 10 to 45 minutes, a one-time extension, sold-out switches for dishes and single modifier options, pause and opening hours, earnings and period statements.
  • Accept deadlines are enforced under a lock when an order is read, so nothing depends on the cron firing on time.

Riders and dispatch

  • The rider app offers deliveries with a countdown ring, expanding the radius in rounds (2, 4 and 7 km by default), then guides to the kitchen, takes the pickup code, guides to the customer and takes the drop code. Cash orders need the exact cash entered, and a drop that cannot be completed has its own reasons.
  • Earnings with a daily chart, cash owed and cash-out.
  • An ops panel with unassigned orders, an offers log showing who got each offer and how they answered, zones, and a live order board.
  • Only the assigned rider can complete a handoff; kitchen staff cannot.

Money

  • Commission rules by default, cuisine and restaurant with dates and priority, refunds up to an ops limit with a reason, and a refund table that decides who bears each cost (the tip returns to the customer only when the rider is at fault).
  • Restaurant statements per period with food, commission, refunds and VAT, as print-ready HTML. Reports for GMV, take rate, acceptance rate, delivery time and refund rate per restaurant.
  • Money is applied only when the gateway confirms payment, and the concurrency checks include parallel payouts.

The apps

  • Customer, restaurant and rider apps in Flutter with light and dark themes, a tablet layout, English and Arabic with right-to-left layout, and bundled fonts.
  • Each app starts in demo mode with built-in data and switches to your server with two build flags.

What is included

  • The Laravel application with Composer packages and compiled assets inside (no Node.js or Composer on the server), the three Flutter projects in apps/, the shared DEV3 Flutter package, a web installer and HTML documentation.
  • Demo data for the fictional city: 41 kitchens, 845 dishes and 57 riders at the start, with about 18,000 orders of history and a keep-alive command that keeps orders in flight.

Good to know

  • The admin and restaurant panels are English only. The public site, the customer account and all three apps include Arabic with right-to-left layout.
  • Restaurant statements are HTML only (print-ready), not PDF files.
  • The apps use simulated GPS. The rider's position and the tracking line come from a simulator, and the dispatch map is a stylised drawn map. For real tracking you need to add a GPS plugin to the apps and connect a map provider.
  • There is no address geocoder. An address typed on the site is pinned near the middle of the active restaurants unless the browser supplies a location. Add a geocoding provider for production.
  • Scheduled orders are available through the API and the apps; the web checkout orders as soon as possible.
  • Payments, SMS and push are simulated by default. Stripe, Razorpay and PayPal drivers are included but were not run against real accounts, and push and SMS were not tested with real providers.
  • The apps were not tested on physical devices. They build as debug Android packages and run on the iOS simulator.
  • Fonts: the apps bundle a display font with Latin glyphs only; Arabic text falls back to a system Arabic font.
  • Use MySQL or MariaDB on a live site. Some payout and cash unit tests pass without their fixes on SQLite, and the concurrency checks that prove them run on MySQL 8.
  • Name: Ladlero is a working name checked by a web search only, not a trademark clearance. Check it before you launch under it.
  • No hosted demo. All restaurants, dishes and people in the screenshots are fictional; the dish art is drawn in code.

Quality checks

Ladlero 1.0.0 passed the seven release gates of the DEV3 Laravel suite on the final code: static analysis (Larastan level 6, 0 errors), 359 Pest tests with 4,525 assertions, a front-end size budget, migrations and seeding on MySQL 8 and SQLite, a headless-browser pass over 150 pages and 44 happy paths with parallel-request race checks on MySQL, an installer test from the zip, and a secret scan. The apps passed analysis and tests with debug Android and iOS simulator builds: 128 tests for the customer app, 136 for the restaurant app and 184 for the rider app. Lighthouse scores were not measured.

How it's built

Architecture, stack, key decisions and the quality gates DEV3 Ladlero passed before release.

The engineering behind Ladlero: deadlines enforced under a lock when an order is read, rider offers in widening radius rounds, a handoff only the assigned rider can complete, and a refund table that decides who bears each cost.

The problem it solves

A food order has three people with clocks. The kitchen must accept within a window, and an order left alone must not sit forever. A rider offer must expire and move on to the next rider without two riders getting the same order. A food-hall order can have one kitchen decline while two accept, and the customer must be offered a refund before choosing. Cash orders need the right amount in the rider's hand, and refunds must say who bears the cost, kitchen, rider or platform, without paying anyone twice. All of this has to stay correct when a payment webhook, a rider tap and a timer arrive in the same second.

Architecture and approach

Ladlero is a Laravel 12 application with Filament 4 panels at /admin and /restaurant, a customer area at /account, a public ordering site and a REST API that three Flutter apps use. It builds on the shared DEV3 Laravel core.

Deadlines are applied on read

Every deadline (kitchen accept, rider offer, partial decision, cannot-deliver) is applied lazily under a lock the moment an order is read or acted on. A scheduled tick only catches orders nobody is looking at, so the product behaves correctly even when the cron is late.

Offers in rounds

Rider offers go out in widening radius rounds. Each offer is logged with who received it, how long it lasted and what they answered. Only the assigned rider can post the pickup and drop codes, and kitchen staff cannot complete a handoff.

Money on confirmation

Card money is applied only when the gateway confirms payment, and unpaid card orders hold an inert placeholder delivery so the dispatch queries never lock a range. A refund table decides who bears each cost, and a logic review of the engine fixed 25 issues, each with a regression test.

Three apps, one contract

The customer, restaurant and rider apps share one API contract and a shared Flutter package, and start in a demo mode with built-in data.

Quality gates and results

Ladlero 1.0.0 passed the seven release gates on the final code: 359 Pest tests with 4,525 assertions, 150 pages and 44 happy paths in a headless browser with race checks on MySQL, the installer test from the zip and a clean secret scan. The customer, restaurant and rider apps pass analysis and 128, 136 and 184 tests.

Limits are listed on the item page: the apps use simulated GPS, the admin and restaurant panels are English only, and statements are HTML only.

Tech stack

Area Technologies
Application Laravel 12, Filament 4, Blade, REST API
Dispatch Lazy deadlines under lock, Radius-round offers, Handoff codes, Food-hall orders
Money Gateway-confirmed payments, Refund table, Commission rules, Restaurant statements
Apps Flutter, Shared dev3 Flutter package, Demo mode, Arabic RTL
Quality Pest, Larastan level 6, Headless browser smoke, MySQL race checks

Inside the build

Lazy Susan hero: An enamel-rimmed lazy Susan turns on a tiled table while a copper ladle pours the sauce ribbon. Lazy Susan hero — An enamel-rimmed lazy Susan turns on a tiled table while a copper ladle pours the sauce ribbon.

Menu: Modifier chips orbit the lifted plate and snap onto the dish. Menu — Modifier chips orbit the lifted plate and snap onto the dish.

Guides & articles

Practical guides and engineering write-ups for DEV3 Ladlero.

Food delivery software: 7 things to check before you pick one

Last updated
Food delivery software: 7 things to check before you pick one: DEV3 Ladlero

A food delivery platform has three customers at once: the person eating, the kitchen and the rider. Here are seven things to check before you pick software, with DEV3 Ladlero as the worked example.

Ladlero hero: a lazy Susan turns on a tiled table while a ladle pours the sauce ribbon

1. Do kitchens have a clock?

An order should not wait forever for a kitchen. Ladlero gives kitchens an accept window and a prep time, and applies the deadline the moment anyone reads the order, so it works even when the scheduler is late.

2. How are riders chosen?

Look for offers that expire and widen. Ladlero offers a delivery to nearby riders first, then widens the radius in rounds, and logs every offer.

A rider offer with a draining countdown ring

3. Can one order use several kitchens?

Food halls need one rider, one delivery fee and a subtotal per kitchen, and a clear answer when one kitchen declines.

Food hall: mix up to three kitchens in one order

4. How is cash handled?

Cash on delivery needs a handoff code and the exact amount. Ladlero refuses a drop when the cash does not match the order total and tracks cash owed per rider.

5. Who pays for a refund?

Decide up front who bears each cost, kitchen, rider or platform. Ladlero uses a refund table and returns the tip only when the rider is at fault.

6. Do restaurants get statements?

Each period, per kitchen, with food, commission, refunds and VAT. Ladlero's statements are print-ready HTML, not PDF files.

7. What is not finished?

Ask for the limits in writing. For Ladlero: the admin and restaurant panels are English only, and the apps use simulated GPS, so real tracking needs a GPS plugin.

The admin back office in dark mode

Video tour of Ladlero

Frequently asked questions

The complete source code (version 1.0.0) as a download from your account, with the setup and usage guides shown on this page. You can modify the code to suit your product.

Buying guides: Laravel scripts with Filament panels and a web installer · Next.js or Laravel for a SaaS script?

More from this author

View all

Related in Web Scripts & Software

View all