GoPay -
billing &
collections.

A SAMA licensed billing and collections platform built on SADAD. Joined mid-build to design a new set of flows, from onboarding and KYC to the home dashboard, roles, and SADAD checkout, and rebuilt the foundation underneath them: the design system, dark mode, responsive, and the Arabic and RTL layer.

Client
Inclusive Financial Solutions (IFS)
Region
Saudi ArabiaSaudi Arabia
Industry
Fintech / SaaS
Scope
Finance Web App · Design System
Fig. 01 — KYC · Packages & Pricing

Snapshot

Role
Senior Product Designer. Joined mid-project, then worked end to end across the system.
Team
Solo on design. Partnered with engineers, product managers, and the CEO.
Timeline
1 month.
Platform
Web, responsive, light and dark, Arabic and English (RTL and LTR).
What was mine
A set of new flows and features: new onboarding and OTP, a shortened KYC, an entirely new home dashboard, plans and comparison, a roles system with a roles tree, SADAD checkout, bulk reminders, payment requests, and the vendor receipt. Then the foundation: the design system rebuild, the component library, dark mode, responsive across every module, and the Arabic and RTL layer.
Overview

GoPay is a SAMA licensed billing and collections platform built on SADAD. I joined mid-project, into a system that was already partly built and pulling in different directions. I rebuilt the foundation underneath it, the design system, the components, dark mode, the responsive behavior, and the Arabic and RTL layer, while the product kept shipping, then designed a stack of new flows on top.

The hardest part was not any single screen. It was making one foundation hold four things at once, Arabic and English, light and dark, responsive, and regulated, without freezing a product that was already live.

Fig. 02 — Home dashboard
Context

GoPay is developed by Inclusive Financial Solutions and licensed by the Saudi Central Bank as a payment intermediary on SADAD, the Kingdom's national bill payment rail. It lets businesses of any size issue invoices, collect payments, and reconcile, all inside a regulated environment.

The product is Arabic first and Saudi first, and that is not a detail. In a market where the default language is Arabic and the payment rail is SADAD, the experience has to feel native to that context, not translated into it after the fact. That premise shaped almost every decision below.

My Role
  • Mine: The new flows and features I designed end to end, onboarding and OTP, the shortened KYC, the roles system, the home dashboard, plans and comparison, checkout and SADAD, bulk reminders, payment requests, the vendor receipt. Then the design system rebuild, the component library, dark mode, responsive across the whole system, and the Arabic and RTL layer.
  • Shared: Feature scope, worked out with product managers, engineers, and the CEO. Integrations with Nafath and Tahaqoq, designed around what those systems allow.
Fig. 03 — Sign in & onboarding
The Problem

What people struggle with. Signup and KYC were long enough that people dropped out of them before finishing. Screens looked different from one flow to the next, so the product felt like several products. It was not responsive. And the Arabic version was awkward, because it had not been designed with Arabic in mind, it had been translated onto layouts built for English.

How I framed it. The question was not "make it prettier." It was "how do you make a regulated, Arabic first platform fast to enter, when the existing signup was long and had not been built around the Kingdom's identity and security systems in the first place." Those systems were not part of the flow before I joined. I rebuilt signup and KYC around them, Nafath, Tahaqoq, and biometrics, so the flow got shorter and properly compliant at the same time. The reframe mattered most here. The friction was not the number of screens. It was asking users to verify things the state can already verify.

Fig. 04 — KYC business information
Approach & Success

I came in mid-project. The direction and the first build were set. What shaped my work was the existing system, the product goals I was handed, and the Kingdom's identity and security systems I had to build the sensitive flows around. I worked from the inside out, audited what was there, kept what worked, rebuilt the rest. Feedback from product, engineering, and the CEO adjusted the flows as they went, especially anything touching identity and payments.

Good meant three things. Onboarding fast enough that people stopped dropping out of it. One system that held together across Arabic and English, light and dark, and every screen size, with no parallel versions drifting apart. And new features that shipped and fit, rather than sitting on top as bolt ons. Onboarding time dropped 70%, and it did that while getting more compliant, not less.

Process & Exploration

Retrofitting a foundation under a live product. The system was already shipping, so a hard freeze was not on the table. I rebuilt the design system and components in place, then migrated the product across screen by screen. New work was built on the new foundation from day one. Old screens were pulled over in passes. The point was to stop the drift I was brought in to fix without stopping the product to do it.

Arabic and RTL as a build axis, not a translation. Arabic is not English flipped. Direction changes layout, but it also changes type, rhythm, spacing, and how a component reads. I built direction into the components themselves rather than mirroring finished English screens. One source, both directions, across the whole set. An Arabic screen was never a second class version of an English one.

Cutting KYC by moving verification to the state. The heavy part of onboarding was verification, and the compliance and security this flow needed were not there before I joined. So I rebuilt signup and KYC around the Kingdom's systems in the same pass. Nafath and Tahaqoq verify identity at the source, instead of the user collecting, re-entering, and getting manually checked in app. Biometrics carry the trust step. The flow got shorter and properly compliant at once, and every step that survived earns its place.

A roles tree that maps to a real org. A flat list of roles works until a real company signs up. GoPay serves businesses of every size, so I modeled permissions as a tree. You build roles, assign users into them, and the structure mirrors how the organization actually works. It is more to design and explain, but it is the difference between a demo and something an enterprise can run on.

Fig. 05 — Roles tree
Fig. 06 — Owner verification
The Solution

Foundation

  • Rebuilt design system and component library. One source of truth under the whole product.
  • Dark mode across the system. Themed at the token level, not screen by screen.
  • Full responsive. Every module, both themes, every size.
  • Arabic and RTL layer. First class, not a translation pass.

Onboarding and identity

  • New onboarding with OTP. New logic, fewer steps.
  • Shortened KYC. Nafath and Tahaqoq for verification, biometrics for trust, compliant end to end.

Operating the platform

  • Entirely new home dashboard. New layout and a new set of widgets: one-time, recurring, and other payments, payment statistics, payment status, last payments, recent activity. What matters, at first glance.
  • Plans and comparison. Side by side, easier to choose.
  • Roles system with a roles tree. Create roles, assign users, scoped by hierarchy.
  • Bulk reminders. Chase overdue invoices at scale.
  • Payment requests. New request flow.
  • Vendor receipt. New receipt the payer gets back.

Payments

  • Checkout with SADAD. New checkout screens, pay through the national rail.

Holding all of it together is the rebuilt design system. That is what makes a dark mode Arabic dashboard and a light mode English checkout read as the same product.

Fig. 07 — Payment statistics
Key Decisions & Tradeoffs
01
Rebuild the foundation instead of extending it.
I chose to remake the design system and components underneath a shipping product rather than keep patching the inconsistent one I inherited.
Tradeoff: real cost and rework up front, while the product kept moving. But patching would have compounded exactly the drift I was brought in to fix.
02
One token driven component set, not parallel variants.
Light, dark, Arabic, and English all live in single components driven by tokens, instead of separate dark screens or separate Arabic screens.
Tradeoff: every component got harder to design and more constrained. But parallel sets drift apart within weeks, and then you are maintaining four products instead of one.
03
Biometrics and OTP as the trust layer, not passwords first.
I leaned onboarding and re-entry on OTP and device biometrics rather than a password first model.
Tradeoff: a tighter dependency on device and network conditions. But it fits how people actually verify on mobile in the Kingdom, and it kept the shortened flow fast without weakening it.
04
An entirely new dashboard, built around what matters at a glance.
The old home was a summary. It tried to show everything and surfaced nothing. So I designed a new dashboard from scratch, and more importantly a new set of widgets, so the first thing you see is the thing you run the business on. One-Time Payments, Recurring Payments, and Other Payments split out instead of lumped into one number. Payment Statistics and Payments Status up top. Last payments and recent activity right there, not a screen away. The home answers "how am I doing" before you have to go looking for it.
Tradeoff: it meant taking a hard position on what earns the first screen and pushing everything else down, and a wrong call there is expensive because it is the screen everyone lands on. But a home that shows everything helps with nothing, and a dashboard that makes you dig is not a dashboard.
Fig. 08 — Arabic & RTL layer
Fig. 09 — Responsive across the system
Impact & Results
  • Onboarding time dropped 70%, by moving verification to Nafath and Tahaqoq and rebuilding the flow around them instead of collecting everything in app.
  • One system now holds Arabic and English, light and dark, and full responsive, with no parallel versions to keep in sync.
  • A stack of new flows shipped in a month: onboarding, dashboard, plans, roles, checkout, reminders, requests, receipts.
  • The rebuilt foundation is carrying the work that came after it, which is the real test of whether it held.
What's Next

The rebuilt system is the base the wider product family sits on, GoInvoice, GoSplit, GoOnline, and GoPay+. New modules plug into the same components, tokens, and roles model instead of starting over. That was the point of rebuilding the foundation the way I did.