Tech Stack
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite, Tailwind CSS, Radix UI |
| Backend | Node.js, Express.js, TypeScript |
| Database | MySQL 8 (Drizzle ORM) |
| Caching | Redis (Upstash in production) |
| Auth | JWT access + refresh tokens, OAuth2 (Google, Twitter, Facebook) |
| AI / LLM | Google Gemini, LangChain, OpenAI (embeddings) |
| Vector DB | Qdrant (RAG / semantic search) |
| Cloud Storage | AWS S3 |
| Payments | Stripe, Cashfree |
| Gupshup (primary), Wasimple, Facebook Meta | |
| Real-time | WebSockets |
| Job Scheduling | node-cron |
High-Level Architecture
Project Structure
Key Flows
Message Flow (WhatsApp → Bot → User)
RAG (Knowledge Base) Flow
Channels
| Channel | Provider | Auth method |
|---|---|---|
| Gupshup (primary) | API Key | |
| Wasimple | API Key | |
| Facebook/Meta | OAuth2 | |
| Gmail | OAuth2 | |
| OAuth2 | ||
| Web | Built-in | Bot ID |
| Telegram, Slack, Discord | On request | — |
AI & Integrations
| Service | Role |
|---|---|
| Google Gemini | LLM for bot responses + embeddings |
| OpenAI | Embedding fallback |
| Qdrant | Vector search for knowledge-base RAG |
| LangChain | Agent orchestration, tool use, RAG pipeline |
| Airtable | Bot tool — read/write CRM data |
| AWS S3 | Media and training file storage |
| Stripe | Subscription billing |
| Cashfree | Alternative billing (India) |
| Redis | Session caching, queue |