El problema
Un jardín infantil vive de tres conversaciones, y las tres pasaban por el lugar equivocado. La cobranza se hacía con un mensaje general en el grupo de WhatsApp de cada aula: todos los padres se enteraban de quién debía. Los avisos se pegaban en esos mismos grupos, entre stickers y felicitaciones, y se perdían. Y la admisión no tenía web: el dominio había vencido.
Lo que construí
Una plataforma con tres puertas:
- La web pública, pensada para la admisión: aulas, eventos y un formulario que deja el dato del interesado listo para que el jardín lo llame.
- El panel administrativo: admisión como un embudo, matrícula, pensiones y cobranza, comunicados, calendario y aula virtual.
- Una sola app con perfil de padre y de docente: el padre ve los avisos, las pensiones y lo que pasa en el aula de su hijo; la docente publica sin salir de la app.
En total, diez áreas que hoy el jardín resolvía con papel, grupos de WhatsApp y memoria.
Cómo está hecho
Un monorepo en TypeScript: la web y el panel son un mismo Next.js que se rutea por dominio, la API va en NestJS con PostgreSQL y Drizzle, y la app es Expo —un APK en Android y una PWA en iPhone—. Todo corre en Docker, con respaldo diario y una restauración de prueba cada domingo.
Las decisiones que más pesan no son técnicas:
- El recordatorio de pago es privado, por familia. Sale como un enlace directo de WhatsApp a cada padre, sin la API de WhatsApp y sin el grupo.
- El sistema nunca bloquea al niño. Una pensión vencida no le cierra ninguna puerta al alumno: lo exige la Ley 29947, y es la primera regla del proyecto.
- La ficha de salud la ven solo quienes deben: administración, dirección y la docente del aula. Cada lectura queda registrada, y los archivos se sirven con enlaces firmados que vencen en dos horas.
- El núcleo no usa servicios que cobren por uso. Un jardín no puede tener una factura de infraestructura que crezca con cada aviso.
- La carga inicial sale de un Excel, todo o nada. Si una fila falla, no entra ninguna, y repetir la carga no duplica alumnos. Así el jardín puede empezar en cinco días hábiles.
La boleta no frena el pago. Cuando el jardín aprueba un pago, la boleta electrónica se emite por Comprobia en segundo plano. Si SUNAT tarda, el pago ya está registrado y la boleta llega después: un comprobante pendiente no puede dejar a un padre sin su recibo ni a la secretaria esperando.
Estado hoy
Es una demo funcional con datos simulados, en propuesta al jardín: el checklist de la demo pasa completo y la web marca 93 en Lighthouse móvil. Se construyó en dos días, del 18 al 19 de octubre de 2026, con 37 tablas, 5 roles, más de 170 pruebas automáticas y 98 decisiones registradas.
Lo que aprendí
Que en un colegio la tecnología se mide por lo que no hace: no exponer a un padre que debe, no bloquear a un niño, no mostrar la ficha médica a quien no le corresponde. Esas reglas se escribieron antes que el código, y son las que más pruebas tienen.



