ManLanC
En pausa

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.

NodeExpressSocket.ioSQLitesystemd

Cómo pasó, en orden

Antes de julio de 2026

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.

Julio de 2026

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.

22 de agosto de 2026

Migré todo a mi propia infraestructura. Dejó de depender de un dominio que no controlaba del todo.

23 de agosto de 2026

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
Commits 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. Arquitectura de ComandaLocal RED LOCAL DEL RESTAURANTE — sin salida a internet Sala móvil / tablet Cocina monitor fijo Servidor Node Express + Socket.io SQLite · systemd
Decisión: pausa a largo plazo

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.

Vista de sala en escritorio: listado de mesas con Mesa 1 ocupada Toma de comanda desde móvil, con un borrador de pedido en curso Display de barra en formato tablet: Mesa 1 con las bebidas completadas en verde, Mesa 2 lista para marcar como servida y Mesa 3 sin empezar Monitor de cocina con platos pendientes y en curso, organizados por pase
Panel de gestión y administración en escritorio, con jornada abierta y mapa de mesas

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.