03 · Multilingual real-estate platform

First Choice

I rebuilt First Choice as a multilingual property platform and an internal operating tool.

The live product covers property discovery, qualified enquiries, multilingual publishing, and private staff workflows.

Period
2026
Stage
Live · Production platform
My role
Technical Product Lead · Full-stack Developer
Setting
Direct collaboration with the real-estate operator and internal staff
~1,000/dayproperty records processed per city
3fully designed languages
53 → 95mobile Lighthouse performance
9.6s → 2.8smobile LCP
First Choice Multilingual real-estate platform
01

Why this product exists

Context

First Choice has operated in Tehran since 1988, serving both local customers and diplomatic or corporate relocation needs. Its knowledge lived across staff, listings, calls, and an aging web presence rather than one product system.

Product problem

The platform had to serve different languages, transaction models, privacy expectations, and operational roles without becoming three translated brochures. Public discovery and internal dossier data also needed a hard boundary.

Who it serves

Persian-speaking buyers and renters; English- and Arabic-speaking relocation clients; property owners; agents; and internal staff managing listings and leads.

What good looked like

A qualified property conversation: help the right audience find relevant inventory, understand it, and reach the team with enough context to act.

02

What made it difficult

01

Three real audiences

Persian, English, and Arabic journeys differ in priorities and services; localization could not stop at copy translation.

02

Privacy

Internal owner details, exact location clues, and staff notes must remain searchable for operations but invisible publicly.

03

Market-specific data

Iranian property transactions require distinct deposit, rent, sale, and short-term structures plus Persian calendar and phone behavior.

04

Shared production host

Deployment had to avoid risky in-place builds and coexist with other live services on a constrained Ubuntu host.

03

What I built first, and why

  1. 1
    Live

    Model the real-estate operation

    I mapped public listings, staff dossiers, owner submissions, buyer requests, valuation, leads, and international enquiries into one domain model.

  2. 2
    Live

    Design distinct language experiences

    The Persian experience supports the local market; English and Arabic emphasize relocation, privacy, and assisted service rather than cloning every page.

  3. 3
    Live

    Build the staff administration panel

    A Persian-first admin lets staff manage properties, people, leads, submissions, media, and private dossiers without developer help.

  4. 4
    Live

    Automate property ingestion

    A scheduled pipeline collects roughly 1,000 new property records per city each day, normalizes and deduplicates them, rejects or flags unsuitable records, and makes approved inventory available to the public site and staff panel.

  5. 5
    Live

    Implement search and publishing

    Search, neighborhood pages, structured data, guides, FAQs, IndexNow, and clean sitemaps create useful entry points beyond paid traffic.

04

The calls I had to make

Decision 01Live

Neighborhood pins, not exact coordinates

Public maps provide enough geographic context to compare areas without exposing a private home or an owner's operational data.

Decision 02Live

Separate inventory by audience

Local and foreign-facing inventory can differ because language, lease expectations, furnishing, and relocation needs are not interchangeable.

Decision 03Live

Keep the dossier private by architecture

Owner contacts, source notes, and internal location clues live in staff-only fields and are excluded from public listing queries.

Decision 04Shipped

Improve mobile performance

Selective prefetching, caching, image work, and rendering changes moved mobile Lighthouse performance from 53 to 95 and LCP from 9.6 to 2.8 seconds.

05

How the system works

01

Public discovery

Localized home, search, listing, map, guide, and service journeys.

02

Lead intake

Property request, owner submission, valuation, contact, and diplomatic enquiry forms.

03

Data ingestion

Scheduled collection, normalization, duplicate handling, quality flags, approval, and controlled publishing.

04

Operations

Persian admin for listings, people, leads, media, private dossiers, and publishing.

05

Discovery infrastructure

Structured data, multilingual metadata, sitemaps, IndexNow, guides, and FAQs.

06

Production

Locally built standalone Next.js bundle, Nginx routing, externalized secrets, and documented deployment.

What I personally owned

  • Product discovery with the business owner, service model, roadmap, and domain decisions
  • Complete UX and full-stack implementation across public and admin experiences
  • Persian, English, and Arabic product localization
  • Automated property ingestion, cleaning, quality rules, approval, and publishing
  • Property search, map behavior, lead flows, private dossiers, content workflow, SEO, and analytics
  • Performance optimization, production deployment, monitoring, and operational documentation
06

What you can inspect

Live product

Three product experiences

The live site presents Persian, English, and Arabic journeys with market-specific services, content, forms, and metadata.

Decision record

Architecture decisions with consequences

Written ADRs cover audience separation, map privacy, transaction fields, private dossier boundaries, server validation, and production deployment.

Measured delivery

Data and performance results

The operating system processes roughly 1,000 incoming property records per city each day. Recorded delivery work also moved mobile Lighthouse performance from 53 to 95 and LCP from 9.6 to 2.8 seconds.

07

Where it stands today

First Choice is now a live operating platform connecting automated property ingestion, public discovery, multilingual enquiries, controlled publishing, and private staff workflows.

What I learned

  1. 01

    Localization is a product architecture decision when audiences have different needs.

  2. 02

    Operational privacy is strongest when enforced by the data model, not staff memory.

  3. 03

    A business website creates more value when it also improves internal work.

Next case studyHosseintalab