Skip to content
Go to Lynx

Arquitectura Lógica

This content is not available in your language yet.

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.

Lynx se divide en dos grandes áreas funcionales, cada una con un propósito específico dentro del ciclo de desarrollo.

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.

Módulos compartidos que proveen capacidades transversales a todas las aplicaciones.

PaqueteResponsabilidad Técnica
uiSistema de diseño basado en Bulma y CSS Modules.
modelsDefiniciones de modelos de Drizzle y schemas Zod.
coreUtilidades agnósticas y lógica de negocio compartida.
authSDK para todo el flujo de autenticación, sesiones y control de acceso implementado con Better Auth.
mailSDK de envío de correos y renderizado de plantillas de emails transaccionales construidos con React Email.
cliCLI para inicializar entornos y manejar secretos.
graph TD
    subgraph Packages
        M[models] --> UI[ui]
        Ma[mail]
        A[auth]
    end

    subgraph Apps
        NEXT[next] --> UI
        NEXT --> M
        NEST --> M
        NEST --> Ma
        NEST --> A
        ASTRO[astro] --> UI
    end

Para mantener la cohesión de la base de código, 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 sitio adecuado.

  • Estilizado: No se utilizan frameworks de utilidades (ej. Tailwind). Se prioriza el uso de la librería de UI (@lynx/ui) 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. Aplica para frontend y backend.

Además de la arquitectura lógica del monorepo, cada aplicación implementa su propia arquitectura interna:

  • Next.js: App Router con flujo de datos basado en Server Components y Client Components.
  • NestJS: Arquitectura modular con módulos, controladores, servicios y pipes. Inyección de dependencias que permite mantener arquitectura limpia.
  • Astro: Arquitectura basada en páginas y componentes de Astro y React.