← All cases

Retail · two supermarket chains · 2022 — 2024

Changing an app's screens without shipping a new version

A BFF that sends the whole screen —⁠content, styles and actions⁠— so Android, iOS and the web change without shipping a new version.

The problem

In the app of two supermarket chains, customers follow their orders on Android, iOS and the web. Three clients showing the same thing, and in a native app a UI change usually means publishing a new version to the stores.

BFFassembles the screenAndroidiOSWebcontent · styles · actions
The backend assembles the screen; Android, iOS and the web draw it.

What I did

I started the BFF (backend for frontend) behind that part of the app from scratch and wrote most of its code.

The BFF doesn't just send data: it sends the screen. Each section travels with its content, its text styles and what every button does —⁠open a link, a modal or a drawer⁠— and the three apps draw it as it arrives.

Later I built a department store's BFF, in the same group, with the same approach.

What happened

A UI change shipped with a backend deploy, without publishing a new version of the app. The apps went from only showing an order to letting customers reschedule and cancel it.

NestJS · TypeScript · Kubernetes