Disconnected CRM tools create leakage between first touch and booked appointment and make pipeline consistency hard to enforce.
Built a multi-tenant conversion platform that unifies conversational capture, AI qualification, deal lifecycle management, and analytics. Enforced tenant isolation and deterministic stage transitions in Supabase-backed APIs, with optional async delivery via FastAPI and Redis.
Enterprise-grade conversion workflow with tenant isolation and reliable stage transitions.
A Next.js frontend handles lead capture and deal pipeline visualization with React 19 server components for fast initial loads. FastAPI manages the AI qualification layer — receiving lead data, calling OpenRouter for scoring, and publishing results to a Redis queue for async processing. Supabase enforces row-level security for multi-tenant isolation, with PostgreSQL views that scope all queries to the authenticated tenant. Zod schemas validate all API boundaries between the frontend, FastAPI, and Supabase to prevent data inconsistencies across the pipeline.
Multi-tenant architecture decisions made early are very hard to change later — RLS policies, schema namespacing, and JWT claim structure all need to be designed together from day one, not bolted on. I also learned that Redis as an async queue between FastAPI and Supabase adds meaningful complexity for modest throughput gains — for most real estate agency scales, a simpler Supabase edge function would have been sufficient.