Monorepo Structure
Unpod is an NX monorepo with four main applications and a shared library layer.Core Services
Web Frontend (apps/web/)
Next.js 16 frontend with App Router, group-based layouts, styled-components, and Ant Design.
- Key features: Auth, dashboard, AI Studio, spaces, knowledge bases, settings
- Testing: Playwright for E2E tests
apps/web/.env.local.example to apps/web/.env.local.
Desktop app (Tauri): npm run desktop:dev / npm run desktop:build
Backend Core (apps/backend-core/)
Django 5 REST API with JWT auth, multi-tenant organizations, RBAC, and background tasks.
- Auth: JWT authentication + Google OAuth
- Storage: PostgreSQL (relational), MongoDB (documents), Redis (cache)
- Endpoints: All under
/api/v1/
API Services (apps/api-services/)
FastAPI microservices for messaging, document store, AI search, and task management. MongoDB primary storage.
| Route | Service | Description |
|---|---|---|
/api/v1/store | store_service | Document store & indexing |
/api/v1/connector | store_service | Data connectors |
/api/v1/voice | store_service | LiveKit voice/video |
/api/v1/search | search_service | AI-powered search |
/api/v1/conversation | messaging_service | Chat conversations |
/api/v1/agent | messaging_service | Agent management |
/api/v1/task | task_service | Task management |
ws://localhost:9116/ws/v1/conversation/{thread_id}/
Voice AI Engine (apps/super/)
Voice AI engine built on LiveKit and Pipecat. Orchestrates real-time voice agents with LLM providers, TTS/STT engines, and workflow automation via Prefect.
Desktop Application (apps/unpod-tauri/)
Native cross-platform desktop client built with Tauri 2 and Rust.
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 / React 19 / styled-components / Ant Design |
| Monorepo | NX 22 |
| Desktop | Tauri 2 |
| Backend | Django 5 + DRF / FastAPI |
| Voice AI | LiveKit + Pipecat + LangChain |
| Databases | PostgreSQL 16, MongoDB 7, Redis 7 |
| Messaging | Kafka (KRaft), Centrifugo v5 |