Protected case study
Wrong password
Don't have the password?

Just drop me a line and I'll get you in!

Case study · GoFood · Android & iOS

From parallel universe to native option: GoFood Flash, 20×.

Role Senior Product Designer
Team GoFood, Gojek
Timeline Q1 – Nov 2025
Status Live · ~5% order penetration
GoFood Flash — case study visual
20× Order growth in 4 months — from 2k to 44k daily
44k Daily checkouts at v2 peak — up from a 2,000 daily MVP baseline
~5% GoFood order penetration — up from under 1% post-MVP
10 Minute gap between what Express promised and what it actually delivered
The insight

We were delivering faster than we were promising.

I was looking at delivery data with my PM and noticed something we'd been hiding from ourselves: Express deliveries that arrived ahead of schedule were averaging 13–15 minutes. Our checkout page told users to expect 25 minutes.

That's not a minor under-promise. That's a different product. In parallel, we'd been watching the quick-commerce wave in India — Zepto, Blinkit, Swiggy Instamart. Sub-15-minute delivery had moved from gimmick to category.

Jakarta's density profile looked similar. We thought the demand signal would translate.

Average Express delivery (actual) ~13 min
Promised at checkout 25 min

A 10-minute gap between promise and reality — an opportunity sitting in plain sight.

The MVP — July 2025

Two design choices that are the entire story.

Before building, concept testing and rapid guerrilla sessions confirmed the value proposition. Users got it — speed of delivery was the headline, the 15-minute promise was credible, and SKU-level eligibility didn't confuse them. We shipped.

The MVP had two design decisions that, in hindsight, explain everything that followed.

01
A dedicated discovery funnel
Flash SKUs lived inside a separate entry point. The only way to reach them was Browse Flash → pick from eligible items → check out. No other path in.
02
A locked checkout
When a user reached checkout from the Flash funnel, Flash was the only delivery option shown. No Express, no Regular, no Hemat — plus a 3-SKU cap. A deliberate container.
Flash MVP — two design choices: dedicated discovery funnel and locked checkout
2k daily checkouts
<1% GoFood order penetration

For a product the team had real conviction in, this was a miss. The logic at the time was reasonable — separating Flash would make it feel premium, focused, intentional. We were wrong about what "protecting" a product actually protects.

The diagnosis

Two cohorts. One finding.

Instead of iterating on the surface — bigger badges, more entry points — we slowed down and talked to users. The research team ran interviews with power users who did use Flash and churned users who tried it once and didn't come back.

"

Power users · Early adopters

"Why isn't Flash available when I'm already browsing my usual merchants?"

They liked Flash and wanted to find it in their normal flow — not behind a separate door they had to remember to open.

"

Churned users · Tried once, didn't return

"I feel like I'm being forced to use Flash."

At checkout, they couldn't see Express or Regular. The thing they'd done a hundred times — compare options before committing — was gone.

"Both groups, from opposite ends of engagement, were telling us the same thing: stop making Flash its own world. Put it inside the world we already use."
Research synthesis, GoFood Flash v2 diagnostic
The pivot

Two decisions from one workshop.

I co-led a workshop with my PM, pulling in design, engineering, ops, and research. We mapped what we'd built against what users were asking for, brainstormed responses, and prioritised by impact and feasibility.

Decision 01
Make checkout look normal again
Flash replaces Express in the standard delivery options list when a user adds 15-minute-eligible SKUs to their cart. Regular and Hemat stay. The 3-SKU cap goes away. Flash stops being a tunnel and becomes a tier.
Before Flash-only locked checkout. No Express, no Regular — and no way to compare. Even users who wanted 15-minute delivery found this disorienting.
After Flash replaces Express in the familiar delivery options list. Users see the pattern they recognise. They can compare. They can choose.
Decision 01 — Flash checkout redesign visualization
Decision 02
Make Flash a label everywhere — not a destination
The harder one — and the one I'm most proud of leading. Flash being native to checkout only matters if users can discover eligible SKUs while browsing normally. That meant a scalable Flash label propagating across every GoFood surface.

Flash label rolled out across

Flash Home
Flash Merchant listing
Flash Search
Flash Merchant profile
Flash Checkout
Decision 02 — Flash label rollout visualization
Small delight
Gimmick of unlocking the 15 mins delivery

The design problem became a coordination problem.

The label expansion required cross-team alignment that went well beyond screens. The MVP's failure mode was protective isolation. The fix required deliberate integration across every touchpoint Flash could plausibly appear on.

Stakeholder alignment
Show other PMs the post-launch data and research — not just the design direction
Convince partner teams to take on label implementation in their surfaces
Get product commitment across GoFood home, search, and merchant surfaces
Design system work
Design a label that worked across multiple surfaces without breaking existing visual hierarchies
Land the Flash badge as a reusable component in the GoFood design system
Coordinate with the design system team for long-term maintenance
Operations alignment
Coordinate with operations on which SKUs qualified at any given time
Build a scalable ops model for Flash eligibility — not a one-off list
Ensure the label reflected real-time eligibility, not stale data
The result

The thing that moved the metric wasn't a new feature.

~5%
GoFood order penetration

Up from under 1% post-MVP. Users discovering Flash naturally in their existing flow converted at a fundamentally different rate than users who had to seek it out.

Funnel, not destination
The real insight

Making Flash a native tier inside an existing flow — rather than a separate product to discover — was the entire lever. The design change was small. The product thinking behind it was the whole project.

"The change wasn't bigger. It was smaller. We stopped making Flash a parallel universe and made it a native option inside the flow users already knew."
GoFood Flash v2 — post-launch summary
Reflection

What this project taught me and what I'd do differently.

01
The "protective wrapper" instinct is usually wrong

When you launch something new, there's a strong pull to seal it off — different funnel, different rules, different visual language — so it doesn't get diluted. Sometimes that's right. More often, you're trading discoverability and trust for the illusion of focus.

02
Concept tests confirm the idea. They don't catch the framing.

Our testing showed users understood and wanted Flash. It didn't catch that they wanted it inside the existing flow, not adjacent to it. The MVP launch was, in a sense, the usability test we couldn't have run earlier — and it was expensive.

03
Post-launch listening is the cheapest design research that exists

The cost of those interviews with power users and churned users was tiny. The information gain was the entire project. We should have scheduled them on day 30 post-launch, not waited until we noticed the numbers weren't moving.

04
A workshop is a design output

Co-leading the v2 workshop with my PM was as much "design work" as the wireframes. Getting the right people in the room, framing the problem so it was solvable, and producing decisions people would commit to — that's where the 20× came from.

05
What I'd do differently

Pre-MVP, I'd have included a "what if Flash were a label, not a funnel?" branch in the original design exploration. We had enough information at concept-test time to consider it. We didn't, because the parallel-funnel framing felt more like a "real launch." That bias is the one I want to keep watching for.