One React frontend served 100,000+ users across four separate verticals — electronics, real estate, motors and art — each with its own idea of what a listing is.
Marketplace · GraphQL
Ayshei
A UAE classifieds and auctions marketplace built for 100,000+ users across four verticals.
- Product
- Ayshei — UAE classifieds and auctions marketplace, 100,000+ users
- Role
- Frontend engineer, VisionX Technologies
- Scope
- React frontend across four verticals, listing and search performance, GraphQL integration

The tension
Four marketplaces wearing one interface, all of them read-heavy at once.
The load was overwhelmingly read: browsing and searching, not posting. That moved the work from feature breadth to listing and search performance.
Listing and search staying responsive under read-heavy traffic, with one component vocabulary rather than four divergent ones.
Four verticals could not each fork the interface, and the same popular queries were hitting the database repeatedly.
All four verticals on one frontend.
Electronics, real estate, motors and art.
The product story
One interface, four verticals.
The marketplace
Browsing is the main event.
The landing view is built around discovery across all four verticals rather than around any one of them.

Mobile
Most of a marketplace is browsed one-handed.
The same listing components reflow to narrow widths, keeping search and filters reachable.

Search and listings
Read-heavy by design.
Listing and search were optimised for repeated reads, with Redis caching at the API layer cutting duplicated database load.

Walkthrough
The marketplace in motion
Recorded from the live site.
The trust test
The happy path is only half the product.
The same query arrives a thousand times
Redis answers it at the API layer, so a popular search costs one database round trip rather than one for every visitor who runs it.
A vertical does not behave like the others
Electronics, real estate, motors and art render through the same components, so the vertical that does not fit is a configuration rather than a fourth codebase.
It is being browsed one-handed
Search and filters stay reachable as the listing components reflow, because most of a marketplace is browsed on a phone rather than at a desk.
The decisions
Three moves carried the story.
One vocabulary across four verticals
A shared listing and search component set, so a new vertical was a configuration rather than a fork of the interface.
Cache the read path
Redis caching on the API layer to cut repeated database load, targeting the popular queries that dominated a read-heavy marketplace.
Ask for exactly what renders
GraphQL integration per view, so each surface fetched the fields it displayed instead of a shared over-fetched payload.
What I would test next
