Arquitectura Lógica
Lynx se fundamenta en un modelo de monorepo unidireccional gestionado por pnpm Workspaces. Esta estructura permite una separación clara de responsabilidades y un flujo de dependencias predecible.
Organización del Workspace
Section titled “Organización del Workspace”El ecosistema se divide en dos grandes áreas funcionales, cada una con un propósito específico dentro del ciclo de desarrollo.
Aplicaciones (Apps)
Section titled “Aplicaciones (Apps)”Son los puntos finales de ejecución y despliegue. Cada una se encarga de una interfaz o servicio específico:
- Next.js App: Interfaz de usuario principal y lógica de cliente.
- NestJS API: Núcleo de servicios, procesos de backend y persistencia.
- Astro Docs: Infraestructura de contenido estático y aprendizaje.
Paquetes (Packages)
Section titled “Paquetes (Packages)”Módulos compartidos que proveen capacidades transversales a todas las aplicaciones.
| Paquete | Responsabilidad Técnica |
|---|---|
ui | Sistema de diseño basado en CSS Modules. |
models | Definiciones de esquemas Zod y tipos TypeScript. |
core | Utilidades agnósticas y lógica de negocio compartida. |
i18n | Gestión centralizada de diccionarios y localización. |
Diagrama de Flujo de Dependencias
Section titled “Diagrama de Flujo de Dependencias”graph TD
subgraph Packages
M[models] --> UI[ui]
M --> C[core]
M --> D[Drizzle]
end
subgraph Apps
NEXT[next] --> UI
NEXT --> C
NEXT --> M
NEST[nest] --> C
NEST --> M
end
Estándares de Ingeniería
Section titled “Estándares de Ingeniería”Para mantener la cohesión del ecosistema, Lynx impone una serie de convenciones rigurosas:
[!IMPORTANT] Prohibición de
any: Todo el código debe estar estrictamente tipado. Si una estructura es desconocida, debe definirse en el paquete de modelos.
- Estilizado: No se utilizan frameworks de utilidades (ej. Tailwind). Se prioriza el uso de SCSS y CSS puro para un control total del diseño.
- Validación de Datos: Todas las entradas y salidas de datos deben ser validadas mediante esquemas de Zod antes de su procesamiento.
Gestión de Middleware
Section titled “Gestión de Middleware”En lugar de un archivo middleware.ts tradicional de Next.js, Lynx utiliza un componente especializado llamado proxy.ts. Este componente actúa como un interceptor centralizado para:
- Políticas de seguridad.
- Gestión de sesiones.
- Rewriting lógico de rutas dinámicas.
Para comenzar a trabajar con el motor de documentación, consulte la guía de Astro Docs.