A property discovery platform spanning 18 sovereign markets, where nothing reaches a buyer until it has passed editorial review. Multi-currency pricing, a country–state–city taxonomy, and curated collections across villas, high-rise apartments, clear-title land, commercial space and new developments.
- 0
- technologies
- 0
- shipped features
- 0
- screens
- 0
- decisions logged
No public repository for this project

4 sections below
Estate Ulagam is a cross-border property marketplace built around a single rule: a listing is an advertisement, and no advertisement is published until it has been reviewed. That constraint shapes the whole system — submission, review queue, and publication are separate states, and the public site only ever reads the last one.
The catalogue spans 18 sovereign markets across South Asia, the Middle East, Europe, the Americas and Asia-Pacific, each with its own featured cities. Prices carry their local currency and convert on the fly, so a Toronto townhouse quoted in CAD also reads in rupees for a buyer in Chennai. Listings are grouped into collections — villas and private sanctuaries, apartments and penthouses, clear-title land parcels, Grade-A commercial floors, and early-stage developer launches — and every published property carries a reference number and a review date.
Built on React with TanStack Router and TanStack Query on a Vite build. Mobile clients for Android and iOS are planned.
- Built a review-gated publishing pipeline: submissions move through an editorial queue and only reviewed listings are ever readable by the public site.
- Modelled an 18-market country/state/city taxonomy with per-market featured cities and live reviewed-listing counts.
- Implemented multi-currency pricing so every listing reads in both its local currency and the visitor's.
- Organised the catalogue into five curated collections spanning residential, land, commercial and new-development property types.
The section above says what this does. This one says why it is built the way it is — including the parts that did not come free.
- Manual review queue before publishoverPublish on submissionAutomated keyword/image screeningBecause
Listings carry real money and real addresses. An automated filter catches obvious spam but not a plausible-looking scam; a review queue is the only thing that lets the platform say 'reviewed before publication' and mean it.
What it costEvery listing has a lag between submission and going live — there's no instant self-serve publishing, which is real friction for a seller who wants their listing up today.
- Store the listing's native currency, convert client-side with a live rateoverStore one base currency, convert on displayAsk sellers to enter both currencies manuallyBecause
A Toronto seller thinks in CAD, not in whatever the platform's base currency is. Keeping the true local currency authoritative makes the visitor's currency a display concern, not a data-integrity one.
What it costConversion depends on a live exchange-rate feed; if that feed is stale, the secondary currency figure can be a few hours behind reality.
- Structured country → state → city taxonomyoverFree-text location fieldFlat list of citiesBecause
Featured cities, per-market listing counts and the country/state/city filter chain all need to query the hierarchy, not parse a string. Modelling it once turned every one of those features into a plain query instead of string matching.
What it costOnboarding a 19th market means seeding taxonomy rows before a single listing can go live there — it's not a drop-in text field.


Seen enough?
There are more where this came from — or skip the browsing and just say hello.