Sihanoukville Reflections · System Intro

Sihanoukville Property Rental:
A One-Map System

Finding a place in Sihanoukville isn't hard — there are plenty of brokers. What's hard is that there's no information system letting you quickly and fully see the whole Sihanoukville rental market, and find the best-value listing that matches your needs. Information sits scattered across brokers and chat groups, in isolated silos. This system tries to pull that scattered listing and land data onto one queryable map.

Author 田思索 Location Sihanoukville, Cambodia ~12 min read
Cover: Sihanoukville property map system

Intro: It's Not Brokers That Are Missing — It's the Full Picture

Finding a place in Sihanoukville is, honestly, not hard. There are many brokers; ask around and you'll find something. The real trouble is something else: there's no information system that lets you quickly and fully see the entire Sihanoukville rental market, and find the best-value listing that matches your needs.

Which area at what price, how many new listings appeared recently, the typical rent range for a sea-view two-bedroom, which plots are up for sale — this is scattered across dozens of brokers and chat groups, in isolated silos. There's no single place to see the whole picture. Both buyers and sellers make decisions on fragments — that's the information asymmetry.

What this system tries to fix is exactly that: pulling scattered listing and land for rent/sale info onto one map, so you can browse the whole thing and also query it in one sentence. It doesn't replace brokers — it's a market view that both brokers and clients can use.

Below: what it can do now, how it was built, and where it could go.

1,127
active listings
148
land parcels
2,621
urban POIs
<2s
per query

Why I Built This

I've been in Sihanoukville for 8 years. My field is land resource management; I do GIS, remote sensing, and spatial-data work. Over these years, Sihanoukville's property and land rental market has had one constant condition: the information is scattered.

Listings sit across dozens of chat groups, land info in different brokers' notebooks, city-amenity info across public sources and satellite imagery. Nobody acts in bad faith — the market is just at a relatively early stage. But the result is that neither buyers nor sellers can easily get a complete market view.

So I spent some time building this system to collect, organize, and present that scattered information on one map. It's not some grand undertaking — the whole thing took about three months, and with today's tooling and serverless services, one person can run it. Here it is, explained plainly.


Live Now: One Map, Three Entrances

The system already runs; you can open it now. It has three parallel entrances, one dataset behind them:

All three feel the same. Here's how it works, using the Telegram Mini App as the example.

① First, a map: the map view

Open the Mini App and the first thing you see is the whole Sihanoukville listing map — 1,127 listings as pins across the map, clustered by area. You can zoom, pan, and tap any pin for details. This solves "seeing the full picture": before asking anyone, scan the whole of Sihanoukville on the map yourself. It's essentially a single-map management view that visualizes scattered listings in one place.

② Then, semantic query

On top of the map, if you have a specific need, just type a sentence: "sea-view 2-bed under $1,500, short-term OK" — the system understands the whole sentence and filters and highlights matching listings on the map, no checkbox filters needed. The map view handles "browse it all", the query handles "find it fast" — they work together.

③ Same system: the Sihanoukville land rent/sale map

Beyond listings, the Sihanoukville land rent/sale map (Telegram Mini App entry: same domain, /tg/ path) uses the same architecture for 148 parcels for sale/rent: a satellite hybrid base map showing plot boundaries, area, title type (Hard Title / Soft Title), and price range — from a few hundred square meters to over a hundred hectares, all point-mapped and filterable.

There's also a city-amenity base map (2,621 POIs: schools, hospitals, markets, ports, hotels) to judge a property's surroundings. Listings, land, and amenities — three maps sharing one data foundation — stacked together give a fairly complete view of Sihanoukville's rental/sale market.

▾ Real screen recording: open the map → filter by budget/bedrooms/area → zoom and browse listings (Telegram Mini App web view, actual capture)
To forward: Download video (MP4) · GIF version

How It Works: In Three Sentences

Skipping the jargon, the system does three things: pull the scattered data in → make it understand plain language → deliver it from any entrance.

Sentence 1: Pull the scattered data in

Every day at 3 AM, the system automatically pulls listing and land data from 5 sources, removes duplicates (the same unit posted 10 times across groups → kept once), cleans it, and stores it in one warehouse. Fully automatic.

Sentence 2: Make it understand plain language

This is the key step. A traditional database queries by field — check "2BR", check "sea view", fill a price range. But people say "cheap two-bed near the beach, short-term". An embedding model turns each listing description into a string of numbers (a "semantic fingerprint"), turns the user's sentence into the same kind, then finds the closest matches. It understands meaning, not keywords. A language model then summarizes results back in plain language.

Sentence 3: Deliver from any entrance

Telegram Mini App, WeChat Mini Program, WhatsApp plugin, web map, internal admin — all call the same retrieval logic. Swap the frontend skin, the backend doesn't change.

A few choices, explained

Why a Telegram Mini App as the main entrance? Most local and international users in Sihanoukville use Telegram. A Mini App opens inside the chat, use-and-go, no app download, low to develop and maintain. WeChat Mini Program and a WhatsApp plugin run in parallel to cover different habits.

Why serverless? One person maintaining it, no bandwidth to run servers. Serverless costs near-zero when idle, scales when there's traffic — suitable for this scale.

Why semantic rather than keyword search? Sihanoukville listing descriptions are a multilingual, colloquial, loosely-structured mix; keyword matching does poorly on that. Semantic search understands the whole sentence, which fits this kind of data better.

Technical details (for technical readers — skip if not relevant)

Data pipeline: a scheduled daily Job collects from multiple sources → dedup & clean → text embedding (text-embedding-005, 768-dim) → write to the warehouse. Runs unattended.

Storage & retrieval: the unified foundation is BigQuery (dataset shv_property). Semantic retrieval primarily via Vertex AI Discovery Engine; on flakes it auto-degrades to BigQuery VECTOR_SEARCH, transparent to users.

Result generation: recalled candidates are summarized and rewritten into natural language by Gemini 2.5 Flash.

Runtime: backend on Cloud Run, billed per request, auto-scaling, with monitoring, logs and fallback. All channels (Telegram / WeChat / WhatsApp / web) call the same retrieval logic.

Feedback loop: cross-channel user actions write to lead_log, used to improve ranking — the system improves with use.


Cost & Effort

To be honest and avoid overstating it: this system took about three months to build. The reason one person could do it in three months is mostly the tooling dividend of recent years — AI-assisted coding plus serverless services let small teams, or individuals, build what used to require a team.

All infrastructure is serverless, pay-per-use; under demo and early real traffic, monthly infrastructure cost stays fairly low. That's not me being frugal — this kind of architecture is just cheap by nature.

What this means

The architecture's replication cost is fairly low. Once the first scenario works, doing a second or third — swap data sources, swap frontend — doesn't require rebuilding the backend. That's why the next section discusses where else this might apply.


Real Query Gallery

A few real natural-language queries and the system's response. The user checked zero filters — just a sentence.

"sea-view 2-bed under $1500 short-term OK" → 5 results, 3 support short-term, $1,200–1,480, sorted by distance to coastline.

"downtown shopfront good for a restaurant" → recognizes "commercial + dining", returns street-facing shops with surrounding POIs as a foot-traffic reference.

"large land in Otres area for tourism development" → switches to the land library, returns multi-hectare plots, flagged by title type and Tourist Zone status.

That's what "query the map in plain language" means: you don't learn its interface, it adapts to how you speak.

The market lacks neither houses nor brokers;
what's missing is one place to see the whole picture.
田思索 · shvvilla.app

This Architecture Might Apply Elsewhere

Cambodia multi-scenario expansion

Abstracted, this system handles "a class of information with location, description, and contacts". A few other industries in Cambodia have similar scattered-information problems, and in principle the same architecture — swap data source, swap frontend — could adapt. These are early ideas, not promises of things already built:

These share the same data pipeline, retrieval logic, and Mini App distribution as the property system; the difference is mainly data ingestion and frontend copy. Get the listing part solid first; the rest is for later.


A Few Things You Can Verify Yourself

Don't take my word for it — you can check these directly:

All of this can be checked right now by opening the links.

Every link in this article opens right now.
Try it yourself before forming a view.
田思索 · shvvilla.app

FAQ

Where does the data come from? Is it legal?
From publicly published property/land sources and public real estate portals. The system only collects already-public, scattered information and structures it — no non-public data. Essentially, organizing already-public-but-fragmented info into a usable form.
One person built it — what if you walk away?
The opposite concern. It's serverless + an automated pipeline, running unattended daily. Code, data, and architecture are consolidated and transferable. That one person could build it means handover cost is low — an advantage, not a risk.
Is the data accurate? How often updated?
Full refresh at 3 AM daily, deduped and cleaned on ingest. Source accuracy depends on publishers, but multi-source cross-checking, dedup, and timestamps bring noise down to a usable level, with ranking improving from user behavior.
How does it make money?
Not the focus right now. The near-term goal is making the data and the user experience solid. Possible paths later: efficient display/lead-gen for brokers, or adapting the approach to other scenarios. Practical, not grand.
Can someone just copy this?
At a code level, sure, something similar can be built. Harder to copy: locally accumulated data sources and market understanding, a pipeline already running, and data that accumulates with use. Those come from time, not something replicable overnight.
Why you?
Mainly a matter of fit: land-resource-management background, 8 years in Sihanoukville, 5 years at the Golden Silver Gulf international tourism resort doing investment promotion, marketing, land planning, legal and secretarial work, plus experience at a Cambodian solar power plant, and ongoing GIS and spatial-data work. The background tells me how spatial data should be organized, the on-the-ground experience tells me which info matters; the rest was three months of building with AI-assisted programming. Nothing special — just a reasonable match.
How long to expand to another city/industry?
The backend largely doesn't change. A new city or industry mainly means data-source ingestion, terminology/frontend copy, and integration. Weeks, not quarters — but whether it's worth doing depends on the case.
How do I get in touch?
See the contact section below. Whether you want to find a place, you're a broker, or you think the approach fits your field — there's a way to reach me.

If You Want to Use It, or Just Talk

You areWhat you can doHow to start
Looking for a place / landJust open the Mini App — browse the map first, then query in one sentenceAny entrance below, free
Broker / agentPut listings in for unified display, skip repeated group-spamming, let clients find them on the mapTelegram or email, note "broker"
Someone in another industry / cityIf your field has the same scattered-info problem, let's discuss whether this approach fitsTelegram or email, tell me your direction
On replicating to other scenarios

A new industry or city mainly means ingesting new data sources, adjusting terminology and frontend copy, and integration — the backend and retrieval mostly reuse. Whether it's worth doing depends on the specifics; happy to talk first.

Entrances

All three feel the same — pick whichever is handy:

Contact me directly

Finding a place/land, collaboration, or just a chat:

Telegram QR
Telegram · @Free_skyer
WeChat QR
WeChat · scan to add me
WeChat Mini Program QR
WeChat Mini Program · scan to open

Closing

What this system does is fairly simple: pull Sihanoukville's scattered listing and land for rent/sale info onto one map, so people can see it as a whole and query it in a sentence. It addresses one specific problem — "seeing the full market" — it doesn't replace brokers, and it doesn't overstate its own role.

If you're a broker, looking for a place or land, or you think this approach fits your field — you're welcome to use it, or just reach out for a chat. Contact options are above.

The data figures, tech stack, and product links in this article match the actual running environment, with no embellishment. The maps open right now.

田思索
Based in Sihanoukville, Cambodia for 8 years. Field: land resource management. Five years at the Golden Silver Gulf international tourism resort across investment promotion, marketing, land planning, legal and secretarial roles, plus prior experience at a Cambodian solar power plant. Works on GIS, remote sensing and spatial data, and uses AI-assisted programming to turn ideas into products. Focused on informatizing Sihanoukville's property and land rental/sale market. Currently building: the Sihanoukville property rental one-map system (Map AI).