Back to projects
04Real-Estate Marketplace · Full-stack2026Live

Dar Realty

A premium three-portal real-estate platform — buyers search homes on an interactive map and message agents, agents manage listings and leads from a back office, and admins moderate the whole marketplace, with mortgage calculators, tour scheduling, reviews, and analytics on top.

Screenshots
Details

Role: Solo developer

Status: Live

Next.jsTypeScriptPrismaNeon PostgresNextAuth (RBAC)Leaflet/OpenStreetMapRechartsPlaywrightDocker
Problem

A real-estate marketplace isn't one app — it's three tightly-coupled ones over shared data: buyers browsing and searching, agents managing their inventory and leads, and an admin moderating everything, with the right person always seeing the right thing. Buyers expect map-based search, saved favorites, and direct contact with agents; agents expect a real back office for listings and messages; admins need approval workflows and oversight. Keeping all three portals consistent — with map search, near-real-time messaging, and listing moderation — is a lot of surface area to get right.

Approach

Dar Realty is a complete marketplace with three role-based portals behind a single login. Buyers: browse and search with URL-driven filters in both a grid and an interactive map (Leaflet + OpenStreetMap, no API key), favorite homes, browse agents, and message an agent about a specific property. Agents: a back office to create and edit listings with map pin-drop and photos, answer buyer messages, handle guest inquiries, and see per-listing view analytics. Admin: approve or reject pending listings, feature or remove any listing, manage agents and buyers, and view platform stats with a weekly-listings chart (Recharts). Beyond the core: a mortgage calculator on every for-sale listing, tour scheduling (request → confirm/decline), agent reviews and ratings, open-house badges, side-by-side compare (up to 4), saved searches, similar-homes and recently-viewed rows, a full-screen photo lightbox, and share links. DB-backed messaging updates via 10-second polling with unread counts throughout. Built on Next.js 14 (App Router) + TypeScript, Neon Postgres via Prisma, NextAuth with role-based redirects, Tailwind, Recharts, and Leaflet — with real production concerns: SEO (sitemap, robots, JSON-LD, OpenGraph), rate limiting and security headers, GitHub Actions CI, and Playwright smoke tests. Deployed via Docker/Coolify.

Outcome

One of the most feature-complete builds in this portfolio — three coherent portals, real map search and messaging, listing moderation, and production concerns (tests, CI, SEO, security) all shipped and deployed.