Partnership. The Saudi market. 2025.
Bargaining is a feature, not a bug.
NabatX is a smart marketplace for the Saudi Arabian market, and the partnership taught me a lesson most marketplace tutorials skip: the interesting parts of a marketplace are not the storefront and the cart. They are the parts where the culture and the data meet.
The foundation was the expected machinery, done properly: seller stores, listings with categories and search, cart and checkout, order tracking. The work lived in the details that decide whether a marketplace feels local or translated: bilingual support that reads natively in Arabic, currency handling, payment integrations that work cleanly in the Saudi market, and an admin layer that gives the operator real levers over sellers and disputes. That bilingual support is not symmetric. The built platform ships with ar as its default locale and English as the guest, because the market sets the defaults.
Where the real engineering lived.
- Two bids in the same second.
- A bidder losing connection mid-auction.
- An item challenged after the close.
The auction system is where the product got interesting. Some categories of goods sell better at auction than at a fixed price, especially in a market where bargaining is part of the cultural texture of buying. In Egypt and Saudi Arabia, the negotiation is not friction. It is half the pleasure of the purchase. So the auction mechanics had to feel native: durations, opening bids, optional reserves, a closing mechanism that handles late bids cleanly. The real engineering was the edge cases nobody demos: two bids arriving in the same second, a bidder losing connection mid-auction, an item challenged after the close. The design answers all three with one move: a bid landing in the final seconds extends nothing and breaks nothing. The close resolves once, through a single resolver path, and the winner's order is reserved before anything can drift.
The module I find most interesting is the Product Price Intelligence layer. Sellers and buyers benefit from seeing what a product actually goes for in the market, not just what the current listing asks. The module aggregates pricing signals across the platform and surfaces them so they inform a decision without overwhelming the person making it. It reports recent sales as a minimum, a median, and a maximum, deliberately not the average. In a thin market with long tails, one unusual sale drags an average around, while a median tells a seller what a buyer will actually most likely pay. It is a small piece of a larger thesis I keep carrying: the value-add of a marketplace for both sides is information, not just transaction infrastructure. Make the price visible and the market gets more honest.
The stack at the time.
- Next.js App Router
- React 19
- TypeScript
- Tailwind CSS
- shadcn/ui
- Next.js API routes (typed /api/v1)
- Supabase (Postgres, Auth)
- Moyasar
- Resend
- Vercel
The partnership is ongoing. The MVP is live. The next phase is everything that turns an MVP into a platform that a Saudi operator could actually run as their primary business.