Ges2l
Plataforma multi-tenant para instituciones educativas, con inicio de sesión único, panel administrativo, módulo académico y un sitio de marketing bilingüe. Mi aplicación full stack más completa.
- Estado
- En desarrollo y pruebas de aceptación (UAT). El sitio de marketing es público; la plataforma todavía no está en uso en producción por instituciones.
- Tecnologías
- NestJS · Fastify · React · PostgreSQL · Drizzle · Redis · Astro · Turborepo
- Enlaces
- Ver sitio

Contexto
Colegios e instituciones académicas suelen manejar la administración y lo académico en herramientas separadas. Ges2l los reúne en una plataforma: un panel administrativo (sedes, usuarios, roles, años lectivos) y un módulo académico (periodos, grupos, asistencia, calificaciones), detrás de un único sistema de cuentas.
Qué construí
- Una API con NestJS 12 sobre Fastify, con PostgreSQL 18 detrás de PgBouncer y Drizzle ORM para esquema, migraciones y datos semilla.
- Datos multi-tenant y control de acceso por roles, para que cada institución vea solo sus registros y cada usuario solo lo que su rol permite.
- Inicio de sesión único entre subdominios (cuentas, panel, academy, mi cuenta) con sesiones en Redis, y JWT para clientes móviles y de API.
- Frontends con React 19 y Vite, TanStack Query y Zustand, que comparten paquetes de autenticación, i18n, validación e interfaz en un monorepo con pnpm y Turborepo.
- Un sitio de marketing en Astro (
ges2l.com) con i18n tipado, rutas localizadas, content collections y scripts que auditan metadatos SEO, traducciones y los hashes de la política de seguridad de contenido. - Infraestructura con Docker para desarrollo local y despliegue, con Nginx, PgBouncer y Redis.
Decisiones
- Paquetes compartidos en vez de copiar y pegar. Tipos de autenticación, validadores, recursos de i18n y componentes viven en un solo lugar y los usan todas las aplicaciones.
- El sitio de marketing es solo Astro. React solo se permite dentro de una isla; hoy no envía nada de React.
- Controles de calidad en el toolchain: oxlint, oxfmt, syncpack y knip en todo el monorepo.
Estado
En desarrollo y pruebas de aceptación (UAT). El sitio de marketing en ges2l.com es público; la plataforma todavía no está en uso en producción por instituciones. El panel de la captura del sitio de marketing es una maqueta ilustrativa con datos de ejemplo.