---
title: "One system across three platforms | standardLayer"
description: "A consumer app shipping on iOS, Android, and Web, with a design team that had just scaled fast. What changed, and why the drift stopped."
url: https://standardlayer.io/built/one-system/
---

Consumer social

# One shared system across
iOS, Android, and Web.

A consumer social app on three platforms, with a design team that had just grown fast and a product that was quietly coming apart.

Situation

Consumer social app on iOS, Android, and Web. The design team scaled faster than the product’s structure.

What I owned

System-level decisions across three platforms, alongside shipping feature work.

What changed

One versioned token source replaced ad-hoc UI decisions. Drift stopped compounding.

![A shared token source connecting product interface decisions to iOS, Android, and Web](https://standardlayer.io/_astro/one-system-01.oou478aG_8fVOG.webp)

## What was true before

The app was a consumer social product shipping across iOS, Android, and Web. The team was strong and moving fast. They had no shared model for how interfaces should behave, scale, and ship.

Inconsistent UI was the symptom everyone could see. The cause was that every team re-decided the same things, on three platforms, with nothing to inherit. Exceptions accumulated until they became the default.

## Three decisions

1.  01

    Built the system layer inside the shipping work rather than beside it, so it was validated against real product complexity as it was built.

2.  02

    Made design decisions a versioned source of truth that all three clients consumed, so token changes shipped like code changes.

3.  03

    Standardised component anatomy and states early, so variation happened by rule instead of by interpretation.

![Dark mode group chat interface using the shared component and token system](https://standardlayer.io/_astro/one-system-02.BQ3xfnA4_25dfsR.webp)

![Light mode group chat interface using the shared component and token system](https://standardlayer.io/_astro/one-system-03.Cim3kPl0_Z1A2LuB.webp)

## What it survived

The usual failure mode is a system built beside the product: complete, documented, and adopted by nobody. This one was built inside the shipping work, so by the time it was ready to adopt it was already in the product.

Designers converted their own live screens into system examples rather than being handed a library. New surfaces inherited the token layer, the component rules, and the platform logic by default, which is what made the drift stop compounding with every release.

![Web product interface for discovering groups and events with a group chat overlay](https://standardlayer.io/_astro/one-system-04.CYliJgQ6_aD4PE.webp)

## What this means for you

If engineering is shipping faster than design decisions settle, more design hours will not close the gap. Someone has to decide what becomes the standard and what gets cut, release after release, while the roadmap keeps moving.

That is what a [Design Partner](https://standardlayer.io/#what-i-do) engagement is for.

[Read the full case study (opens in a new tab)](https://koziol.design/work/irl/) [Next: A product that needed explaining.](https://standardlayer.io/built/schema-first)

When the cause is unclear,
start with [first look](https://standardlayer.io/#what-i-do).

When one area needs to move,
run a [Product Sprint](https://standardlayer.io/#what-i-do).

When the product keeps changing,
bring in a [Design Partner](https://standardlayer.io/#what-i-do).

---

Product design and design engineering for teams shipping faster than their foundation can support.

[hello@standardlayer.io](mailto:hello@standardlayer.io)

Remote-first. Europe-based.
