Skip to main content

Multi-domain platform case study

Feel-Ing Real Estate Platform

Four websites. Three languages. One shared database. A real estate platform connecting the Hungarian and Spanish markets, with the property feed and the translations both running on their own.

Overview

One platform. Four markets. Zero duplication.

Feel-Ing is a real estate agency operating across Hungary and Spain, serving buyers in three language markets at once. Rather than maintaining four separate sites, the platform is one architecture: a single shared database, a centralised admin panel, and content workflows that run without anyone driving them.

Agents manage listings once, in Hungarian. The platform syncs with the property management system, translates to English and German, and publishes to all four sites, with the SEO metadata, the hreflang cross-linking and the per-property Open Graph images following automatically.

4

Live domains

3

Languages

1

Shared database

Auto

CRM sync

The Feel-Ing real estate platform

The domains

Four sites, one codebase

Each domain is a separate deployment targeting its own language market, all reading from the same Supabase database.

HU

Feel-Ing.hu

Hungarian, KomΓ‘rom-Esztergom County

Hungarian domestic real estate with automated property CRM synchronisation.

Visit site
HU

Feeling-Spain.hu

Hungarian, Spanish properties for HU buyers

Spanish listings marketed in Hungarian, the most feature-complete domain.

Visit site
EN

Feeling-Spain.com

English, International market

English-language portal for international and expat buyers.

Visit site
DE

Feeling-Spain.de

German, German-speaking market

German-language portal targeting buyers from Germany, Austria, and Switzerland.

Visit site

Architecture

Shared database, localised experience

πŸ—„οΈ

Single Supabase backend

All four domains query the same PostgreSQL database. Language-specific queries return the right translations per site without duplicating data.

πŸ€–

Property CRM XML ingestion

A scheduled job automatically fetches the property management data feed and syncs all property records into Supabase. Properties not seen in the feed are soft-archived, never deleted.

🌍

Translation pipeline

Hungarian is the single source of truth. The translation API auto-translates descriptions and blog content to English and German. Translations are stored per-column and editable in the admin.

πŸ”

Role-based admin

Owner, Admin, and Agent roles with scoped permissions enforced at middleware and API level. Each agent can only see and manage their own listings.

πŸ—ΊοΈ

Hreflang cross-linking

Every property and blog page includes hreflang tags linking to its counterpart on all 4 domains. This tells search engines which version to show to which audience.

πŸ–ΌοΈ

Supabase image storage

Property images and floor plans stored in Supabase Storage (CDN-backed). Gallery management, main image selection, floor plan tagging, and sort order all managed from the admin.

Features

Everything the agency needs

πŸ”„

Property CRM auto-sync

Scheduled job automatically ingests the property management data feed, creating, updating, and soft-archiving properties. No manual imports needed.

🌐

Auto-translation

Property descriptions and blog posts authored in Hungarian are auto-translated to English and German via the translation API. Editors can review and refine with one-click translate buttons in the admin panel.

🏠

Property listings

Rich listings with multi-image gallery, floor plans, full property specs, price, location, and agent contact card. All data stored in a shared Supabase database with language-specific views.

✍️

Multilingual blog

Markdown-based blog system with TipTap rich text editor. Posts authored once in Hungarian, translated to EN/DE. Full SEO metadata and Open Graph tags per post.

πŸ“¬

Lead capture and inbox

Contact forms with rate limiting, email validation, and property-linked inquiries. Admin inbox with read/unread tracking and reply capability.

πŸ“°

Newsletter system

Double opt-in newsletter with GDPR-compliant consent tracking. Campaign creation, subscriber management, and one-click bulk send via Nodemailer.

πŸ‘₯

Agent management

Agent profiles with multilingual bios, photo upload, and role-based access (owner, admin, agent). Each listing shows the assigned agent's contact details.

πŸ”

Multi-domain SEO

Dynamic metadata per property and blog post, Open Graph images, hreflang cross-linking between all 4 domains, JSON-LD structured data, and auto-generated sitemaps.

Tech stack

Modern stack, proven in production

Frontend

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind CSS
  • Framer Motion
  • TipTap

Backend

  • Next.js API Routes
  • Zod validation
  • NextAuth v4
  • Nodemailer (SMTP)

Database

  • Supabase PostgreSQL
  • Language-specific queries
  • @supabase/supabase-js
  • Shared across 4 domains

Integrations

  • Translation API (HUβ†’EN/DE)
  • Property CRM data feed
  • Redis (rate limiting)
  • Google Analytics 4 + GTM

Infrastructure

  • Vercel (4 deployments)
  • Vercel Cron (automated sync)
  • Supabase Storage
  • SMTP

Engineering highlights

Decisions worth noting

Multilingual at the database layer

Rather than using an i18n library, translations live in per-language columns within a single row. Language-specific queries with fallback logic serve the right translation without application-layer complexity.

Soft-archive instead of delete

Properties removed from the CRM feed are flagged as inactive rather than deleted. This preserves history, prevents accidental data loss, and allows easy reactivation if a listing returns.

Stateless rate limiting with Redis

Contact form endpoints are rate-limited per IP using Redis, working reliably in serverless Vercel functions without persistent connections.

Server Components first

"use client" is reserved for interactive elements only, so data fetching stays on the server. That keeps bundle sizes small and initial loads fast across all four domains at once.

Need a platform that works across several markets?

I build multi-domain, multilingual platforms where the content workflow runs itself, one source of truth, translated and published everywhere it needs to be. If you are maintaining the same thing in three places, that is the problem to describe.