The UAE already has big car marketplaces, and they work. They're built for volume: private sellers, independent traders and licensed showrooms all listing into the same pool. Reach is the point. What a showroom gives up is control - a Rolls-Royce sits next to a fifteen-year-old Corolla with a phone number and no history, and the showroom pays per lead for the privilege.
Carzle went the other way. Only licensed showrooms get in, and only luxury, performance and limited-production cars get listed. I built the platform: architecture, front end, back end, dealer tooling, and the search and SEO system underneath all of it.

That constraint is the product. Everything below is downstream of one decision - fewer cars, every one of them verified.
A marketplace is a distribution problem long before it's an engineering one.
Curation over volume
The first version was a general dealer marketplace: any licensed showroom, any car. It ran into the obvious wall. Against platforms with a decade of traffic, the same thing but smaller isn't a reason for anyone to switch.
So the scope narrowed to luxury, performance and limited-production cars, with every listing reviewed before it goes public. Smaller market, far easier one to be the best at. It also changed what the product could be: a directory of everything is a search box, but a curated set is allowed to have opinions - collections, comparisons, a house view of what's worth looking at.
How UAE buyers actually shop
Nobody here fills in a contact form to ask about a Urus. They WhatsApp the showroom. So contact is direct: a listing opens a real thread with the dealer holding the keys, pre-filled with the car in question, or rings that same showroom.

The bigger platforms route that conversation through themselves. The enquiry becomes a tracked lead, the buyer becomes a record, and both get sold back to the dealer or marketed at for the next two years. Carzle deliberately doesn't sit in the middle of it. No lead capture on a listing, no email gate in front of a price, no buyer profile assembled in the background. The dealer sees that an enquiry happened; the platform never holds the person who made it.
That's a real trade, not a shortcut. Attribution goes fuzzy - you can measure the click, not the closed sale - and a buyer database is exactly the asset you'd want if you were about to spend money on ads. Carzle isn't spending money on ads. The whole growth plan is organic search, which means the site has to earn the visit instead of retargeting it, and it doesn't need to know who you are to do that.
The listings carry what people actually decide on: regional spec - GCC, European, US, because it changes both the warranty and the resale - service and warranty state, real mileage, and the showroom's name on every card. Condition is derived rather than declared. Under about 100km is delivery mileage, so the car is genuinely new; nobody gets to type "brand new" on something with 40,000km on the clock.
Search had to work the way people talk. Faceted filters for anyone who already knows the model, and a natural-language layer for everyone else - "family car under 200k", "old Lamborghini", "something with seven seats" - resolved into real filters against real inventory, instead of matching those words inside somebody's description.

Ranking without inventory
The hardest constraint on a young marketplace is that you can only rank for what you have in stock. A hundred and fifty cars is a hundred and fifty pages, and search demand is much bigger than that.
So the site got a discovery layer that doesn't depend on stock. Comparison pages built on specs - a Urus Performante against a Cullinan - which rank whether or not either car is listed today and funnel to whatever is. Editorial collections for people browsing before they're shopping. Intent pages for searches that describe a need rather than a model. Brand and model pages that hold their ground at zero stock and fill in as inventory arrives.
All of it structured underneath: schema markup on every listing, comparison and collection, real sitemaps with honest lastmod dates, internal linking that ties the editorial layer to live cars, and edge caching so an anonymous visitor gets HTML from Cloudflare instead of a database round trip.
What a showroom gets
The dealer side is a dashboard, not a mailbox. Listing management built around the fields a showroom actually maintains, analytics that count enquiries rather than impressions - the event, never the person - and the search terms buyers typed to get there, including the ones that returned nothing, which is the more useful list.

Per-listing QR codes, so a car on a forecourt has a code on the windscreen that opens its page. And an admin behind all of it that reviews every listing before it goes public, because verified has to mean somebody actually looked.
Under it
Postgres holds the inventory. Faceted search runs on Meilisearch, because filtering forty attributes across live stock in real time isn't a job for SQL and a hopeful index. Claude sits in front of that to turn a sentence into filters. Cloudflare caches HTML at the edge for anonymous visitors, so a browse page usually never touches the database at all.
The site is bilingual, English and Arabic - which turns out to be a search problem more than a translation one. Two versions of every page will happily compete against each other in Google unless the canonicals and hreflang are explicit about which is which.
Where it stands
It's live at carzle.ae, operated as a licensed UAE entity, with three verified Dubai showrooms and over 150 curated cars. The discovery layer is indexed, and the editorial side keeps growing.

What the build taught me
The engineering was never the hard part. A marketplace is two-sided: showrooms want buyers before they'll join, buyers want inventory before they'll come back, and money is the usual way out of that deadlock. The route here was organic instead - comparisons, collections, buyer guides, intent-led discovery - so the platform earns demand it can show a dealer before asking for their stock. It's slower, and it's still running. It's also the part of this project I'd carry into any marketplace, and none of it is code.
