Building a two-sided B2B marketplace, end to end
OrigineMaroc connects certified Moroccan producers with international buyers. A look at designing trust into a cross-border trade platform.
A marketplace is two products pretending to be one. The producer experience and the buyer experience have almost nothing in common — different goals, different anxieties, different definitions of "done" — and yet they have to feel like a single, trustworthy place.
That was the core challenge with OrigineMaroc: a B2B platform connecting certified Moroccan producers and cooperatives with international buyers for export.
Trust is the product
In consumer e-commerce, trust is a nice-to-have. In cross-border B2B trade, it is the transaction. A buyer in another country, ordering at volume, sight unseen, needs reasons to believe — certification, traceability, and compliance can't be footnotes. So they became the spine of the workflow:
- Certification flows so a producer's credentials are verified, not just claimed.
- Traceability so a buyer can follow a product back to its origin.
- RFQ management so the first conversation is structured, not a cold email.
- Compliance-oriented onboarding so partners arrive export-ready.
Two journeys, one system
Rather than bolt a "seller mode" onto a buyer app, I designed the two journeys as first-class citizens and let them share the foundation underneath — auth, data models, and a consistent visual language — so the platform feels coherent without forcing one user to live in the other's interface.
The build was Next.js, Prisma, and PostgreSQL: a typed, server-rendered front end over a relational core that can model the messy reality of trade relationships.
What I'd tell my past self
Start with the trust mechanics, not the catalog. The catalog is the easy part. The reason someone wires money across a border to a producer they've never met — that's the part worth designing first, and the part the whole product is really selling.
Want the full walkthrough or a similar build? Let's talk.