Skip to content

A delivery app built around fast decisions

A food delivery app where browsing, ordering, and live order tracking are built around quick decisions and a smooth checkout.

7:02

Deliver to · Home

214 Alder St, Apt 3B

DeliveryPickupSchedule
Dishes, restaurants, cuisines

Order again

See all

Dan dan noodles

Lantern Noodle Bar

$14.50Reorder

Al pastor tacos ×3

Casa Brasa

$12.75Reorder

Harvest grain bowl

Green Fork

$13.25Reorder

NoodlesPizzaSaladsBakeryDessert

Near you

sorted by time

$5 off $25
20–30 min$1.49$10 min

Lantern Noodle Bar

Sichuan · Noodles · $$

4.8(2.1k)0.8 mi
30–40 min$0.99$15 min

Little Ember Pizza

Wood-fired · Pizza · $$

4.7(1.4k)1.6 mi
HomeSearchOrdersAccount

The brief, in specifics

Industry
Restaurants & Hospitality
Duration
14 weeks
Cooperation model
Time & materials
Services
Mobile designOrdering flowLive tracking
Integrations
SendGridSegmentSentrySlack
Technologies
React NativeTypeScriptNode.jsWebSocketsMapbox GLStripe API
Team
1 Project lead1 Product designer2 Mobile engineers1 Backend engineer1 QA engineer

Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.

01

Scan-and-Select Browsing

Visual food feed designed for quick decision making and immediate menu customization.

The feed is images first, with the decision-critical facts (price, time, minimum) burned into the card, so choosing doesn't require opening anything. Cards are virtualized and images prefetched two screens ahead, which keeps scrolling at sixty frames on mid-range Android. Customization opens as a sheet over the feed, with no route change, so backing out doesn't lose your place in the list.

What shipped
  • Decision facts on the card: no tap needed to compare
  • Virtualized list with two-screen image prefetch
  • Customization as a sheet, so scroll position survives
7:03

Lantern Noodle Bar

4.8(2.1k)·20–30 min·$1.49 delivery·$10 min
PopularNoodlesDumplingsSidesDrinks
Most ordered

Dan dan noodles

Pork, chili crisp, sesame, peanuts

$14.50

Pork & chive dumplings

Eight, black vinegar dip

$11.00

Smashed cucumber

Garlic, black vinegar, chili oil

$7.50

HomeSearchOrdersAccount
Most ordered

Dan dan noodles

Hand-pulled noodles, minced pork, chili crisp, sesame paste, crushed peanuts.

$14.50

Spice level

Required
MildMediumHot

Add-ons

Optional
Soft-boiled egg+$2.00
Extra chili crisp+$0.75
Bok choy+$1.50
1Add to basket$16.50
On screen

A menu with the customization sheet open over it, so backing out keeps your place in the list.

7:04

Checkout

Lantern Noodle Bar

BasketCheckout3Place order

Arrives

7:32–7:42 PM

NowLater

Deliver to

Home · 214 Alder St, Apt 3B

Leave at door · buzz 3B

Pay with

Card •••• 4417

Secure payment sheet · default

Rider tip

Your usual

10%15%20%Other

Dan dan noodles, dumplings

Promo applied

Subtotal · 2 items$31.00

Delivery$1.49

Service fee$2.10

Tip · 15%$4.65

Promo SUPPER5−$5.00

Total$34.24

Place order$34.24

A hold is placed until the kitchen accepts. If it declines, you are refunded automatically.

02

3-Tap Express Checkout

On screen

Checkout on one screen, with address, card and the usual tip already filled in before the third tap.

Streamlined checkout with saved addresses and 1-click mobile payment methods.

Checkout is three taps because the address, the payment method and the tip default are all resolved before the screen renders. Payment goes through Stripe's native sheet, so card details never touch the app. The order is created optimistically with a hold and confirmed against the restaurant's acceptance, and a rejected order refunds itself without anyone contacting support.

What shipped
  • Address, payment and tip resolved before render
  • Native Stripe sheet: card details never touch the app
  • Rejected orders self-refund without a support ticket
03

Live Driver Tracking

Real-time WebSocket driver location tracking with high-accuracy ETA predictions.

Driver position streams over a WebSocket at four-second intervals and is interpolated on the client, so the marker glides smoothly instead of teleporting between pings. ETAs come from routing against live traffic, not straight-line distance, and the app shows an honest range in place of a falsely precise minute. When the socket drops it degrades to polling instead of freezing the map.

What shipped
  • Four-second position stream, interpolated client-side
  • ETAs routed against live traffic, shown as a range
  • Graceful fallback to polling when the socket drops
7:21
Order #4K-2291
MarcoLive · updated 4s ago

On the way

7:34–7:40 PM

Routed on live traffic · 1.2 mi away

On time
Accepted7:05
Preparing7:06
Picked up7:18
On the waynow
Delivered
M

Marco

E-bike · 4.9 · 1,240 drops

Lantern Noodle Bar · 2 items$34.24
HomeSearchOrdersAccount
On screen

The rider between the kitchen and the door, with the arrival shown as a range and the map updated every few seconds.

Introduction

What we were brought in to do

Browsing felt cluttered and checkout dragged. We rebuilt the ordering experience for people deciding what to eat in under a minute.

A regional delivery operator competing with two national apps on the same restaurants, where the only available differentiator was the ordering experience itself. Repeat rate was the commercial problem: acquisition worked and second orders didn't follow. The engagement was scoped around the minute between opening the app and committing to an order.

Design & Build

Where the old way broke

Too many steps to order and no reliable way to see where a delivery actually was left customers frustrated and re-ordering elsewhere.

Choosing required opening a restaurant, then a menu, then a dish before the price and delivery time were visible: three navigations to answer a question the card could have answered. Then checkout re-asked for an address that was already on file. Funnel data put the two losses at browse and at the address step, and the second one was people who had already decided to buy.

We simplified browsing into a fast scan-and-select flow, streamlined checkout to a minimal number of steps, and added live order tracking customers could trust.

The solution

What we built together

  1. 01

    Redesigned the home feed for scan-and-select ordering

    The card content was agreed with restaurants, since burning price and minimum onto it exposes a comparison they had previously been shielded from.

  2. 02

    Cut checkout to three taps for returning customers

    Address, payment method and tip default are resolved before checkout renders. That's what makes three taps a fact instead of a target.

  3. 03

    Built live driver tracking with accurate ETAs

    Driver position streams every few seconds and is interpolated on the client, with ETAs routed against live traffic and shown as an honest range.

  4. 04

    Instrumented funnel drop-off and iterated weekly

    Funnel drop-off was instrumented before the redesign and reviewed weekly, so every change was answerable against the specific step it was meant to move.

Process

Phase by phase

  1. Phase 1: Funnel & Drop-Off Audit

    Ordering Experience Analysis

    Audited restaurant search, cart build, and checkout drop-off across 20,000 monthly orders to isolate order friction.

    • Funnel Audit Report
    • Cart Friction Map
    • Mobile Delivery UX Benchmark
  2. Phase 2: Visual Browsing UX Design

    Scan-and-Select & 3-Tap Checkout

    Redesigned home feed for visual dish scanning and engineered a 3-tap checkout for returning users.

    • Figma Design System
    • Interactive Prototype
    • Checkout Micro-animations
  3. Phase 3: Real-Time Engineering

    WebSocket Driver Tracking & Payments

    Engineered real-time driver tracking with WebSockets, Mapbox GL routing, and 1-click mobile payments via Stripe.

    • Real-Time Tracking API
    • Mapbox Navigation Layer
    • Stripe Payment Bridge
  4. Phase 4: Store Launch & Funnel Optimization

    App Release & Weekly Conversion Cycles

    Shipped iOS and Android apps, running weekly conversion optimization cycles that increased order conversion by 31%.

    • App Store & Play Store Submissions
    • Funnel Analytics Dashboard
    • Release Sign-off

Supperly

Ops console

Region

Bay Crescent metro

Dispatch88
Riders22
Kitchens2
Zones & pricing
Support14
Funnel
Settings
RO

Rosa Okafor

Dispatch lead

Live orders

Thursday evening · positions stream every 4 seconds

All zonesOrder, venue or rider/Live · 7:21 PM

Live orders

88

Preparing34Awaiting pickup12On the way36Unassigned6

Riders on shift

22

19 carrying · 3 free

Running late

3

Past the top of their ETA range

PreparingOn the wayLate
Bay Crescent metro · 6 zones

Order

Venue

Zone

Status

Rider

ETA

4K-2275Harbor WokHarborOn the wayDev7:31 PM
4K-2291Lantern Noodle BarDowntownOn the wayMarco7:34–7:40
4K-2294Little Ember PizzaRiversideAwaiting pickupKeisha7:38–7:46
4K-2296Green Fork SaladsDowntownPreparingLuis7:41–7:49
4K-2298Casa BrasaEastbankPreparing—7:48–7:58
4K-2299Butter Lane BakeryOld MillUnassigned—7:44–7:54
Running late3 of 88
4K-2275 · Harbor+11 min

Harbor Wok → 118 Pier St

Dev · on the way · Kitchen ran 9 min over its prep quote

Notify customerOpen order
4K-2281 · Northgate+7 min

Saltbox Burgers → 40 Kestrel Ave

Unassigned · 8 min · No free rider inside the zone

Offer to Ana · 0.6 miOpen order
4K-2268 · Old Mill+6 min

Koji & Rice → 9 Birch Ct

Sam · on the way · Mill St bridge closed, rerouted

Notify customerOpen order
Riders22 on the evening board
MMarcoDowntownOn the way
KKeishaRiversideAt pickup
DDevHarborOn the way
AAnaNorthgateFree
SSamOld MillOn the way
On screen

Dispatch with 88 live orders on the region map and the three running late called out.

Operational results after launch

+31%

Order conversion

−48%

Checkout time

+27%

Repeat orders

Conversion is orders per session for sessions that reached the feed, so a change in traffic mix doesn't move it. Checkout time is median time from cart to confirmation for returning customers. Repeat orders compares customers ordering twice within thirty days, before and after, for cohorts acquired in the same way.

Client name withheld under NDA. Figures are approximate, drawn from the engagement’s own reporting.

About our collaboration

A cross-functional team of 5 worked on a time & materials basis over 14 weeks, covering Mobile design, Ordering flow, Live tracking. We ran daily standups with an in-house lead in the room, and a demo at the end of every sprint. Scope changed twice during the engagement, and both times the change was priced and agreed before work started.

The funnel was instrumented before any redesign and reviewed weekly, so each change was answerable against the step it was meant to move. Restaurants were involved in the feed work. The decision to burn price and minimum onto the card needed their agreement, since it exposes a comparison they had previously been shielded from.

What we'd carry into the next one

  1. 01

    Streamlining checkout to 3 taps cut checkout time by 48% and boosted repeat orders.

    Most of the checkout time was never the form. It was the address step re-asking for something already on file, which reads to a customer as the app not knowing them.

  2. 02

    Real-time WebSocket driver tracking with accurate ETAs reduced customer support inquiries.

    Tracking cut support because the questions were "where is it" and "when will it arrive." A map that moves smoothly answers both without anyone typing.

  3. 03

    Visual scan-and-select dish browsing increased cart conversion by 31%.

    Putting the comparison on the card was the whole conversion gain: the decision people were failing to make was between restaurants, not within a menu.

Four apps, one dispatch layer

High-concurrency delivery architecture: smooth live tracking, WebSocket courier dispatch, and a 3-tap checkout.

The same product, seen from the customer, the rider, the kitchen and dispatch. Switch tabs, or use the arrow keys once one is focused.

7:02

Deliver to · Home

214 Alder St, Apt 3B

DeliveryPickupSchedule
Dishes, restaurants, cuisines

Order again

See all

Dan dan noodles

Lantern Noodle Bar

$14.50Reorder

Al pastor tacos ×3

Casa Brasa

$12.75Reorder

Harvest grain bowl

Green Fork

$13.25Reorder

NoodlesPizzaSaladsBakeryDessert

Near you

sorted by time

$5 off $25
20–30 min$1.49$10 min

Lantern Noodle Bar

Sichuan · Noodles · $$

4.8(2.1k)0.8 mi
30–40 min$0.99$15 min

Little Ember Pizza

Wood-fired · Pizza · $$

4.7(1.4k)1.6 mi
HomeSearchOrdersAccount

Position updates

Polling vs. a live stream

Most delivery apps ask the driver's phone for its last position every fifteen seconds and hold the map still in between. Supperly's tracking screen streams positions every four seconds and interpolates the path between them, which is why its ETA can afford to be a tight, held range instead of a shrug.

Standard delivery app

Polling every 15s (sped up here for legibility)

Updated 0s ago
Arrives7:30–7:52 PM

A wide, shifting window: the last fix is already out of date by the next one.

Supperly

Positions stream every 4s, interpolated for a smooth glide

Live · updated 4s ago
Arrives7:34–7:40 PM

On time: the same window the tracking screen holds to for the whole trip.

Checkout, underneath

The hold, from tap to capture

Checkout already discloses this in one line. Underneath it is a Stripe pre-authorization the kitchen has a short window to act on, with a clean exit on either side of that window.

Checkout: Stripe places a pre-authorization hold

A hold is placed until the kitchen accepts. If it declines, you're refunded automatically.

The kitchen has 2 minutes to accept the ticket

Comfortable for nearly every venue on the board. The two flagged for slow acceptance are the only ones that sometimes run past it.

Accepted

The hold is captured as a real charge. Cooking starts on the same ticket the docket already shows.

Declined or timed out

The hold is voided instantly. No charge is ever made, so there's nothing to dispute and no chargeback risk.

Building a multi-sided marketplace or real-time geolocation app? Scope your build in 3 minutes.

Scope your build
Have a project?

Let's talk

Running a large platform, shaping a first MVP, or getting a product ready for a funding round? Tell us where you are. We'll shape the process around it, and stay with you after launch.