The system is designed as:
- Multi-tenant SaaS
- Event-driven automation engine
- Async-first processing
- AI-native personalization layer
- Horizontally scalable
Frontend (Stitch MCP HTML/CSS/JS) β Django API Layer (Business Logic + Multi-Tenancy) β PostgreSQL (Primary Structured Data) β Firebase
- Realtime notifications
- Live campaign dashboards
- Websocket-like UI sync β Task Queue (Celery Workers) β Messaging Providers
- SMS
- LinkedIn Automation Layer β Gemini AI Service (Content Engine)
- Stitch MCP generates HTML templates.
- Tailwind-based UI.
- AJAX/Fetch for API communication.
- Firebase used for live dashboard updates.
apps/ β βββ tenants/ βββ users/ βββ leads/ βββ campaigns/ βββ sequences/ βββ dispatch/ βββ ai_engine/ βββ analytics/ βββ compliance/ βββ monitoring/
- CampaignLead acts as state machine.
- Celery schedules next_execution_time.
- Workers execute steps.
- Conditional branching handled server-side.
AI abstraction layer:
- generate_email()
- generate_sms()
- generate_linkedin_message()
- generate_subject_line()
- analyze_reply_intent()
All prompts routed via Gemini wrapper service.
Provider-agnostic design.
- Shared database
- Strict organization_id on root tables
- Custom TenantMiddleware
- Automatic ORM filtering
- Hard database-level unique constraints per tenant
- Stateless Django web nodes
- Separate worker pool
- Read-optimized analytics snapshots
- GIN indexes on JSONB fields
- Queue partitioning by job type