Interfaces people actually understand the first time — without being taught.
Before you read: Written from live engineering practice — the money-moving, million-user work our team runs on our own products, set down so anyone building something can learn from it.
01 · What it is
The best interface is one nobody has to explain. We research before we draw, so screens are built around how the user actually thinks rather than how the org chart does, and we test on real users before we commit. Wireframes and flows settle the architecture of the experience, prototypes let users feel it before a single line of product code, and visual design brings a deliberate system rather than free-styled taste. Motion and micro-interactions are used with purpose — to guide, confirm and reassure — and the whole thing is designed to survive contact with real people, real devices and real networks.
What a ui/ux design build covers:
An interface is judged inside the first ten seconds, and on a phone in Kenya those seconds happen on prepaid data, a budget Android and a network that drops mid-flow. We design the journey before the pixels: the exact path from first screen to finished outcome, the states in between and every checkpoint where a user could stall or doubt. Decoration earns its place only when it serves clarity — an error state that tells a user what to do next outranks a gradient that does nothing. The result is software that feels safe on first use and stays fast on the hundredth.
What we do
How we do it
02 · The full discipline
Most software is not rejected because it is ugly. It is rejected because a stranger cannot figure it out — where to tap, whether it worked, what is about to happen to their money. On a money platform those small moments are the whole product: the pause before a tap, the 'pending' state nobody explains, the PIN pad that feels unsafe. We design from the reality that a real person with a real phone, real patience and a real data budget is about to meet this software cold.
We build interfaces for the Kenyan reality we operate in — the tenant paying rent on expensive prepaid data, the landlord running six units from a low-end Android, the merchant sending money across town mid-morning. Because KodiiPay is a payments platform we run in production, every screen we design for a client is a screen we have also designed for ourselves: STK push flows, wallet balances, PIN keypads, exact-shortfall top-up prompts and confirm dialogs where a wrong tap means real money moves. The craft below is the craft we actually live with.
Below is how we do it — the research, the flows, the wireframes, the component craft and the usability testing that happen before production code is written, and the same discipline that keeps shipping after launch. This is what it means to design software that nobody has to explain.
03
On a product that moves money, the interface is not a skin painted over logic — it is where the product's promises become tangible. A calm balance screen, a clearly stated fee and a confirmed state are trust controls, not cosmetics, and we design them with the same structure we bring to the backend: deliberate, tested, failure cases included.
This is why we start before pixels: with the user, the flow and the outcome — and only then decide how it should look.
04
We interview and observe before we draw. The most useful thing you can learn about a user is not which colour they prefer but what they actually do when the app does something unexpected — and that fact only surfaces by watching, not by guessing.
On our own platform, research is how the exact-shortfall top-up prompt was born — a user told us they topped up 'enough' and still failed; we stopped guessing and started telling them the precise amount.
05
A screen is a moment; a flow is the journey between moments. Before we design any screen we map the journeys the product must carry — happy path, retry path, dead end and recovery — because a flow diagram exposes decisions that a screen sketch hides.
Flows come first because they cost nothing to change on paper and everything to change once screens, copy and code have been built around them.
06
Wireframes are where the product's skeleton gets settled: layout, hierarchy, the order of fields, what appears first and what is hidden where. They are cheap to draw, cheap to throw away and expensive to skip.
A wireframe that survives stakeholder review is a flow that has been stress-tested before a single professional pixel was spent.
07
Kenya is an Android-first market on dramatic device variety, prepaid data and networks that flap between generations. Every design decision we make is tested against that reality — a screen that only works on a flagship in a lab is a screen we consider broken.
We literally test on these realities — our own KodiiPay screens are exercised on budget Android devices and throttled connections, so the design that ships is the design that survives.
08
Most Kenyans hold a phone in one hand and thumb the screen; the top of a tall screen is a dead zone. We design the primary action where the thumb already is, and we put the risky actions out of reach of accident.
A screen you can use one-handed in a matatu is a screen the whole market can use; that is the practical definition of accessible.
09
Money touches are where craft matters most. The PIN keypad, the confirm dialog and the 'result received' screen are the moments a user's trust is made or lost, and we treat them as a craft of their own rather than one more screen in the style guide.
These are the screens KodiiPay users see every day, and we have rewritten them enough times to know the difference between a screen that moves money and a screen that earns trust.
10
An 'insufficient balance' error is a design moment, not just a validation message. Telling a user they need KES 142 when they have KES 100 creates a loop of failed attempts; telling them they are short by exactly KES 42 — and offering a one-tap top-up for that precise amount — turns a failure into a completed payment.
This pattern exists in our own production app because we measured how many failed payments came from vague shortfall messaging — then we fixed the message, not just the users.
11
Consistent software is built from a library of components whose behaviour is defined once and inherited everywhere: buttons, inputs, dialogs, chips, toggles, lists and the states each can be in. Craft is in the detail of those states.
Component craft is what makes a product feel engineered: the same control behaves the same way in every screen, and the user learns the product once.
12
The small moments — a button that deepens as it is pressed, a check that confirms a code, a card that slides to reveal a result — are not flourishes. They are how the interface tells the user 'that worked', 'keep going' and 'now you can relax'.
We use micro-interactions to reduce doubt in exactly the places doubt costs money — the moment before an STK push fires and the moment after the result lands.
13
Every screen we ship has met a real user before it ships. Usability testing on the actual audience — not the founding team, not the developer's mother — is the cheapest insurance in software, and we do it on prototypes before writing production code.
On money flows we test the costly paths hardest — double-submission, low balance, killing the app mid-payment — because the design must hold when the user is stressed, tired and in a hurry.
14
A screen that fails contrast, ignores screen readers or assumes two working thumbs excludes real users and fails real audits. We treat accessibility as a design constraint from the first frame, not a checklist shouted at the team a week before launch.
Accessibility is not a special case of good design; it is the full definition of it. We design for the widest audience because the widest audience is the real audience.
15
Dark mode is not a filter you flip; it is a second palette with its own contrast decisions, elevation rules and stress on colour. We build both themes from tokens so they stay coherent and testable, never as afterthoughts painted late onto each screen.
On an app used in glaring Nairobi sun and dim evening rooms alike, a theme that adapts is kindness; a theme that breaks is a bug.
16
Visual consistency is not a coincidence; it is a language of type, colour and spacing with agreed grammar. When the scale, palette and rhythm are defined once, every screen inherits the same voice, and the product stops feeling stitched together.
A user should not be able to tell where one designer ended and another began; on our builds they cannot, because there is only one language.
17
A product with no data, a product waiting for a network, and a product that just failed are not edge cases — they are the majority of some users' experience. We design these states with the same attention as the happy path because they are where users decide whether to stay.
The users who see only our empty, loading and error screens are our most fragile users; we design for them deliberately rather than hoping they never exist.
18
A clickable prototype is the fastest way to make an idea tangible, testable and killable before production costs accumulate. We prototype at the right fidelity — rough for flow, refined for feel — and we let the prototype do the arguing.
Every KodiiPay flow that carries money was walked as a prototype before it was walked as code — the shortfall prompt, the confirmation card, the failed-payment recovery.
19
The handoff is where products die: a beautiful screen cannot be built as designed, a component does not exist in the library, a state was never designed because design and engineering never compared notes. We keep the two disciplines inside one loop.
Design is not a department that throws drawings over a fence; it is a discipline inside the build that starts before code and ends after launch.
20
We are direct about what user experience can and cannot fix. Great UX cannot make a broken business model work, cannot compensate for a slow backend, and cannot keep a feature alive that nobody actually needs. Design's job is to make the true strengths feel effortless — not to decorate over weaknesses.
We will tell you when the problem is not the interface — and fix the thing underneath instead, because a studio that only knows how to design is a studio that will let you polish a dead product.
The toolchain
This is the design machinery we run on every engagement — from the first user interview to the shipped, tested screen. Every layer exists because a money product in the Kenyan market demanded it.
01
Learning before drawing
02
Settling the skeleton cheaply
03
From structure to feel
04
The single visual vocabulary
05
Real users, before the build spends money
06
Design that survives an audit
07
What was designed is what ships
Lifecycle
Every interface we build travels the same arc: learn before you draw, draw before you build, test before you ship, measure after you launch.
01
Interviews and observation to learn how the task is done today and where it hurts.
02
The problem, the outcome and the success metric the design must serve.
03
Happy paths, failure branches and recovery routes for every journey.
04
Wireframes that settle structure, hierarchy and states cheaply.
05
Clickable designs that make the experience tangible and killable.
06
Real users on real tasks; findings fed straight back into the design.
07
Tokens and components so the screens inherit one language.
08
Full screens with copy, states and both themes rendered.
09
Annotated designs, tokens and an interactive prototype for engineering.
10
The build is checked against the design; drift is caught, not accepted.
11
Analytics, heatmaps and support tickets report reality after release.
12
Evidence decides the next round; the design keeps improving after launch.
Closing
UI/UX design is where engineering meets humanity — turning complicated systems into software a stranger trusts in ten seconds. Our interface work includes:
Design is not decoration, and it is not magic. It is the disciplined work of making a complicated system feel effortless — and the hardest work is in the moments users never mention because they just worked.
We design software nobody has to explain — because on a money product, the first ten seconds decide whether the user ever gets to experience the engineering at all.
Previous capability
Cybersecurity
Next capability
Product Design Systems
The discipline above is what we run on our own products every day. If it would help on yours, our door is open.