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
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