ComandaLocal
Un camarero grita hacia la cocina: "¡dos de la seis, uno para llevar!". El cocinero contesta "¿seis o dieciséis?" porque no ha oído bien. Ese malentendido de dos segundos, multiplicado por cada mesa de un turno de comida, es la razón por la que me puse a construir esto.
Quise sacar la comanda de la voz y ponerla en pantallas — sala, cocina, barra — sincronizadas al instante dentro de la red del propio local, sin depender de ningún servidor en la nube que pudiera darme una incidencia justo a la hora de comer.
Cómo pasó, en orden
Decidí construirlo de punta a punta yo solo: sala, cocina, barra, todo hablando por WebSocket dentro de la misma red, sin nube de por medio. Elegí Node y Socket.io porque ya los conocía bien — no quería que aprender una tecnología nueva se interpusiera entre la idea y tenerla funcionando de verdad.
Instalé un piloto real. No una demo en mi portátil: un turno de comida de verdad, con un camarero de carne y hueso tocando la pantalla mientras yo miraba los logs desde la barra sin decir nada, esperando que algo petara delante de un cliente.
No petó. Eso, la primera vez, se siente mejor que cualquier test en verde.
Migré todo a mi propia infraestructura. Dejó de depender de un dominio que no controlaba del todo.
Me audité a mí mismo, en serio, no por encima. Encontré que el PIN de 4-6 dígitos que usaba también el administrador — el rol con más privilegios de todos — era una broma de seguridad disfrazada de comodidad. Lo cambié a contraseña alfanumérica, cerré una fuga del slug de acceso que llevaba ahí desde el principio, y de paso me quité de encima Telegram y SMS: dos módulos que nunca llegué a necesitar y que solo sumaban avisos de seguridad. Con eso, pnpm audit --prod bajó de 41 avisos a 24. 418 tests corriendo en verde.
Ver arquitectura y detalle técnico
d8270a7..1aa0181 (endurecimiento de login) y 6ac0433 (recorte de módulos + deuda técnica). Todo corre dentro de la red del local, sin salida a internet salvo la del propio servidor.
Todo lo anterior funcionaba: un sistema técnicamente sólido, probado en un turno real. El 2026-09-01 lo puse en pausa a largo plazo, a la espera de poder validarlo en uso continuado. El trabajo queda documentado y el código en verde, listo para retomarse.
Lo que llegó a funcionar
Multidispositivo por diseño: la misma comanda, en cuatro superficies distintas. Capturas con datos ficticios.
Qué haría distinto
Buscaría el primer restaurante dispuesto a probarlo antes de escribir una sola línea de rate limiting. Probablemente construiría la mitad de lo que construí, y me ahorraría pulir un semáforo de pases que, hasta hoy, solo he visto encenderse yo.
Queda en pausa a largo plazo, con el trabajo documentado para retomarlo. El código sigue ahí, funcionando.
Si te pica saber más sobre este caso de estudio, o quieres comparar notas: mlandeira72@yahoo.com.