20,000t
of commodity exports moving through the platform monthly, across three continents
Sabi Trace · Sabi
Interfaces, brand systems, and the software underneath — drawn and shipped by one team.
The seam is where products fail. A short piece on why products break in the same place every time, and what one team standing on both sides of it does about that. But first, some work:
An operating system for cross-border commodity trade
One design system across five fintech products
A personal path to fluency in Yoruba and Igbo
A music platform where artists get paid, not played
A design critic that does not need a meeting
Where the name comes from
In Yoruba, ojú is the face, and also the eye. Ojú-ìwé — the face of a leaf — is how you say page. The word for a surface someone reads is built from the word for the part of a person that does the reading.
That is an interface, described precisely, a very long time before anyone needed the English word. A face is not decoration laid over a body. It is where a thing meets you, and it is honest about what sits behind it.
We took the name because we build both halves — and because a studio that only drew the face would have no business using it.
What actually goes wrong
The happy path gets drawn, reviewed, approved and built. It is nearly always fine. What fails is everything at the join: the empty state nobody specced, the error copy written in a ticket at 6pm, the loading behaviour that was a designer's assumption and a developer's guess, and the fourteen edge cases that only exist once real data arrives.
None of those are design problems, and none of them are engineering problems. They are handover problems — invisible to whichever side does not own them.
What gets drawn
Every screen in the deck, in the states somebody thought of.
What gets reached
Every state the product can actually enter, including the ones nobody drew.
20,000t
of commodity exports moving through the platform monthly, across three continents
Sabi Trace · Sabi
Being straight about it
How the work runs
Four stages, one team across all of them. The people who draw it are the people who build it, which is the only reason the join holds.
We work out what the actual problem is, which is rarely the one in the brief. Research, stakeholder interviews, a look at what you already have.
Flows, then screens, then a system. We test the risky parts early and cheaply, before they are expensive to change.
The same team that drew it builds it, so nothing is lost at handover. Shipped in increments you can see, not one reveal at the end.
Launch is the middle, not the end. We monitor, fix, and hand over cleanly, or stay on if you want us to.
Campaigns
Campaign work for banks, telcos and restaurant brands — 24 pieces across 12 names.
One thing we do that most studios do not
Before anything ships we walk the whole product looking only for joins: every state a screen can enter, every place a design decision quietly became a developer's judgement call, every string written in a hurry and never read again.
It takes half a day. It is where most of the bugs a user would have found instead get found.
We will run one on a product we did not build. Ask about it →
Bring the part that keeps going wrong. We would rather start there than with a brief.