2026corporateThe BS Property Group · Miami6 weeks

BS Property Group — Miami real-estate digital rebuild

A complete rebuild of a boutique waterfront agency’s site, off AngularJS (96 JS files per page, no SEO indexation) onto Next.js 14 with SSR. Six languages, anonymous favourites, three CTAs per card, sub-2s LCP, +2–4× expected lead growth.

https://project-miami.vercel.app/
realestate
hover.tracked
Surface

What users see. Identity, motion, UI craft, copy.

Editorial typography — Fraunces serif + Manrope sans, a restrained palette of cream / ink / bronze / ocean / sand, no real-estate cheapness. The homepage is built around a single typographic statement on a coastline photograph. Listing cards carry three CTAs — Save, Tour, Ask — not one bored "View details". Triggers: new, price-drop, open-house, views-per-week, buyers-inquired.

Editorial Typography3 CTAs/cardAnonymous FavouritesSix LanguagesSticky Lead BarExit-intent Modal
scripta://case/bs-property-group/architecture
Substrate

What holds it up. Architecture, contracts, infra, latency.

Next.js 14 App Router, SSR for every listing → /property/A11989896 indexable URLs and working WhatsApp rich previews. Anonymous favourites via device-cookie — sign-up is deferred until attachment forms. Leaflet with CartoDB Voyager tiles tinted to the brand. Google Maps dependency removed entirely.

SSR per listingWhatsApp Rich PreviewsBrand-tinted LeafletDevice-cookie FavouritesINP <200ms
Story

AngularJS, 96 scripts, and no indexation

BS Property Group — a boutique North Miami agency specialising in waterfront and the premium segment from Brickell to Bal Harbour. $1.2B in closed deals, sixteen years on the market, cross-border buyers from São Paulo to Shanghai. The old site ran on AngularJS — a framework EOL’d in 2022. Each page loaded ~96 JavaScript files, listing pages rendered in the browser (Google did not index them), property cards opened in modals without dedicated URLs. Sharing a property on WhatsApp showed no preview. The most critical failure: "favourite" and "saved search" were gated behind mandatory registration — the site shed about 70% of first-session visitors on the spot.

Not isolated features — a system of levers working in concert

Anonymous favourites: +15–20%. Three CTAs per card instead of one: +30–50%. Premium agent form with photo, rating, online indicator, twelve-minute reply promise: +35–60%. Sub-2s LCP: +25–35%. Social proof (views per week, inquiries): +10–20%. Combined effect (not additive): 2–4× to leads. Plus the long-term lever — SSR and indexable URLs open organic traffic from Google, expected 3–5× growth over six months.

Gallery

Pieces of the product.

  • gradient
    Editorial hero · coastline photography01/06
  • grid
    Listing cards · three CTAs02/06
  • rings
    Map view · Leaflet + CartoDB03/06
  • mono
    Property detail · sticky agent form04/06
  • scan
    Pre-construction developments · 6 projects05/06
  • noise
    Mobile drawer · staggered links06/06
[ Results ]
$1.2B
closed deals lifetime
6 langs
localized
<2s
LCP on 4G
2–4×
expected lead growth
[ Stack ]
Next.js 14TypeScriptTailwindGSAPFramer MotionLeafletReact Hook FormZod
Next case

PRIDE — private security with a tactical HUD