Una aplicación web moderna de chat con IA construida con Astro 5, React, y Groq API. MVP funcional con persistencia local, streaming en tiempo real y diseño responsivo.
- 🤖 Chat con IA en tiempo real - Streaming de respuestas con Groq API
- 💾 Persistencia local - IndexedDB para chats y mensajes (sin servidor)
- 🎨 Interfaz moderna - Diseño profesional con CSS global
- ⚡ Performance - Server-side rendering + React island optimization
- 📝 Markdown support - Respuestas formateadas con soporte para código
- 🔍 Búsqueda - Busca en tu historial de chats
- 🧪 49 unit tests - Cobertura completa con Vitest
- Node.js 18+
- pnpm (o npm/yarn)
- GROQ API Key
git clone <repository-url>
cd chat
pnpm install
echo "GROQ_API_KEY=your-api-key-here" > .envpnpm dev # Dev server
pnpm test:watch # Tests en vivo
pnpm test:ui # UI visualchat/
├── src/
│ ├── components/react/ # Componentes React interactivos
│ ├── lib/ # Utilidades (db, session, markdown)
│ ├── pages/ # Rutas y API endpoints
│ └── layouts/ # Layouts Astro
├── docs/ # Documentación de diseño
├── vitest.config.ts # Tests configuration
└── astro.config.mjs # Astro configuration
49 unit tests con Vitest:
pnpm test # Ejecutar tests
pnpm test:watch # Modo watch
pnpm test:ui # Interfaz visual
pnpm test:coverage # Reporte de coberturaCobertura:
- session.ts - 11 tests
- markdown.ts - 11 tests
- db.ts - 21 tests
- api/chat.ts - 6 tests
| Componente | Tecnología |
|---|---|
| Framework | Astro 5 |
| UI | React 19 |
| Estado | Context + useReducer |
| Persistencia | IndexedDB |
| IA | Groq API |
| Testing | Vitest + happy-dom |
| CSS | Plain CSS |
pnpm dev # Servidor de desarrollo
pnpm build # Build de producción
pnpm test # Ejecutar todos los tests
pnpm test:watch # Tests en watch mode
pnpm test:ui # UI visual de tests- plan-implementacion-tecnico.md - Arquitectura
- plan-testing-vitest.md - Testing
- CLAUDE.md - Guía
MVP Completo ✅
- Chat con IA
- Persistencia local
- 49 unit tests
- Streaming en tiempo real
- Búsqueda en historial
- Documentación
Desarrollado por devlitu - ¡Contribuciones bienvenidas!
