Retail & commerce · 2025

One app for 340 stores, shipped on both platforms in fourteen weeks

A Flutter loyalty and commerce app with offline-tolerant checkout, unified inventory and a design system that finally made the brand consistent across channels.

4 months Engagement length
7 specialists Delivery team
4.8★ Combined store rating
+29% Repeat purchase rate

The situation

What we walked into.

The group ran a loyalty card, a web store and 340 physical locations with no shared customer record. A previous outsourced app had been pulled from the stores at 2.3 stars. Store staff had stopped promoting digital entirely, and in-store connectivity in half the locations was unreliable enough to break any checkout that assumed a live connection.

Client profile

Client Regional retail group
Industry Retail & commerce
Duration 4 months
Team 7 specialists

Approach

The decisions that mattered.

Not a chronology — the four calls that determined how the project turned out.

01

Research in the aisles

Two weeks of shadowing shoppers and staff in eight stores. The killer feature was not personalisation — it was knowing whether an item was in stock nearby before driving there.

02

Cross-platform, deliberately

We modelled native versus Flutter and showed the client that the app had no hardware-critical requirements. Flutter cut the estimate by roughly a third and let one team ship both platforms in step.

03

Offline-first checkout

A local queue with conflict resolution means scanning, basket and loyalty accrual all work with no signal and reconcile automatically when connectivity returns.

04

Design system across channels

One token-driven system in Figma and code, applied to the app, the web store and in-store screens so the brand stopped fragmenting.

What we shipped

Delivered scope.

  • Flutter app for iOS and Android from a single codebase
  • Offline-tolerant basket, scanning and loyalty accrual
  • Near-store stock availability with reserve and collect
  • Unified customer profile across app, web and point of sale
  • Shared design system and component library
  • Staged rollout with feature flags and per-region enablement

Technology

FlutterDartNode.jsGraphQLPostgreSQLFirebaseFastlaneSentry

Results

What changed for the business.

312k Installs in the first quarter
+29% Repeat purchase rate
4.8★ Average rating across both stores
+18% Basket size for app users
  • Reserve-and-collect became the second most used feature within six weeks of launch.
  • Support contacts per thousand active users came in 44% below the old app.
  • The design system cut front-end build time on the web store refresh roughly in half.
The research phase changed the product. We were about to build recommendations nobody asked for, and instead shipped the stock checker that store managers now demo to customers themselves.
CD Chief Digital Officer
Regional retail group

Your project

Have a comparable problem?

Tell us where you are stuck. You will get a senior response within one business day, including whether we think we are the right team for it.