Skip to content
DON LOKUGE.

Selected work

Case study 01

Commonwealth Bank / Server-Driven UI

Rethinking how mobile experiences are delivered.

Client
Commonwealth Bank
Engagement
Delivered through Bilue
Discipline
Platform Engineering, TypeScript, Mobile Architecture
Stack
TypeScript, React / JSX, GitHub Actions, Design tokens

01

Overview

I built a TypeScript Server-Driven UI SDK and backend API for Commonwealth Bank's mobile platform. Instead of every screen being compiled into the app, mobile teams can deliver UI through server-defined JSON.

The work had three parts: the SDK itself, a React/JSX templating system for authoring screens, and the automation that keeps design tokens and API deployments in step.

02

Challenge

In a conventional mobile app, changing a screen means changing native code and waiting for a release. Server-driven UI moves screen composition to the server, so the hard part becomes the contract: a payload format that is expressive enough for product teams, strict enough for native renderers to trust, and consistent with the design system.

03

Responsibilities

  • Built the TypeScript Server-Driven UI SDK and the backend API.
  • Developed the React/JSX templating system that converts declarative components into validated SDUI payloads.
  • Defined the SDK interfaces and extension patterns for use across product teams.
  • Automated design-token synchronisation from the design system, and API deployment, through GitHub Actions.

04

Architecture

TEMPLATEJSX templatesDeclarative componentsVALIDATEPAYLOADscreenheadersectioncardcardRENDERMOBILEDESIGN TOKENSDesign system, synchronised by GitHub Actions
Declarative JSX templates are validated into a JSON payload, which native mobile clients render as screens. Design tokens are synchronised from the design system.

Screens are written as JSX components. The templating system turns that tree into a JSON payload and validates it before it leaves the server, so a native client only ever receives a structure it knows how to render.

05

Decisions

JSX as the authoring format

Screens are authored as declarative React/JSX components rather than hand-written JSON.

Validation at the boundary

Payloads are validated when they are produced, not when a device tries to render them.

Interfaces built for extension

The SDK defines interfaces and extension patterns so other product teams can add to it.

06

Trade-offs

07

Results

08

Lessons