- Update vision, architecture and technical documentation - Update module definitions (PMC-001 to PMC-008) - Update requirements documentation - Add CONTEXT-MAP.yml and ENVIRONMENT-INVENTORY.yml - Add orchestration guidelines and references 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.3 KiB
3.3 KiB
| id | title | type | status | date | deciders | tags | project | created_date | updated_date | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ADR-001 | Seleccion de Stack Tecnologico | ADR | Accepted | 2025-12-08 |
|
|
platform_marketing_content | 2025-12-08 | 2026-01-04 |
ADR-001: Selección de Stack Tecnológico
Fecha: 2025-12-08 Estado: Aceptado
Contexto
Se requiere definir el stack tecnológico para construir la plataforma SaaS de generación de contenido y CRM creativo. El stack debe:
- Soportar desarrollo rápido de MVP
- Escalar para múltiples tenants
- Integrarse con motores de IA (imagen y texto)
- Ser mantenible por un equipo pequeño
- Tener ecosistema maduro y documentación
Decisión
Backend: NestJS + TypeScript
Framework: NestJS v10+ Lenguaje: TypeScript ORM: TypeORM
Razones:
- Arquitectura modular similar a Angular
- Soporte nativo para TypeScript
- Decoradores para validación, documentación, guards
- Ecosistema rico: Bull queues, WebSockets, GraphQL
- Fácil testing con DI
- Swagger auto-generado
Frontend: React + Vite + TailwindCSS
Framework: React 18 Bundler: Vite Styling: TailwindCSS + Shadcn/UI Estado: Zustand o TanStack Query
Razones:
- React es el estándar de la industria
- Vite ofrece desarrollo rápido (HMR instantáneo)
- TailwindCSS permite UI consistente sin escribir CSS custom
- Shadcn/UI provee componentes accesibles y personalizables
- Zustand es simple para estado global mínimo
Base de Datos: PostgreSQL
Motor: PostgreSQL 15+ Features usados: RLS, JSONB, Full-text search
Razones:
- Row-Level Security nativo para multi-tenancy
- JSONB para datos semi-estructurados (briefs, config)
- Búsqueda full-text integrada
- Maduro, confiable, excelente performance
- Soporte en todos los cloud providers
Cache y Cola: Redis + Bull
Cache: Redis Cola: Bull/BullMQ
Razones:
- Redis es estándar para cache y pub/sub
- Bull usa Redis, no requiere infraestructura adicional
- Bull tiene UI de admin (Bull Board)
- Soporte para prioridades y reintentos
Storage: S3/MinIO
Razones:
- API compatible con S3
- MinIO permite desarrollo local sin costos
- Escalable a cualquier cloud con S3
Consecuencias
Positivas
- Stack cohesivo con TypeScript end-to-end
- Productividad alta con frameworks maduros
- Buena documentación y comunidad
- Fácil encontrar desarrolladores
- Sin vendor lock-in significativo
Negativas
- TypeORM tiene limitaciones vs Prisma
- Bundle size de React puede crecer
- Curva de aprendizaje para decoradores de NestJS
- PostgreSQL requiere gestión de schemas
Alternativas Consideradas
Backend
- Express.js - Muy bajo nivel, requiere mucha configuración manual
- Fastify - Rápido pero menos ecosistema que NestJS
- Go/Gin - Performance pero equipo no tiene experiencia
Frontend
- Next.js - Overkill para SPA, SSR no necesario inicialmente
- Vue 3 - Válido pero React tiene mayor ecosistema
- Svelte - Ecosistema más pequeño, menos componentes UI
Base de Datos
- MySQL - Sin RLS nativo, menos features
- MongoDB - No relacional, complicaría queries complejos
- Supabase - Dependencia de servicio externo
Documento generado por: Requirements-Analyst Fecha: 2025-12-08