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.
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.
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.
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.
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.
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.
Foundation
Onboarding and identity
Operating the platform
Payments
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.
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.