Case study · 07 of 27

ODATK: a Saudi B2B procurement and equipment-rental marketplace

ODATK is a two-sided B2B marketplace for Saudi Arabia, built for the procurement patterns of construction, oil and gas, manufacturing and facility management. Buyers publish requests for quotation, suppliers respond with quotes…

Role: Founder, sole architect and developerStack: Next.js 16 (frontend), Express (API), MongoDB, JWT in an HttpOnly cookie, Vercel AI SDK with OpenAI GPT-4o-mini, Arabic-first with EnglishLive: odatk.com
ODATK: a Saudi B2B procurement and equipment-rental marketplace, live site
Live: odatk.comOpen full-page capture ↗

Context

ODATK is a two-sided B2B marketplace for Saudi Arabia, built for the procurement patterns of construction, oil and gas, manufacturing and facility management. Buyers publish requests for quotation, suppliers respond with quotes, buyers compare and award, and the order is tracked through fulfilment. A second surface rents heavy equipment (cranes, generators, lifts, excavators) by the day, week or month, from a supplier network positioned around SASO conformity and Saudi Vision 2030 procurement. The live site is Arabic-first and right to left, with a split hero that sends a visitor either to procurement or to rental in one click.

I built it alone: product, frontend, API, data model, AI features and deployment.

What I built

Three portals on one auth system

Authentication is a JWT held in an HttpOnly cookie. The role on the token drives the post-login redirect, so a client, a supplier and an administrator each land in their own portal.

A public site carries the marketing pages (home, about, services, how it works, industries, contact) with separate registration funnels for buyers and for becoming a supplier.

AI where it earns its place

An "Ask ODATK AI" assistant is present on the live site, and AI features inside the portals run through the Vercel AI SDK against GPT-4o-mini. In the platform's own documentation every feature is typed as static, dynamic, functional or AI, so a reviewer always knows which behaviour they are testing and where the data comes from.

How I kept a solo build honest

Before asking anyone else to look at it I wrote a review packet: a single spreadsheet enumerating every route, page, feature, data source and required role across the whole platform, more than a hundred rows across the public site, auth, the three portals, the API and cross-cutting concerns, plus a seeder that creates the three reviewer accounts. Reviewers work through it row by row and record status, severity and a suggested fix. It is the same discipline I later used for client UAT on the Nomad Universe work: enumerate the surface, then test it systematically.

Decisions and known debt

Outcomes and evidence

Screenshot on this page is the live site.

Next step

Have a system like this to build, rescue or scale?

I run technology for several companies at the same time and take on a small number of fractional engagements. The first step is always a scoped audit.