# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview DevDen is a self-hosted AI chat platform that enables organizations to provide AI-powered Q&A based on their own knowledge bases. Users interact through a clean chat interface while administrators manage knowledge bases, AI providers, and user access through a terminal-style dashboard. **Current Status:** Early prototype stage with static frontend (HTML/CSS/JS). Backend infrastructure is not yet implemented. ## Architecture **Planned Technology Stack:** - **Frontend:** Vanilla JavaScript (prototype), potential migration to Svelte - **Backend:** FastAPI (Python) - **Database:** PostgreSQL (users, conversations, settings) - **Cache:** Redis (sessions) - **Vector DB:** Qdrant or ChromaDB (semantic search) - **Auth:** Microsoft Entra ID - **AI Providers:** Claude, OpenAI, Gemini, OpenRouter, Ollama (local) **Two-Interface Design:** - Clean chat interface for end users (warm, accessible design) - Terminal-style dashboard for administrators ## Current Files - `index.html` - Main chat interface structure - `script.js` - Chat interaction logic (mock responses currently) - `style.css` - UI styling with fox-themed color scheme (accent: `#d4a574`) ## Development Phases (from project.md) 1. Core Chat - Basic chat with single AI provider 2. Knowledge Base - Document indexing and semantic search 3. Authentication - Microsoft Entra ID integration 4. Admin Dashboard - Management interface 5. Multi-Provider - Multiple AI provider support 6. Git Integration - Auto-sync from repositories 7. Polish - Production readiness ## Commands (Future) When Docker infrastructure is implemented: ```bash docker-compose up -d docker-compose exec devden-web python manage.py init-db docker-compose exec devden-web python manage.py create-admin --email admin@company.com docker-compose logs -f devden-web ``` ## Design Decisions - Knowledge bases connect via Git repositories (auto-sync) or Docker volumes (local files) - Source transparency: answers show which documents were referenced - User quotas configurable per-user (questions per day/month) - API keys encrypted at rest - All data stays on-premises (self-hosted)