← All Projects
Web Development

Real Estate Search Portal

Property Agency

Overview

A Croatian property agency needed to replace their outdated property portal. The existing system was built on a PHP framework from 2012, took 8+ seconds to load on mobile, had no proper search, and required agents to call the developer for every content change.

We built a modern portal that agents manage themselves, loads in under 2 seconds, and surfaces the right properties to buyers through a combination of text search, category filtering, and map-based discovery.

Key Features

Property Search and Filtering

The search interface allows buyers to filter by:

  • Property type (apartment, house, land, commercial)
  • Location (city, neighbourhood, radius from a map point)
  • Price range, size range, number of rooms
  • Features (sea view, parking, elevator, pet-friendly)

Results update in real time as filters change, using a debounced query approach to avoid excessive database hits.

Map-Based Search

Buyers can switch to a map view (powered by Mapbox GL JS) that shows all matching properties as clusters, expanding to individual pins at higher zoom levels. Clicking a pin shows a property preview card; clicking through goes to the full listing.

This was the feature buyers responded most positively to in user testing — searching "near the sea" or "in this neighborhood" is much more natural with a map than with dropdown filters.

Agent Dashboard

We built a private dashboard where agents can:

  • Create and publish property listings (form-based, no code required)
  • Upload and manage photos (drag-and-drop, automatic WebP conversion)
  • Mark properties as sold/rented
  • Export inquiry data to CSV

Authentication uses NextAuth.js with credentials (email + password) since the agency has no identity provider.

Bilingual Content

All listings have Croatian and English fields. The public-facing site detects the user's browser language and defaults accordingly, with a language toggle on every page. The agent dashboard allows agents to fill in both languages simultaneously.

Technical Highlights

Full-text search is implemented via PostgreSQL's built-in tsvector / tsquery with custom dictionaries for Croatian (important since simple prefix matching doesn't work well for inflected languages).

Image optimization uses sharp for server-side processing: incoming agent uploads are converted to WebP, resized to multiple breakpoints, and stored in an S3-compatible bucket. The frontend uses Next.js Image with responsive srcset.

ISR for listing pages: Property detail pages are statically generated with a 10-minute revalidation window. This means pages are served from CDN cache (fast) but update automatically when an agent edits a listing.

Result

Post-launch metrics after 90 days:

  • Average mobile load time: 1.7s (down from 8.3s)
  • Bounce rate: −34% vs. previous site
  • Average session duration: +41%
  • Inquiry submissions: +58% vs. same period prior year

The agency's senior agent noted that the map search feature alone had generated several sales from buyers who discovered neighborhoods they wouldn't have thought to search for by name.

Related Projects

Web Development

Autocamp Ivona — Tourist Camp Website

Autocamp Ivona

Moderni web za turistički kamp s fokusom na mobilnu optimizaciju, brzinu i direktnu komunikaciju s gostima.

Next.js 16React 19Tailwind CSSPM2
View case study
Web Development

E-Commerce Platform Migration

Regional Retail Chain

Migrated a 5,000-product WooCommerce store to a headless Next.js + Shopify stack, cutting page load times by 68% and increasing conversion rate by 22%.

Next.jsShopifyTypeScriptTailwind CSS
View case study