Next.js Leasing Microsites
A fleet of bespoke Next.js 16 leasing sites for individual apartment properties — each wired to a shared in-house availability API that keeps floor plans, live pricing, and MFTE affordable-housing units in sync, with Matterport tours, Apple MapKit maps, and Mux video.
Why this exists
The portfolio's property sites were aging WordPress builds — slow, hard to keep in sync with live leasing data, and tedious to update site by site. I've been migrating them to bespoke Next.js sites on Vercel, each fed by a single in-house API (api.bonavista.work) so pricing, availability, and unit data stay live without per-site edits, while preserving the old WordPress URLs so nothing drops in search rankings.



How it's built
One availability API
Every site fetches floor plans, live pricing, units, amenities, and pet policy from a shared in-house endpoint that normalizes RentCafe/SecureCafe data. New pricing appears everywhere without touching a single site.
24-hour ISR
Each property page is statically rendered and revalidated on a 24-hour cycle, with a token-gated revalidate route to bust the cache on demand — fast loads, always-current data, no per-request API cost.
Rich media, server-safe
Matterport virtual tours, Mux streaming hero video, and Apple MapKit neighborhood maps (with the MapKit token minted server-side), plus Cloudflare Images and RentCafe CDN for photos.
SEO-preserving migration
Trailing-slash routing mirrors the legacy WordPress URLs exactly, JSON-LD and sitemaps are generated per property, and apply/current-resident routes redirect into RentCafe so the funnel stays crawlable.
Notes
- Next.js 16 App Router, React 19, Tailwind v4, TypeScript — deployed on Vercel with Analytics + Speed Insights
- Live MFTE affordable-housing units surfaced straight from the availability feed
- Contact and tour-request forms via Resend, with leads posted to the Knock CRM webhook
- A forked-and-tailored template per property — shared data/SEO layer, bespoke brand and layout for each
- The same availability API also powers the WordPress property sites, so both hosting tracks stay in sync
Part of the web track: this is the Next.js / Vercel modernization running alongside the 55 in-house WordPress sites — the same portfolio, two hosting stacks, one live data backbone.
12
Live Microsites
1 API
Live Availability Feed
24h
ISR Revalidation
MFTE
Affordable-Housing Filter
Built With