Full-Stack AI Product Live

Kaiwa

AI-native social dining platform — built from zero to production in under 3 months.

React 19FastAPIPostgreSQLAzure OpenAICapacitorRazorpayRedisWhatsApp API
Kaiwa landing page — The table where strangers become friends

A complete social dining platform — mobile apps (iOS + Android), 215+ API endpoints, 43 database models, AI-powered matching, WhatsApp chatbot with payment integration, and an affiliate marketing system. Built as the sole engineer in under 3 months.

Formally launched in Bengaluru on 24 February 2026 with curated dinners at restaurants across 3 locations every Tuesday. In under a month: 250+ users signed up, 60+ bookings for dinner events.

What Kaiwa Does

Kaiwa brings strangers together over weekly curated dinners at restaurants. The problem it solves: urban loneliness. The approach: AI-powered matching that puts the right people at the right table.

Users sign up, complete a personality quiz (optionally via voice), browse upcoming dinner events, and book a seat. Kaiwa’s matching engine — a genetic algorithm optimizer — assigns compatible tablemates based on personality embeddings, demographics, interests, location, and budget. After dinner, users give feedback, build a “food friends” network, and book again.

The entire experience spans four surfaces: a web app, iOS and Android apps (via Capacitor), a WhatsApp chatbot for conversational booking, and an admin dashboard for event management.

The Scale of the Build

This isn’t a landing page with a waitlist. The numbers tell the story:

  • 215+ API endpoints across 28 route files
  • 43 SQLAlchemy ORM models (users, events, bookings, payments, matching, affiliates, feedback)
  • 44 service modules handling business logic
  • 18 background task types (matching, reminders, payments, notifications, feedback)
  • 766 frontend TypeScript files with file-based routing (TanStack Router)
  • Full CI/CD pipeline with lint, type check, test, deploy

All built and deployed by one engineer.

AI-Powered Matching Engine

The matching engine is the core of Kaiwa — it determines who sits with whom. It’s not a simple filter. It’s a multi-phase orchestration system with a genetic algorithm at its heart.

Five Scoring Dimensions

Each potential table composition is scored across five dimensions:

  1. Personality — pgvector embeddings generated from the personality quiz, compared via cosine similarity
  2. Demographics — age range compatibility, gender balance, language overlap
  3. Interests — cuisine preferences, ambiance style, activity types
  4. Location — venue proximity using geolocation
  5. Budget — price sensitivity alignment

Genetic Algorithm Optimizer

The scoring feeds into a genetic algorithm (1,870 lines) that evolves table compositions across 100+ generations. Each generation mutates seating arrangements, evaluates composite scores, and selects the fittest configurations. The result: optimized tables where every diner is compatible with their tablemates.

Multi-Phase Orchestration

Matching runs in phases:

  • Early matching (1-5 days before event) — initial table assignments
  • Late matching (3-6 hours before) — fills remaining spots
  • Real-time reassignment — handles cancellations, venue changes, and capacity constraints

WhatsApp Chatbot — Conversational Booking

A standalone FastAPI microservice that handles the full booking flow conversationally on WhatsApp — from discovery to payment to post-event feedback.

The booking flow:

  1. User sends “Hi” → Welcome + quick actions
  2. “What’s happening Saturday?” → LLM tool call → searches events via Kaiwa API
  3. User picks an event → seat count, dietary preferences
  4. Bot generates Razorpay payment link → user pays in browser
  5. Payment webhook confirms → bot sends booking confirmation with QR code
  6. Automated reminders at T-7, T-3, T-1 days and post-event feedback at T+1

Built with WhatsApp Cloud API (HMAC-verified webhooks), Azure OpenAI with tool calling, Redis sessions (24h TTL), per-phone locking for concurrency, and message deduplication.

More Features

  • Bill Splitting with OCR — Azure Document Intelligence scans restaurant receipts, splits expenses across diners with tax and tip calculated per person, settles via Razorpay
  • Subscription Billing — Razorpay subscriptions with tiered pricing, automated renewal with retry logic, grace periods, and invoice generation
  • Affiliate & Referral System — Multi-touch attribution with QR codes, device fingerprinting (iOS), Play Store Referrer API (Android), Click-to-WhatsApp ad attribution, campaign-level analytics
  • Voice Profile — Personality quiz via Azure Speech SDK, privacy-first (voice never sent to LLM, only text transcription), traits embedded as pgvector for matching

Tech Stack

Backend: FastAPI (async, asyncpg) · SQLAlchemy 2.0 · PostgreSQL + PgBouncer · Procrastinate (task queue) · Redis

Frontend: React 19 · TanStack Router + Query · Tailwind CSS 4 · Capacitor 8 (iOS/Android/PWA) · Vite · TypeScript strict

AI/Cloud: Azure OpenAI · Azure Speech · Azure Content Safety · Azure Document Intelligence · Azure Blob Storage · Azure Communication Services · Azure Notification Hub

WhatsApp Bot: FastAPI microservice · WhatsApp Cloud API v21.0 · Azure OpenAI (tool calling) · Redis sessions · Razorpay payments · APScheduler

Quality: pytest + Vitest + Playwright · Ruff + Biome · Mypy strict · Sentry · JWT + OAuth 2.0 (Google, Apple, GitHub)

Key Architectural Decisions

  • Procrastinate over Celery — PostgreSQL-backed task queue eliminates Redis as a single point of failure. Simpler operational model for a solo-run product.

  • Genetic algorithm over simple scoring — Rule-based matching doesn’t optimize across tables simultaneously. The genetic algorithm evaluates entire seating arrangements holistically, finding compositions a greedy approach would miss.

  • Standalone WhatsApp microservice — Decoupled from the main backend. Scales independently. Uses Kaiwa as an API, not a shared database.

  • Capacitor over React Native — One React codebase for web + iOS + Android. No native module headaches.

  • pgvector for personality embeddings — Keeps matching queries inside PostgreSQL. No external vector DB needed for this use case.

The App Experience

Kaiwa Events — Browse curated dinners by date and preference
Kaiwa Dashboard — Your Social Hub with upcoming meetups and journey stats
Kaiwa Quiz — Personality quiz for smart table curation

Want to build something like this?

Let's talk about your project. No commitment, no slides — just a conversation about what's possible.

Get in Touch