FurnishedNow
Multi-city rental marketplace. Designed and built the entire product — from brand identity and UI to the full growth stack: analytics pipeline, A/B testing, conversion optimization, affiliate attribution, and AI-powered search.
Next.js · TypeScript · PostgreSQL · OpenAI/Gemini/Claude · GA4 · Vercel
Analytics & Experimentation
- →177-event analytics pipeline tracking a 5-stage funnel with session stitching, visitor ID, and first-touch attribution
- →A/B testing framework: variant assignment, per-variant funnel conversion, statistical reporting across 7/30/90-day windows
- →Analytics engine (cron) computing guest segmentation, pattern baselines, anomaly detection every 6 hours
- →Real-time admin dashboards: funnel visualization, drop-off analysis, source attribution, search logs
Conversion & Monetization
- →Found 67% booking form drop-off through custom funnel; reduced fields 12→6, cut abandonment by 24%
- →Affiliate tracking with three-tier webhook matching (exact, fuzzy, IP+time) — recovered 21% of unmatched conversions
- →Launched Experiences upsell vertical and grew it to $100K+ incremental revenue in 2025
Acquisition & Engagement
- →AI-powered natural language search: "2br near central park under $5k" parses to structured filters with intent detection
- →200% organic traffic growth in 3 months through programmatic SEO (110 guides, 23 hubs, 14 city pages)
- →Integrated 6 partner APIs (Guesty, PlumGuide, Expedia, VRBO, Viator, GoCity) into unified data model with normalized search, booking, and review flows
Platform architecture
Frontend
- Next.js App Router
- React Server Components
- TypeScript
- Tailwind CSS
- Client-side analytics
API Layer
- 40+ REST endpoints
- Webhook receivers
- CRON jobs (5)
- Rate limiting
- Abuse detection
Data
- PostgreSQL
- Drizzle ORM
- 86 migrations
- Analytics pipeline
- 177-event schema
Infrastructure
- Vercel (edge + serverless)
- Cloudflare R2 (images)
- Neon (managed PG)
- Resend (transactional)
- CI via Vercel
External integrations









Design decision — Booking form simplification
12 fields · 3 optional but shown
6 fields · only what moves toward a signed lease
UI details that signal quality
Search button shows “1,271 Results” before clicking. Reduces uncertainty and increases click-through — users know results exist before committing.
Walk Score (97), Transit Score (100), Bike Score (76) rendered inline with nearby grocery, coffee, dining, and landmarks. Answers “is this a good location?” without leaving the page.
Sticky “Check availability” CTA follows the user on mobile. Listing sections collapse to a horizontal scroll nav. 60%+ traffic is mobile — designed for thumbs first.
Engineering tradeoffs I chose
- • First-party analytics over Mixpanel/Amplitude. More work upfront, but caught the 67% drop-off and made the fix obvious. Full control over the data model.
- • Three-tier webhook matching over simple click-ID lookup. Recovered 21% of unmatched conversions with zero false positives.
- • Confidence-scored attribution over last-click. Different methods (cookie, GA4, S2S) get different weights — more accurate commission payouts.
- • Postgres + explicit relevance scoring over vector search. Structured queries don't need embeddings. Simpler ops, easier to debug.


