Our Work · Local delivery · Flutter
OnWay: Local Delivery Platform
Customers order from local stores and restaurants, independent drivers pick up and deliver, and dispatchers watch the whole fleet on a live map. AI fills carts by voice, checks delivery photos, answers support questions and tells dispatchers what needs attention.
Pick Customer, Driver or Dispatcher on the welcome screen with no sign-up. Stores and people are fictional, checkout is sandbox only and no real money moves.
Who OnWay is for
OnWay is a local delivery platform with three roles in one Flutter codebase. Role-based routing sends each person to a different start screen.
Customers
Browse nearby stores, build a cart, check out, track the driver live, chat with the driver, rate the delivery and view receipts, or simply ask the AI concierge for what they want.
Drivers
Go online, receive 30-second job offers, accept or decline, follow a step-by-step job flow to pickup and drop-off, capture proof of delivery and see their earnings.
Dispatchers
Watch every online driver and active order on a live map, see late, unassigned and flagged orders, read an AI fleet summary, reassign drivers and review the audit log.
What OnWay does
The full order lifecycle, from browsing to receipt, across all three roles.
Stores and menus
Nearby stores sorted by distance or fastest ETA across food, grocery, pharmacy, florals and late night, with items, sizes and add-ons chosen from a bottom sheet.
Cart and checkout
Distance-based delivery fee, service fee, tax, a driver tip of 15 to 25% or custom, leave-at-door or hand-to-customer, delivery instructions, saved addresses and promo codes.
Live tracking
A real-time map with store, drop-off and the driver’s moving marker, an order progress strip, an ETA countdown and a driver nearby alert at 0.3 miles.
Masked chat
Customer and driver message through a relay, so neither sees the other’s phone number. Phone numbers are never stored, only the sender role and order.
Driver job flow
Offers go to the nearest available driver with a live 30-second countdown, then move to the next driver if declined. Each step has one large button and a link out to Google Maps or Apple Maps.
Proof, ratings and receipts
Drivers capture a photo and optional signature; customers see the proof, rate driver and store, and get an itemized receipt. A delivery-failed flow records the reason and starts a return.
Dispatcher console
Headline tiles for orders today, average delivery time, on-time percentage and active drivers, an order table filtered by late, unassigned or flagged, and logged manual actions.
Driver earnings
Today’s total, trips and tips, and a full history of completed trips with base pay, tip, miles and completion time.
AI across the whole delivery
OnWay uses Anthropic’s Claude: Sonnet for ordering, support and fleet summaries, and Haiku for fast photo checks. Every AI call is logged with user, feature, model and tokens.
Voice and chat ordering
Customers describe what they want, by voice or text. AI proposes a cart through a structured tool call, shown as a preview card in the chat; the customer confirms. “My usual” works from order history. AI never places an order or charges a card.
AI support agent
Answers “Where’s my order?” from live data, logs missing items as a support ticket with no automatic refund, cancels before pickup, updates instructions or hands over to a human dispatcher. Every action needs the customer’s confirmation.
AI-checked proof of delivery
The driver’s photo is checked by AI vision and marked clear, unclear or failed. Unclear photos prompt one retake and are flagged for the dispatcher. The delivery still proceeds; the flag is for human review.
What needs my attention?
Dispatchers get a plain-language summary of late orders, unassigned orders, flagged photos and open support tickets, built from the current order table and driver positions. Read-only.
How OnWay is built
Flutter on the front, Supabase Postgres with PostGIS behind it, and a few rules that never bend.
A server-enforced state machine
Orders move from placed to delivered through one idempotent database function that rejects invalid transitions. The app can never write an order’s status directly, and every transition is timestamped and logged.
PostGIS for location
Stores, addresses, drop-offs and live driver positions are stored as geographic points, and the nearest available driver is found with a spatial query.
Row-level security
Customers see only their own orders, drivers only the orders offered or assigned to them, and dispatchers see everything. Only publishable keys ship in the app.
Money in whole cents
Every amount is stored as an integer number of cents, and totals never use floating-point math, so fees, tips and tax always add up.
Privacy by default
Masked chat, proof photos in a private bucket behind signed links that expire after an hour, and location pings deleted after 7 days.
Append-only audit log
Dispatcher actions are recorded with actor, action, order and time in a table that cannot be edited or deleted.
AI behind an Edge Function
All Claude calls go through a Supabase Edge Function, so no secret keys ever reach the app, and AI usage is logged per user and feature.
Honest web simulation
In the browser, 12 simulated drivers move on the map and accept orders automatically, using the same state machine as real drivers, with no separate fake code path.
Watch OnWay in action
Short animated walkthroughs for customers, drivers, dispatchers and technical buyers. Prefer reading? The plain-text guide explains the whole platform.
OnWay in 6 minutesFor everyone · 6:17Pick a role and your accountFor everyone · 0:24Browse stores and build an orderFor customers · 0:34Check out and payFor customers · 0:33Track your driver liveFor customers · 0:40Proof, ratings and receiptFor customers · 0:19Order by chat or voiceFor customers · 0:24Get help from AI supportFor customers · 0:31Take and run a jobFor drivers · 0:39Deliver with AI-checked proofFor drivers · 0:37Run the dispatcher consoleFor dispatchers · 0:39How it stays reliable and safeFor tech buyers · 0:31
Build something like this
OnWay shows how Lycore builds real-time, multi-role platforms: a state machine the app cannot bypass, location data in PostGIS, and AI that helps customers, drivers and dispatchers without ever moving money. Planning a delivery, dispatch or field service app? Let’s talk about what yours needs.
