High-level components
Web App: Next.js application for guests and hosts
Data Layer: Firestore for listings, availability, and user metadata
Media Layer: Cloudflare Images and Stream for optimization and delivery
Payments: Stripe Connect for charges, transfers, and payouts
Admin: Internal operations and reporting tools
Request flow
- User requests pages and media through Cloudflare edge.
- Next.js renders UI and calls backend APIs.
- APIs read/write metadata in Firestore.
- Payments and payout events are synchronized through Stripe webhooks.
- Search indexes are refreshed asynchronously.