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.

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.
What made it difficult
Three real audiences
Persian, English, and Arabic journeys differ in priorities and services; localization could not stop at copy translation.
Privacy
Internal owner details, exact location clues, and staff notes must remain searchable for operations but invisible publicly.
Market-specific data
Iranian property transactions require distinct deposit, rent, sale, and short-term structures plus Persian calendar and phone behavior.
Shared production host
Deployment had to avoid risky in-place builds and coexist with other live services on a constrained Ubuntu host.
What I built first, and why
- 1Live
Model the real-estate operation
I mapped public listings, staff dossiers, owner submissions, buyer requests, valuation, leads, and international enquiries into one domain model.
- 2Live
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.
- 3Live
Build the staff administration panel
A Persian-first admin lets staff manage properties, people, leads, submissions, media, and private dossiers without developer help.
- 4Live
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.
- 5Live
Implement search and publishing
Search, neighborhood pages, structured data, guides, FAQs, IndexNow, and clean sitemaps create useful entry points beyond paid traffic.
The calls I had to make
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.
Separate inventory by audience
Local and foreign-facing inventory can differ because language, lease expectations, furnishing, and relocation needs are not interchangeable.
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.
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.
How the system works
Public discovery
Localized home, search, listing, map, guide, and service journeys.
Lead intake
Property request, owner submission, valuation, contact, and diplomatic enquiry forms.
Data ingestion
Scheduled collection, normalization, duplicate handling, quality flags, approval, and controlled publishing.
Operations
Persian admin for listings, people, leads, media, private dossiers, and publishing.
Discovery infrastructure
Structured data, multilingual metadata, sitemaps, IndexNow, guides, and FAQs.
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
What you can inspect
Three product experiences
The live site presents Persian, English, and Arabic journeys with market-specific services, content, forms, and metadata.
Architecture decisions with consequences
Written ADRs cover audience separation, map privacy, transaction fields, private dossier boundaries, server validation, and production deployment.
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.
Inside the product



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
- 01
Localization is a product architecture decision when audiences have different needs.
- 02
Operational privacy is strongest when enforced by the data model, not staff memory.
- 03
A business website creates more value when it also improves internal work.