Case Study

A modern real estate platform built for a top‑performing agent.

ClientMeena Dhawan, KW Eastside
RoleDesign & Dev
StackNext.js · Mapbox · Supabase
Year2026
01Overview

Project Overview

Designed and built a full-stack real estate website for Meena Dhawan, a Top 5% Keller Williams agent serving Kirkland, Bellevue, Redmond, and the greater Eastside. The goal was a brand that matched her caliber — luxury aesthetic, real lead capture, and a property search experience typically reserved for large brokerages.

02Challenge

The Problem

Meena's existing web presence didn't reflect her caliber as a top producer. The site was falling short across every dimension that matters:

Generic template aesthetic that conveyed nothing about her luxury market positioning
No interactive property search — visitors had to leave the site to look at listings
Zero lead capture — no home valuation flow, no structured contact form
No showcase for her transaction history or client results
03Solution

What I Built

Interactive Map Search

Split-view property explorer with Mapbox GL. Listings cluster by city with count markers. Selecting a card highlights it on the map. Filters cover city, type, beds, price, and live address search.

Home Valuation Flow

3-step multi-screen lead form (address → property details → contact info) with Supabase persistence, loading state, success confirmation, and graceful error handling.

Homepage

Full-screen hero with staggered entrance animations, stats row, featured listings carousel, testimonials rotator, seller CTA — all with scroll-driven Framer Motion animations.

Shared Design System

Custom Tailwind v4 theme tokens (gold, dark, cream), Playfair Display + Cormorant Garamond via next/font, and reusable FadeUp/SlideIn Framer Motion wrappers across all pages.

04Comparison

Before & After

Drag the slider to compare

After redesign
After
Before redesign
Before
⟨ ⟩
05Deep Dive

A Problem Worth Solving

Getting a list-selected listing to highlight its marker on the map took significant debugging. Google Maps' OverlayView is a PureComponent — it blocks React re-renders from propagating into its portal subtree, meaning prop and context updates from the parent never reached the marker.

After exhausting context, window events, and key-based remounting strategies, I switched to Mapbox + react-map-gl. Its Marker is a plain function component — the highlight worked on the first try.

Takeaway: when a third-party component's lifecycle model conflicts with React's rendering model, switching libraries is faster than fighting the abstraction.
06Stack

Tools Used

Next.js 16React 19Tailwind CSS v4Mapbox GLreact-map-glSupabaseFramer MotionVercel
07Outcome

Results

Two complete lead capture flows (contact + home valuation) wired to Supabase
Live Mapbox property search across 8 Eastside cities with 28 demo listings
Architecture ready to swap demo data for a live NWMLS feed via SimplyRETS
Consistent, maintainable component system across 5 pages
08Links

View the Project

Ready to work together?

Let's build something great.

Have a project in mind? I'd love to hear about it — reach out and let's talk.

Book a Free Consultation
Folio — 05
Case Study