Saltar al contenido
Gerardo Luna
Contacto
Proyectos
v0.1.0 publicadoApache 2.0Jul 2026 — presente · proyecto personal

Cullen.

Plataforma de punto de venta e inventario offline-first para supermercados: el terminal sigue vendiendo cuando la red cae, y todo lo que ocurrió mientras tanto se reconcilia sin efectos duplicados.

Forma
Monorepo TypeScript
Rol
Diseño y desarrollo · solo

1.282

pruebas Vitest en CI

125

triggers SQLite de invariantes

31

decisiones registradas (ADR)

11

escenarios de corte de red

Arquitectura

Fronteras que el linter defiende

Monorepo TypeScript sobre DDD táctico y arquitectura hexagonal, con las fronteras entre capas impuestas por ESLint, 31 ADRs que dejan el porqué por escrito y 125 triggers SQLite que respaldan los invariantes críticos en la base misma.

Sincronización

At-least-once, sin duplicados

Sincronización LAN sobre HTTPS con mTLS y Transactional Outbox at-least-once sin efectos duplicados, verificada con 11 escenarios de corte de red. Respaldos cifrados AES-256-GCM y autorización auditable.

Terminal

Permisos que derivan la navegación

Terminal en React 19 y Vite, con navegación derivada de permisos y claves de idempotencia por intención de formulario. v0.1.0 publicado con desarrollo asistido por IA y revisión humana.

Stack

  • TypeScript
  • Fastify
  • SQLite
  • Drizzle
  • Electron
  • React 19
  • Vite
  • mTLS
  • AES-256-GCM
  • Vitest