← All projects

Real estate portal

Sigma Premium Realty

A real estate portal for the Montenegrin coast in three languages with translated URLs, its own analytics, and a search that records what buyers ask for and cannot find.

Visit site ↗
Sigma Premium Realty home page overlooking the Bay of Kotor, with an SR, EN and TR language switcher

Problem

Property on the Montenegrin coast is bought by foreigners, and a foreigner does not search the way a local buyer does. They ask how far the airport is, whether a foreign national may buy at all, what first line to the sea actually means. On top of that, an agency working in several languages usually ends up with one site and two translations glued on top — same URLs, machine translation, and no SEO presence at all in the markets the buyers come from.

Solution

The portal is multilingual from the database up: every piece of content has its own translation table, and translations are written by people, not machines. URLs are translated, so each language version has its own addresses and gets indexed separately. Alongside that sits purpose-built analytics that measures something ordinary counters never see — which searches return no results at all.

What was built

  • Property portal with filters by type, purpose, city, neighbourhood, price and floor area
  • Filters by features — sea view, parking, terrace, lift, furnished
  • Filtering by distance from the beach and from the airport
  • Filter combinations as real URLs, six levels deep
  • Three languages with translated URLs, plus hreflang and canonical tags
  • Relational translation architecture — every table has its own translation table
  • Adding a new language from the admin panel, without touching code
  • Purpose-built analytics with hashed IP addresses and bot filtering
  • Dashboard with visits, conversions, most-viewed properties and top searches
  • A report of searches that return no results
  • Saved searches, favourites and comparison
  • Blog with buyer guides, market analysis and the legal framework
  • Filament admin panel with 14 sections and map-based location picking
  • Image processing with automatic variants and WebP output
  • Inquiries, reviews, FAQ and CMS pages

A property site is easy to build and hard to build well, because everything happens in the search. A buyer does not browse the listings; they cut them down with filters until only what interests them is left.

Which is why the most useful piece of data in the whole system is the one most sites never collect: searches that return nothing. If ten people in a week look for a house with a yard in Tivat under two hundred thousand and the agency has none, that is not a search failure — that is demand. The panel breaks it out into its own report.

The second decision was about languages. URLs are translated, so the same page is /nekretnine/, /en/properties/ and /tr/emlak/. That costs more to build, because it needs a translation table beside every content table and a redirects table so old addresses do not break — but it is the only way the Turkish version ranks in the Turkish market as a site of its own rather than a subpage of the Serbian one.

For the same reason filters are paths, not query parameters, six levels deep: /nekretnine/prodaja/stan/budva/.... Every meaningful combination of purpose, type, city and neighbourhood is a page a search engine can index. A filter that lives behind a question mark exists for nobody except the person who already clicked it.

The whole portal runs on shared hosting, with no Redis, no SSH and no Node.js on the server. That constraint is invisible on the site, but it shaped every decision underneath it.

Result

Each language version has its own URLs and its own content, so it ranks as a site in its own market rather than a translation in a footnote. In the panel the agency sees not only what gets viewed but what gets searched for and does not exist — zero-result searches are a list of demand it currently cannot serve.

From the application

Property search with filters for purpose, type, city, price and features
Among the filters are distance from the beach and from the airport — the questions asked by a buyer arriving from far away, not one from the next town.
Creating a property in the admin panel, with tabs for basics, map, translations and SEO
Location is set by clicking the map, through OpenStreetMap and without an API key. Translations and SEO are their own tabs on every property.
Dashboard showing visits, unique visitors, conversions and bounce rate
The analytics were written for this site. IP addresses are hashed, bots are filtered out, and old records prune themselves.
Blog with categories for buyer guides, market analysis and the legal framework
The blog answers what a foreigner asks before they even look at the listings — paperwork, taxes, what first line really means.