A project manager in Dubai Marina needs 200 bags of Portland cement. Today.
Here’s what that actually looks like: he pulls up his phone, scrolls through contacts, calls five or six suppliers he’s used before, asks if they have stock, gets a price, tries to remember who said what, calls two more just in case, negotiates blind because he has zero idea what the market rate is, and then hopes whoever he picks actually has the stuff when his truck shows up.
That takes hours. Sometimes half a day.
Thousands of times a day, across the UAE and Saudi Arabia, in a market worth over $45 billion. MartGeo hired us to end it.
Geography Beats Price
Most marketplaces are built around one axis: price. Sort by cheapest, filter by rating, done.
Construction materials don’t work that way.
When you’re buying cement, steel rebar, or aggregates, proximity matters more than price. A store 5 km away selling cement at 22 AED per bag is often cheaper than a store 50 km away at 18 AED per bag. Why? Delivery costs for heavy materials can dwarf the product price itself. That single insight shaped the entire platform. MartGeo isn’t a product catalog with a map bolted on. It’s a map-first discovery engine with a product catalog bolted on.
Every search starts with a location. Every result is ranked by distance. Every decision a buyer makes is grounded in geography.
What We Actually Built
MartGeo is two applications.
The buyer app is an interactive map where construction professionals find, compare, and source building materials. Search a radius from 5 km to 250 km. See store pins with live price ranges. Tap to call, WhatsApp, or get driving directions. Pan the map to a new project site and hit “Search This Area” to re-query instantly.
The seller app is a full operations hub. Multi-branch inventory management. Real-time stock tracking with audit trails. Volume pricing tiers. CSV bulk import. Analytics dashboards. Guided onboarding that gets a new seller from zero to live in minutes.
Two apps, one platform.
AI Search That Speaks Foreman
A foreman on a construction site doesn’t think in SKU numbers.
He thinks: “I need waterproofing for a basement slab.” Or: “What’s the cheapest rebar near Al Quoz?” Or: “Materials for bathroom tiling, all of it.”
Traditional keyword search falls flat here. So we built an AI search layer that understands intent. Type “I need 50kg bags of OPC cement for a foundation pour” and it maps that to the right product category, unit size, and use case. Ask for “materials for bathroom tiling” and it expands into the full bill of materials: tiles, adhesive, grout, waterproofing membrane, and spacers.
It handles English and Arabic. It understands industry terminology. It maintains conversation context so you can say “show me the same thing but in white” and get a useful answer.
Here’s the part that matters, though. Every AI result is grounded in real inventory, real prices, and real distances. This isn’t a chatbot guessing. It’s an AI translating human intent into precise catalog queries executed against a spatial database.
The Seller Side
Most marketplace case studies focus on the buyer experience. But a marketplace with no sellers is just a search bar pointing at an empty database.
The seller tools are where MartGeo’s depth shows up.
Smart catalog listing. Sellers describe their product in plain language. The AI maps it to the correct master product, brand, category, and unit type automatically. No taxonomy hunting. No guessing which dropdown to pick.
Demand forecasting. The AI analyzes search patterns by geography and alerts sellers to rising demand in their area before competitors catch on. If everyone within 20 km is suddenly searching for waterproofing membrane, you want to know that.
Dynamic pricing intelligence. Real-time visibility into how your prices compare to nearby competitors, with AI-suggested pricing bands.
Bulk import intelligence. Upload a CSV of your inventory. The AI auto-maps columns, corrects product names, resolves brand abbreviations, and flags errors before anything goes live.
A seller with three warehouse locations and 400 products can manage everything from a single dashboard. Branch-level inventory, per-branch operating hours, location-scoped analytics. One click to switch between branches.
The Engineering Under the Hood
If you’re building a marketplace, especially a geospatial one, the architectural decisions you make early will either save you or bury you. Here’s what we chose and why.
PostGIS for spatial queries. We run radius search, viewport containment, and distance sorting at the database level using geographic indexes. Not in application code. This scales to millions of listings without performance falling apart. Sub-second queries across the entire database.
ASIN-style master catalog. Unstructured marketplaces end up with 1,000 variants of the same cement bag, all described differently, impossible to compare. We built a curated catalog: 12 top-level categories, 257 subcategories, 261 master products, 96+ verified brands. Sellers list against canonical products. Buyers compare apples to apples.
Effect-TS for typed error handling. Every core service (database, auth, email, storage) uses Effect’s composable error system. Every failure mode is explicit in the type signature. No uncaught exceptions. No silent failures. When you’re handling money and inventory, “it probably works” isn’t good enough.
URL-driven search state. Every search parameter lives in the URL. No hidden client state. Links are shareable. Browser history works perfectly. A project manager can send a URL to their procurement team showing exactly what’s available near a site. Server-side rendering can pre-fetch results.
Integer currency. All monetary values stored as integers in fils (1 AED = 100 fils). No floating-point arithmetic. No rounding errors. Ever.
Monorepo with 14 shared packages. Both apps share a Bun workspace monorepo. Shared packages for database access, auth, email, storage, telemetry, UI components, validators, and environment config. All packages export raw TypeScript, no intermediate build step. The apps’ Vite bundler handles everything.
The full stack: TanStack Start on React 19 for full-stack SSR. TanStack Router for type-safe routing. React Leaflet with CARTO tiles and PostGIS on the backend. AWS Lambda and CloudFront via SST Ion for serverless compute. PostgreSQL in AWS me-central-1 for UAE data residency. Resend for transactional email. Framer Motion for spring-physics animations.
Serverless means zero idle cost and instant scaling. When a construction boom hits and search traffic spikes, the platform handles it without anyone touching a server.
The Catalog Problem Nobody Talks About
If you let sellers write their own product titles and descriptions, you get chaos.
One seller lists “Portland Cement OPC 50KG.” Another lists “cement bag 50 kg ordinary.” A third writes “OPC 42.5 Grade Cement Sack.” All the same product. Your search can’t figure that out. Your buyers can’t compare prices.
The ASIN-style catalog solves this completely.
Every product in MartGeo has a canonical identity: a master product with standardized specs, verified brand association, and structured attributes. Sellers select from the catalog when listing. They set their price, their stock quantity, their volume discounts. But the product identity is controlled. A buyer searching for OPC cement sees every supplier’s price for the exact same product, sorted by distance. True comparison shopping, zero ambiguity.
Building and maintaining that catalog is work. 12 categories, 257 subcategories, three levels of depth, 96+ brands. But it’s the difference between a usable marketplace and a searchable mess.
Lessons for Marketplace Builders
If your industry still runs on phone calls and WhatsApp, there’s a platform waiting to be built. But MartGeo taught us a few things about building it right.
Start with the buyer’s real decision axis. For construction materials, it’s proximity. For your industry, it might be availability, turnaround time, certification, or something else entirely. Build the UX around that axis, not around a generic product grid.
Structure your catalog from day one. Free-text listings create technical debt that compounds with every seller you onboard. A canonical catalog costs more upfront and saves you everything downstream.
Build for both sides simultaneously. Seller tools aren’t an afterthought. If onboarding a seller is painful, you won’t have sellers. If managing inventory is clunky, your data will be stale. The seller experience IS the buyer experience, one step removed.
Use AI to remove friction, not to show off. Every AI feature in MartGeo exists because a human task was too slow, too error-prone, or too tedious. Natural language search because foremen don’t speak in SKUs. Smart listing because sellers shouldn’t need to navigate a taxonomy tree. Demand forecasting because market intelligence shouldn’t require a data team.
The Bottom Line
MartGeo went from concept to production-ready platform: architecture, database modeling with PostGIS spatial intelligence, dual-app development, AI integration, design system, and AWS infrastructure.
The result: construction professionals in the UAE and Saudi Arabia can now find any building material, from any supplier, near any location, in seconds. Real prices. Real stock levels. And AI that actually understands what they’re looking for.
If you’re sitting on a marketplace idea, or any complex platform that needs AI, spatial search, or serious engineering, start a conversation with us. We don’t do demos that look good in pitch decks. We build systems that ship.