Arquitectura y stack
Mentat es un monorepo pnpm con TypeScript estricto end-to-end. La fuente de
verdad arquitectónica es mentat-arquitectura-mvp.md (documento maestro) y
GENESIS.md (orientación) en la raíz del repo.
Stack
| Capa | Tecnología |
|---|---|
| Frontend | Next.js 14 (App Router), Tailwind, shadcn/ui, Geist, Framer Motion |
| Backend | Cloud Functions v2 (Node 20), Cloud Firestore, Firebase Auth, Cloud Storage |
| Resend | |
| Scheduler | Cloud Scheduler (ingestas periódicas) |
| Hosting | Firebase Hosting (static export) |
| Docs | Nextra (este sitio) |
| CI/CD | GitHub Actions |
Estructura del monorepo
mentat/
├── apps/
│ ├── web/ # Frontend Next.js (la app operativa)
│ ├── functions/ # Cloud Functions (todo el backend)
│ └── docs/ # Esta documentación (Nextra)
├── packages/
│ ├── ontology-core/ # Tipos del modelo (fuente única de verdad)
│ └── firebase-config/ # Config compartida (client + admin SDK)
├── scripts/ # admin / pilot / qa
├── firestore.rules · storage.rules · firestore.indexes.json
└── mentat-arquitectura-mvp.md · GENESIS.mdPrincipios no negociables
- Type safety end-to-end — cero
anysin justificar; tipos enontology-core. - Validación en el backend, siempre — cero writes directos del cliente.
- Operaciones atómicas para Actions (transacciones).
- Audit trail completo e inmutable (
ActionExecution,AuditEvent). - Optimistic locking con
version(nunca incrementar por trigger). - Soft delete por defecto.
- Sin lógica de negocio en el frontend (crítico para migrar a futuro).
- Costos visibles desde el día uno.
- El documento maestro se actualiza primero, después el código.
Multi-tenant
Segregación lógica por organizationId con Security Rules estrictas. Para
clientes con compliance crítico se evalúa multi-tenant físico (proyectos separados)
en el futuro. Ver límites.
Estado de producción
25 Cloud Functions desplegadas, hosting en dawoork-mentat.web.app, Cloud Scheduler
activo, dominio de email send.dawoork.com verificado en Resend. Las fases 0–6 están
selladas; la 7 (configuración de casos) tiene un piloto de referencia operativo.