M2M
A property marketplace for a whole country — flats, land, offices and garages, with photos, video and a map. Eleven separate programs behind one website.
Anyone can list, but nothing goes public on its own.
Twenty kinds of property
From a room to a warehouse, a garage or a plot of land. Each kind has its own fields, its own rules and its own filters.
Five kinds of account
A private owner, an agent, an agency, a developer and a shop each see a different site.
Every advert is reviewed
Staff read every new advert and every new registration, then approve or reject it with a written reason that reaches the person who posted it.
Three languages, and a second marketplace
The whole site in Romanian, Russian and English. A marketplace for building materials was added later, alongside the property one.
Reading and writing, kept apart on purpose.
-
1
The searching side
One program does nothing but answer questions: find me these properties, show me this seller. On a listings site, browsing happens a thousand times more often than posting.
-
2
The posting side
A second program does nothing but change things: post this advert, edit it, remove it. Split in two, the searching side can be tuned purely for speed without the posting side getting in the way.
-
3
Everything around them
Sign-in, photos and video, moderation, payments, notifications — each its own small program, all trusting the same single sign-in pass.
Splitting reading from writing is the decision the whole platform rests on. It is also the one that costs the most to get wrong, because from then on the two sides have to agree about everything without ever talking directly.
Ordinary tools, eleven times over.
In the browser
What a visitor sees. Pages are drawn on the server first, so a listing opens fast and search engines can read it.
- TypeScript
- React 17
- Next.js 12
- Material UI
On the servers
Nine small programs, nearly all in the same language, so whoever learns one can work on any of them.
- Go 1.17
- Gin
- FastAPI
Where the data lives
One database for the listings, a fast cache in front of it, and cloud storage for the photos and video.
- MongoDB
- Redis
- Cloud storage
How it was shipped
Every program in its own box, all of them on one managed cluster, and the cluster itself written down as code rather than clicked together.
- Docker
- Kubernetes
- Terraform
- GitLab CI
Three problems that could not be bought ready-made.
The form builds itself
A flat to rent and a warehouse to sell need completely different questions. Instead of twenty hand-written forms, the site asks the server what to ask and draws the form from the answer. A new kind of property can be added without touching the site at all.
121 filters, one question
Price, floor, rooms, renovation, furniture, parking, pets, city, district, street. Each has to become part of a single question the database can answer quickly.
Prices compared across currencies
Every night the platform downloads the national bank’s official rates and converts the shopper’s price range before comparing it. Without it, a large part of the catalogue is invisible to any given search.
Around 1,800 hours of work, over thirteen months.
Built through 2021 and 2022 by a team of nine. The platform is no longer online, so there is nowhere to send you.
Have a project idea? Write down a quote!
Got a project? Drop us a line if you want to work together on something exciting. Or do you need our help? Feel free to contact us.