<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Blog de menululo</title>
<link>https://menululo.com/</link>
<description>Artículos para dueños de restaurantes en Colombia y tecnología explicada en claro: caja, cocina, menú digital, costos, software y algoritmos.</description>
<language>es-co</language>
<atom:link href="https://menululo.com/rss.xml" rel="self" type="application/rss+xml"/>
<lastBuildDate>Mon, 14 Sep 2026 00:00:00 GMT</lastBuildDate>
<item><title>Emprendedores de comida: plan Pro a $25.000 al mes por 4 meses</title><link>https://menululo.com/blog/emprendedores-restaurante-plan-pro-25000/</link><guid isPermaLink="true">https://menululo.com/blog/emprendedores-restaurante-plan-pro-25000/</guid><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><description>Estás arrancando tu negocio de comida y cada peso cuenta. Consejos para tus primeros 90 días y el plan Pro a $25.000 al mes por 4 meses, sin tarjeta.</description><category>Software y precios</category><category>emprendedores</category><category>pyme</category><category>precios</category><category>caja</category><content:encoded><![CDATA[<p>Llevas meses soñándolo. Conseguiste el local, pintaste tú mismo, compraste la estufa de segunda y probaste la receta con la familia hasta que quedó perfecta. Ahora abres, y resulta que cocinar era la parte fácil. Hay que comprar, cobrar, llevar cuentas, contestar el celular, pagar el arriendo y, de paso, entender si el negocio está dejando algo.</p>
<p>Si estás empezando, este artículo es para ti: primero, lo que conviene hacer en tus primeros 90 días. Después, una oferta que armamos pensando en quienes arrancan.</p>
<h2>¿Por qué empezar un negocio de comida da tanto susto?</h2>
<p>Porque haces todo con poca plata y casi siempre solo. Cada gasto se siente enorme, cada día flojo preocupa y no hay nadie a quien preguntarle si vas bien.</p>
<p>Y cuando piensas en un sistema para organizarte, aparece otro miedo: que eso sea para cadenas grandes, que sea caro, complicado o que pida una tarjeta de crédito que no tienes. Entonces sigues con el cuaderno, aunque sabes que se te escapan cosas.</p>
<h2>¿Qué errores cuestan más en los primeros meses?</h2>
<p>Los que no se ven hasta que ya pasaron. Los más comunes al empezar:</p>
<ul>
<li><strong>Mezclar la plata de la casa con la del negocio.</strong> Sin separarla, nunca sabes si el negocio gana o si lo estás sosteniendo tú.</li>
<li><strong>No saber cuánto cuesta cada plato.</strong> Pones el precio “a ojo” y vendes mucho sin ganar.</li>
<li><strong>No cuadrar la caja cada día.</strong> Una diferencia pequeña repetida se vuelve un hueco grande.</li>
<li><strong>Comprar de más por miedo a quedarte sin nada.</strong> Lo que se daña es plata botada.</li>
</ul>
<p>Si la caja ya te está dando dolores de cabeza, empieza por <a href="https://menululo.com/blog/por-que-no-cuadra-la-caja/">por qué no te cuadra la caja al final del turno</a>.</p>
<h2>¿Qué hacer en tus primeros 90 días?</h2>
<p>Ordenar poco a poco, sin querer resolverlo todo el primer día.</p>
<p><strong>Días 1 a 30: separa y registra.</strong> Abre una cuenta o una llave solo para el negocio. Anota cada venta y cada gasto, por pequeño que sea. Cuenta la caja al cerrar, todos los días.</p>
<p><strong>Días 31 a 60: entiende tus números.</strong> Calcula el costo de tus cinco platos más vendidos. Revisa cuáles dejan margen y cuáles no. Mira qué días y horas se vende más.</p>
<p><strong>Días 61 a 90: ajusta y delega.</strong> Sube precios donde el margen no alcanza. Deja de comprar lo que casi no rota. Si ya tienes ayuda, define quién hace qué y quién responde por la plata.</p>
<p>Con esos tres pasos llegas al cuarto mes sabiendo mucho más de tu negocio que la mayoría de gente que abre.</p>
<p>Y no lo hagas completamente solo. Busca a otros emprendedores de tu barrio, pregunta en tu Cámara de Comercio por programas de acompañamiento y apóyate en quienes ya pasaron por lo mismo. Muchas de las dudas que te quitan el sueño ya las resolvió alguien que abrió antes que tú. Pedir consejo a tiempo no es debilidad: te ahorra meses de errores y bastante plata.</p>
<h2>¿De verdad un sistema es solo para cadenas grandes?</h2>
<p>No. Un negocio pequeño lo necesita incluso más, porque tiene menos margen para equivocarse. La diferencia es que debe ser sencillo, aprenderse rápido y crecer contigo sin obligarte a cambiar de herramienta.</p>
<p>Con un sistema así, cada pedido queda registrado, la caja se cuadra con el conteo del turno y ves qué se vende y qué no, sin armar hojas de cálculo en la noche. Puedes ver la idea completa en <a href="https://menululo.com/como-funciona/caja-y-cierre/">cómo funcionan la caja y el cierre</a>.</p>
<h2>¿En qué consiste la oferta para emprendedores?</h2>
<p>Plan Pro a <strong>$25.000 al mes durante 4 meses</strong> para quienes están empezando su negocio de comida. Es el plan completo, no una versión recortada, a un precio pensado para tus primeros meses.</p>
<p>Además:</p>
<ul>
<li><strong>Sin tarjeta de crédito.</strong> Pagas por transferencia o llave, por WhatsApp.</li>
<li><strong>Activación inmediata</strong> apenas se confirma el pago.</li>
<li><strong>Asesoría gratuita</strong> para dejar tu menú y tu caja listos desde el inicio.</li>
</ul>
<h2>¿Quién puede pedirla y cómo?</h2>
<p>Quien esté empezando un negocio de comida y lo muestre por WhatsApp. Basta con enviar alguna evidencia de que es nuevo: fotos del local recién montado, de la adecuación, del letrero o de un registro reciente del negocio.</p>
<p>El proceso es corto: nos escribes por WhatsApp, nos cuentas qué estás montando, envías la evidencia, pagas el primer mes por transferencia o llave y empiezas a usarlo ese mismo día.</p>
<h2>¿Qué pasa cuando terminan los 4 meses?</h2>
<p>Si estás usando la app de verdad en tu día a día, la oferta se puede extender. Queremos que el precio no sea la razón para dejar de organizarte mientras el negocio se estabiliza.</p>
<p>Si no la usaste, no pasa nada: decides con calma qué plan te sirve. Como pagas mes a mes, no hay cobros automáticos ni permanencia.</p>
<h2>¿Listo para arrancar con orden?</h2>
<p>Escríbenos por WhatsApp y cuéntanos qué negocio estás empezando. Te ayudamos a revisar si el plan te sirve y, si es así, lo dejamos activo hoy mismo.</p>]]></content:encoded></item>
<item><title>Sismo del 10 de agosto: guía para reabrir tu negocio de comida</title><link>https://menululo.com/blog/apoyo-restaurantes-afectados-sismo-agosto-2026/</link><guid isPermaLink="true">https://menululo.com/blog/apoyo-restaurantes-afectados-sismo-agosto-2026/</guid><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><description>Pasos prácticos para reabrir un restaurante afectado por el sismo del 10 de agosto de 2026, y el plan Pro sin costo por 6 meses como apoyo, sin compromiso.</description><category>Software y precios</category><category>sismo</category><category>reapertura</category><category>pyme</category><category>caja</category><content:encoded><![CDATA[<p>Antes que cualquier otra cosa: lo sentimos mucho. Si tu negocio, tu casa o tu familia fueron afectados por el sismo del 10 de agosto, sabemos que reabrir un restaurante puede no ser lo primero en tu lista, y está bien. Este artículo está aquí para cuando llegue ese momento, con pasos prácticos y sin prisa.</p>
<p>Al final te contamos cómo podemos acompañarte. Pero lo útil viene primero.</p>
<h2>¿Qué pasó el 10 de agosto de 2026?</h2>
<p>A las 7:34 a. m. ocurrió un sismo de magnitud 7,4 con epicentro en San José del Palmar, Chocó, a 103 kilómetros de profundidad, según el <a href="https://www2.sgc.gov.co/Noticias/Paginas/SGC-actualiza-la-informacion-sobre-el-sismo-ocurrido-en-San-Jose-del-Palmar-Choco.aspx">Servicio Geológico Colombiano</a>. Se sintió en buena parte del país y también en países vecinos.</p>
<p>El mismo Servicio Geológico lo registra como el <a href="https://www2.sgc.gov.co/Noticias/Paginas/Sismo-de-San-Jose-del-Palmar-un-mes-de-monitoreo-investigacion-y-trabajo-en-territorio-del-SGC.aspx">tercer sismo de mayor magnitud en la historia de Colombia</a>, y ha seguido reportando réplicas en las semanas siguientes. Para información sobre afectaciones y atención, la fuente oficial es la <a href="http://portal.gestiondelriesgo.gov.co/">Unidad Nacional para la Gestión del Riesgo de Desastres</a>.</p>
<h2>¿Por dónde empezar antes de pensar en vender?</h2>
<p>Por la seguridad de las personas y del local. No vuelvas a operar hasta que la estructura haya sido revisada, sobre todo si ves grietas, techos desplazados o problemas con las instalaciones de gas o de energía.</p>
<p>Consulta en tu alcaldía cómo solicitar la revisión del inmueble. Mientras tanto, toma fotos y videos de todos los daños, con fecha: te servirán para el seguro, para el arrendador y para cualquier ayuda que solicites.</p>
<h2>¿Qué hacer con el inventario y los alimentos?</h2>
<p>Revisa todo con criterio de seguridad, no de ahorro. Bota lo que haya estado en neveras sin energía por mucho tiempo, lo que tuvo contacto con polvo, escombros o agua de dudosa procedencia, y cualquier empaque roto.</p>
<p>Antes de botar, anota qué se perdió y cuánto costaba, con fotos. Luego haz un conteo limpio de lo que sí sirve. Ese inventario inicial será tu punto de partida para las compras de reapertura. Si quieres hacerlo con método, te puede servir la guía de <a href="https://menululo.com/blog/control-de-inventario-restaurante/">control de inventario para restaurantes</a>.</p>
<h2>¿Cómo cuidar la caja en las semanas difíciles?</h2>
<p>Con un plan de plata para las próximas cuatro semanas, aunque sea sencillo. Anota lo que tienes disponible, lo que debes pagar sí o sí y lo mínimo que necesitas comprar para volver a abrir.</p>
<p>Algunas ideas prácticas:</p>
<ul>
<li><strong>Habla con tu arrendador y tus proveedores antes de que venzan los pagos.</strong> Explicar a tiempo abre más puertas que explicar tarde.</li>
<li><strong>Pregunta en tu banco por alivios para damnificados.</strong> Pide las condiciones por escrito.</li>
<li><strong>Reabre con un menú corto.</strong> Menos platos significa menos compras, menos desperdicio y una cocina más fácil de manejar.</li>
<li><strong>Separa la plata del negocio de la de la casa</strong>, aunque sea en dos sobres.</li>
</ul>
<h2>¿Cómo acompañar a tu equipo?</h2>
<p>Primero como personas, después como trabajadores. Pregunta cómo están ellos y sus familias antes de hablar de turnos. Algunos pueden haber perdido su vivienda o tener a alguien a cargo.</p>
<p>Cuando sea momento de volver, sé claro con lo que puedes ofrecer: horarios, pagos y fechas. La incertidumbre pesa más que una mala noticia dicha a tiempo.</p>
<h2>¿Cómo contarles a tus clientes que vuelves?</h2>
<p>Con honestidad y sin dramatizar. Un mensaje corto por tus redes y por WhatsApp funciona bien: que están bien, cuándo reabren, en qué horario y con qué menú.</p>
<p>Si reabres de forma parcial, dilo: “por ahora solo domicilios” o “menú del día mientras terminamos de arreglar”. Tus clientes de siempre suelen querer apoyarte; solo necesitan saber cómo.</p>
<h2>¿Qué ayudas oficiales puedes consultar?</h2>
<p>Las medidas cambian con el tiempo, así que verifica siempre en la fuente oficial:</p>
<ul>
<li><strong>Tu alcaldía y el consejo municipal de gestión del riesgo</strong>, para la revisión del inmueble y el registro de afectaciones.</li>
<li><strong>La <a href="http://portal.gestiondelriesgo.gov.co/">Unidad Nacional para la Gestión del Riesgo de Desastres</a></strong>, para la información oficial de atención.</li>
<li><strong>Tu Cámara de Comercio</strong>, que suele conocer los programas de apoyo a comerciantes de tu región.</li>
<li><strong><a href="https://www.bancoldex.com/lineas-de-credito">Bancóldex</a></strong>, donde se publican las líneas de crédito vigentes para empresas.</li>
</ul>
<p>Desconfía de quien te pida plata por adelantado para “gestionar” una ayuda oficial.</p>
<h2>¿Cómo podemos acompañarte desde menululo?</h2>
<p>Con el <strong>plan Pro sin costo durante 6 meses</strong> para negocios de comida afectados por el sismo del 10 de agosto. Sin compromiso de permanencia y sin tarjeta de crédito.</p>
<p>Reabrir con la caja, el inventario y los pedidos ordenados desde el primer día ayuda a entender rápido si el negocio se está recuperando. Puedes ver cómo funciona el cierre de turno en <a href="https://menululo.com/como-funciona/caja-y-cierre/">cómo funcionan la caja y el cierre</a>.</p>
<h2>¿Qué necesitas para pedirlo?</h2>
<p>Solo escribirnos por WhatsApp y enviar una evidencia sencilla de la afectación: fotos de los daños o del cierre, o una constancia de registro si la tienes. No necesitas tener todo resuelto para escribirnos.</p>
<p>Y si todavía no es momento de pensar en sistemas, también puedes escribirnos para una asesoría gratuita sobre cómo organizar la reapertura. Estamos para ayudarte.</p>]]></content:encoded></item>
<item><title>Comandas perdidas: el error que no aparece en ningún reporte</title><link>https://menululo.com/blog/comandas-perdidas/</link><guid isPermaLink="true">https://menululo.com/blog/comandas-perdidas/</guid><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><description>Por qué una comanda perdida no se nota en la caja, cuánto le cuesta de verdad a tu restaurante y cómo cortar el problema de raíz desde el próximo turno.</description><category>Cocina y comandas</category><category>comandas</category><category>cocina</category><category>hora-pico</category><category>errores-de-pedido</category><content:encoded><![CDATA[<p>Martes, hora de almuerzo. La mesa cuatro pidió dos corrientazos y una limonada hace veinticinco minutos. La mesera jura que pasó el pedido; en la cocina no hay ningún papel. Al rato aparece la comanda en el bolsillo del delantal, debajo de otra. Los clientes, que tenían media hora para almorzar, pagan las limonadas y se van. Al cerrar, la caja cuadra perfecto. Nadie anota lo que pasó.</p>
<p>Ese es el problema de las comandas perdidas: la caja no las ve.</p>
<h2>¿Por qué una comanda perdida no aparece en ningún reporte?</h2>
<p>Porque no deja rastro en la plata. La caja solo cuenta lo que se cobró; un pedido que nunca llegó a la cocina, o que se preparó mal y se repitió, no produce un faltante: produce comida botada, tiempo perdido y un cliente que no vuelve.</p>
<p>Por eso muchos dueños no saben cuántas comandas pierden. No es que no pase; es que ningún número lo muestra.</p>
<h2>¿Cómo se pierde una comanda?</h2>
<p>De formas muy cotidianas, casi siempre en la hora pico:</p>
<ul>
<li><strong>El papel se queda en el camino:</strong> en un bolsillo, debajo de otra comanda o mojado junto al lavaplatos.</li>
<li><strong>Se dice en voz alta y no se escucha</strong> entre el ruido de la freidora y la campana.</li>
<li><strong>Se escribe con afán</strong> y en la cocina se lee “con” donde decía “sin”.</li>
<li><strong>Llega por varios lados a la vez:</strong> el mesero, el mostrador y el celular de los domicilios, sin un orden común.</li>
<li><strong>Se modifica y el cambio no llega:</strong> el cliente cambió la bebida, pero en la cocina ya estaban preparando la anterior.</li>
</ul>
<h2>¿Cuánto le cuesta a tu restaurante un error de pedido?</h2>
<p>Cada error se paga varias veces: los ingredientes del plato equivocado, el gas y el tiempo de rehacerlo, la espera del cliente y, muchas veces, una cortesía para calmar la situación. Y lo que no se puede reponer es la visita que ese cliente ya no hará.</p>
<p>La comida que se bota tampoco es un asunto menor. Según el <a href="https://colaboracion.dnp.gov.co/CDT/Prensa/Publicaciones/P%C3%A9rdida%20y%20desperdicio%20de%20alimentos%20en%20colombia.pdf">Departamento Nacional de Planeación</a>, en Colombia se pierden y desperdician 9,76 millones de toneladas de alimentos al año, el 34 % de la oferta disponible para el consumo humano. Cada plato rehecho por una comanda mal pasada suma a esa cuenta, y también a la tuya.</p>
<p>Un ejercicio útil: durante una semana, pídele a la cocina que anote cada plato repetido o devuelto por un error de pedido, con lo que costó prepararlo. Ese total es lo que hoy te está costando el problema que no aparece en ningún reporte.</p>
<h2>¿Qué le hace al dueño no saber dónde se pierden los pedidos?</h2>
<p>Lo lleva a desconfiar de su equipo sin pruebas. Cuando el cliente se queja, la mesera dice que pasó el pedido y el cocinero dice que nunca le llegó. Sin un registro, tú no puedes saber qué pasó, y terminas decidiendo por intuición a quién creerle.</p>
<p>Con el tiempo, esa duda desgasta a todos. El equipo trabaja a la defensiva, tú terminas supervisando cada mesa y la hora pico se vuelve el momento más temido del día, en lugar del más rentable.</p>
<h2>¿Qué puedes hacer desde hoy para no perder comandas?</h2>
<p>Ordenar el recorrido del pedido, de la mesa a la cocina, para que no dependa de la memoria de nadie. Estas medidas funcionan incluso en papel:</p>
<ol>
<li><strong>Una sola vía de entrada.</strong> Todos los pedidos, de mesa, mostrador o domicilio, llegan a la cocina por el mismo medio.</li>
<li><strong>Comanda completa y numerada.</strong> Número, mesa o nombre, hora y cada detalle: “sin cebolla”, “término medio”.</li>
<li><strong>Confirmar con el cliente</strong> antes de enviar el pedido a la cocina.</li>
<li><strong>Una cola visible en la cocina</strong>, en orden de llegada, en un riel o gancho lejos del agua y del calor.</li>
<li><strong>Marcar la comanda cuando sale el plato</strong> y guardarla hasta cerrar la cuenta de esa mesa.</li>
<li><strong>Los cambios también van por escrito.</strong> Nada de “dile al cocinero que al final era sin queso”.</li>
<li><strong>Roles claros en hora pico</strong>, para que nadie tome pedidos “de pasada”. Lo explicamos en <a href="https://menululo.com/blog/roles-personal-hora-pico/">cómo organizar los roles de tu equipo cuando llega la hora pico</a>.</li>
</ol>
<p>Si al hacer el ejercicio descubres que la mayoría de errores vienen de pedidos a los que les falta un detalle, revisa también cómo está escrita tu carta: un plato con opciones poco claras genera comandas ambiguas desde el principio.</p>
<h2>¿Y los pedidos que llegan por teléfono o por chat?</h2>
<p>Son los que más se pierden, porque no pasan por el salón. Llegan al celular de alguien, se anotan con prisa y muchas veces viajan a la cocina de palabra.</p>
<p>Trátalos igual que un pedido de mesa: se pasan a comanda completa, con nombre del cliente, dirección o hora de recogida y cada detalle, y entran a la misma cola de la cocina. Nada de “hazme ya una hamburguesa que es para un domicilio”. Y antes de despachar, alguien compara lo que va en la bolsa con lo que dice la comanda, porque un domicilio equivocado ya no se corrige en la mesa.</p>
<h2>¿Cómo corta una comanda digital el problema de raíz?</h2>
<p>Eliminando el paso donde se pierde: el traslado del pedido. Cuando el pedido se registra en la mesa, llega solo a la cocina, completo y en orden, sin pasar por bolsillos, ruido ni letra apurada.</p>
<p>Así se vive con menululo: apenas se registra el pedido, la comanda se imprime en la cocina y aparece en una pantalla con la cola en vivo, de nuevo a en preparación y a listo para salir. Si todavía no tienes impresora, aquí te ayudamos a decidir <a href="https://menululo.com/blog/necesito-impresora-termica/">si de verdad necesitas una impresora térmica</a>. Y el recorrido completo está en <a href="https://menululo.com/como-funciona/comandas-y-cocina/">cómo funcionan las comandas y la cocina</a>.</p>
<h2>¿Por dónde empiezo?</h2>
<p>Empieza por contar, durante una semana, cuántos platos se repiten por errores de pedido. Ese número te va a decir cuánto vale resolverlo.</p>
<p>Y si quieres que lo miremos juntos, escríbenos por WhatsApp. Cuéntanos cómo viajan hoy los pedidos de la mesa a la cocina y, en la asesoría gratuita, te mostramos dónde se están perdiendo y cómo organizarlo.</p>]]></content:encoded></item>
<item><title>Menú digital o impreso: qué le conviene a tu restaurante</title><link>https://menululo.com/blog/menu-digital-o-impreso/</link><guid isPermaLink="true">https://menululo.com/blog/menu-digital-o-impreso/</guid><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><description>Reimprimir la carta cada vez que sube un insumo sale caro. Compara el menú digital y el impreso y haz la transición sin perder la calidez.</description><category>Menú digital</category><category>pyme</category><category>emprendedores</category><category>whatsapp-business</category><content:encoded><![CDATA[<p>Subió el precio del queso. Otra vez. Ya habías subido la hamburguesa hace dos meses y la carta plastificada tiene un precio tachado con marcador y un papelito pegado encima. Un cliente pide la limonada de coco que ya no preparas, el mesero se disculpa, y en la mesa de al lado alguien pregunta si el precio del papelito es el de verdad.</p>
<p>La carta impresa tiene algo bonito: se siente, se hojea, tiene la cara del negocio. El problema es que se queda quieta mientras todo lo demás cambia.</p>
<h2>¿Cuánto cuesta de verdad reimprimir el menú?</h2>
<p>Más que la imprenta. El diseño y la impresión son el costo visible; el invisible es todo lo que pasa mientras decides si vale la pena reimprimir: precios viejos, platos que ya no hay y cartas manchadas que hablan mal del negocio.</p>
<p>El costo más caro es el que casi nadie calcula: vender por debajo de lo que deberías. Cuando reimprimir es un lío, se tiende a aplazar la subida de precios. Cada semana con el precio viejo es una semana en la que un insumo más caro se come tu margen. Si no tienes claro cuánto deja cada plato, empieza por <a href="https://menululo.com/blog/mi-restaurante-es-rentable/">cómo saber si tu restaurante realmente está ganando plata</a>.</p>
<p>Súmale los platos agotados. Un cliente que elige algo de la carta y le dicen que no hay ya empieza la comida con una pequeña desilusión, y eso le pasa a más de uno en el mismo día.</p>
<h2>¿Qué te pasa a ti cuando la carta no dice la verdad?</h2>
<p>Te toca justificar lo que la carta no explica. Tus meseros se vuelven traductores de papelitos y tachones, y tú terminas en discusiones incómodas por un precio que “decía otra cosa”.</p>
<p>Además, cada cambio se vuelve un proyecto: pedir el diseño, esperar la prueba, pagar la impresión, repartir las cartas nuevas. Con tanto trabajo de por medio, es normal que termines dejando la carta como está aunque sepas que no está bien. Y esa sensación de tener el negocio “desactualizado” pesa, sobre todo cuando te importa cómo te ven los clientes.</p>
<h2>¿Qué gana tu cliente con un menú digital bien hecho?</h2>
<p>Gana una carta que dice la verdad: precios al día, fotos reales y solo lo que hay hoy. Y puede verla antes de llegar, compartirla con quien lo acompaña o pedir por chat con el mismo enlace.</p>
<p>Eso último importa más de lo que parece. Un mismo menú sirve para la mesa, para el chat y para tus redes. Si hoy tus clientes te piden “mándame la carta” por WhatsApp y les envías fotos borrosas, un enlace que siempre está al día te ahorra ese ir y venir; lo explicamos en <a href="https://menululo.com/blog/pedidos-whatsapp-desorganizados/">cómo ordenar los pedidos por WhatsApp</a>.</p>
<h2>¿Cuándo sigue siendo mejor el menú impreso?</h2>
<p>Cuando tu clientela lo prefiere o la experiencia de la mesa lo pide. Hay personas que no quieren sacar el celular para comer, zonas con mala señal y restaurantes donde hojear la carta es parte del momento.</p>
<p>Por eso la pregunta no es “digital o impreso”, sino qué papel cumple cada uno. Para la mayoría de negocios pequeños, lo sensato es que el menú digital sea la fuente siempre actualizada y que la carta física sea un apoyo, más corta y con lo que casi nunca cambia.</p>
<h2>¿Qué debería llevar una carta impresa corta?</h2>
<p>Solo lo que casi nunca cambia: tus platos clásicos, las bebidas de siempre y una línea que invite a escanear el código para ver lo del día. Así la reimprimes muy de vez en cuando, y cuando lo hagas, la vas a imprimir con gusto.</p>
<p>Piensa en ella como la tarjeta de presentación de tu cocina, no como el inventario completo. Menos páginas también significa menos cartas que se manchan, se pierden o quedan con precios viejos. Y si un plato clásico cambia de precio, esa es la señal para revisar la carta física completa de una vez, no para pegar otro papelito encima.</p>
<h2>¿Cómo hacer la transición sin perder calidez?</h2>
<p>Poco a poco, sin quitarle nada al cliente de golpe. Estos pasos los puedes empezar esta semana:</p>
<ol>
<li><strong>Empieza por lo que más cambia.</strong> Precios, platos del día, bebidas de temporada. Eso va primero al menú digital.</li>
<li><strong>Deja unas pocas cartas impresas.</strong> Para quien las pida. Nadie debería sentir que lo obligas a usar el celular.</li>
<li><strong>Pon el código QR grande y con una frase amable.</strong> Algo como “escanea para ver la carta del día”. Un código diminuto en una esquina no lo usa nadie.</li>
<li><strong>Fotos reales, no de catálogo.</strong> Toma las fotos con buena luz natural, del plato como realmente sale. La foto que no se parece al plato genera más reclamos que la falta de foto.</li>
<li><strong>Pruébalo en un celular sencillo y con datos.</strong> Si tarda en abrir o la letra es pequeña, tus clientes se van a frustrar. Revísalo también de noche, con la luz del local.</li>
<li><strong>Que el mesero siga siendo el guía.</strong> El menú digital informa; el mesero recomienda. Pídele que acompañe a quien escanee por primera vez.</li>
<li><strong>Usa el mismo enlace en todas partes.</strong> Mesas, chat, redes y la puerta del local. Un solo menú, una sola verdad.</li>
</ol>
<h2>¿Qué cambia cuando un sistema publica tu menú?</h2>
<p>Cambia que actualizar la carta deja de ser un proyecto y pasa a ser un gesto. Cuando el menú digital sale del mismo lugar donde manejas tus productos, cambias un precio y el menú publicado cambia al instante, sin reimprimir nada.</p>
<p>Si un plato se agota, deja de mostrarse. El código QR queda listo para imprimir una sola vez y sigue sirviendo aunque la carta cambie cada semana. Tú dejas de pensar en la imprenta y vuelves a pensar en la comida. La idea completa está en <a href="https://menululo.com/como-funciona/menu-digital-qr/">cómo funciona el menú digital con QR</a>.</p>
<h2>¿Por dónde empiezas?</h2>
<p>Mira tu carta actual y marca todo lo que ha cambiado desde que la imprimiste: precios, platos que ya no haces, platos nuevos que no aparecen. Si hay más de tres marcas, ya tienes la respuesta.</p>
<p>Si quieres, mándanos por WhatsApp una foto de tu menú actual y te mostramos cómo se vería en digital, sin compromiso. Puedes empezar con el plan Gratis y no necesitas tarjeta de crédito.</p>]]></content:encoded></item>
<item><title>Multiplataforma vs nativo: cómo elegir para tu próxima app</title><link>https://menululo.com/blog/multiplataforma-vs-nativo/</link><guid isPermaLink="true">https://menululo.com/blog/multiplataforma-vs-nativo/</guid><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><description>Diferencias reales entre desarrollo nativo y multiplataforma: rendimiento, acceso al hardware, velocidad de desarrollo, mantenimiento y PWA.</description><category>Arquitectura de software</category><category>desarrollo-movil</category><category>multiplataforma</category><category>nativo</category><category>pwa</category><category>arquitectura</category><content:encoded><![CDATA[<h2>Resumen</h2>
<ul>
<li><strong>Nativo</strong> es escribir una app por plataforma con sus herramientas oficiales; <strong>multiplataforma</strong> es compartir código entre plataformas, en distintos grados.</li>
<li>La diferencia de rendimiento importa menos de lo que se cree en apps comunes, y más en gráficos intensivos, tiempo real o integraciones profundas con el sistema.</li>
<li>La decisión real suele depender de <strong>equipo, presupuesto, ciclo de vida del producto y acceso al hardware</strong>, no de una comparación de velocidad aislada.</li>
</ul>
<h2>¿Qué diferencia hay entre una app nativa y una multiplataforma?</h2>
<p><strong>Una app nativa se escribe por separado para cada sistema operativo, con el lenguaje y los componentes oficiales de esa plataforma; una multiplataforma comparte todo o parte del código entre sistemas.</strong></p>
<p>En el mundo móvil esto significa, en la práctica, decidir si se mantienen dos aplicaciones independientes para iOS y Android o una base de código común. En escritorio y web la pregunta es la misma, con más plataformas en juego.</p>
<p>La palabra “multiplataforma” es engañosa porque agrupa enfoques muy distintos. Antes de comparar, conviene separarlos.</p>
<h2>¿Qué tipos de desarrollo multiplataforma existen?</h2>
<p><strong>Hay cinco familias principales, que se diferencian en qué se comparte y en cómo se dibuja la interfaz.</strong></p>
<ol>
<li><strong>Aplicación web progresiva (PWA).</strong> Una web que se puede instalar y funcionar sin conexión. Según <a href="https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps">MDN</a>, una PWA puede ejecutarse en múltiples plataformas desde una sola base de código y, como una app específica de plataforma, instalarse, operar sin conexión y en segundo plano, e integrarse con el dispositivo.</li>
<li><strong>Híbridas con WebView.</strong> Una app instalable cuya interfaz es HTML dentro de un navegador embebido, con puentes para acceder a funciones del dispositivo.</li>
<li><strong>Frameworks que traducen a componentes nativos.</strong> Se escribe en un lenguaje común y el framework crea botones, listas y campos reales de cada plataforma.</li>
<li><strong>Frameworks con motor de renderizado propio.</strong> Dibujan cada píxel de la interfaz con su propio motor, lo que da la misma apariencia en todas las plataformas.</li>
<li><strong>Lógica compartida, interfaz nativa.</strong> Se comparte el código de negocio (validaciones, red, almacenamiento) y cada plataforma tiene su propia interfaz nativa.</li>
</ol>
<p>Cada familia ocupa un punto distinto entre “máximo código compartido” y “máxima fidelidad a la plataforma”.</p>
<h2>¿Hay diferencia real de rendimiento?</h2>
<p><strong>Sí existe, pero en la mayoría de las apps de negocio, contenido o formularios no es el factor decisivo; lo decisivo es no bloquear el hilo principal.</strong></p>
<p>El límite práctico lo ponen las pantallas. La documentación de Android indica que una app debe <a href="https://developer.android.com/topic/performance/vitals/render">dibujar cada cuadro en menos de 16 ms para alcanzar 60 cuadros por segundo</a>, una ventana que baja a 11 ms a 90 fps y a 8 ms a 120 fps. Si un cuadro no llega a tiempo, no se muestra tarde: se descarta, y el usuario percibe saltos.</p>
<p>Más grave aún: si el hilo de la interfaz no responde a un toque en <a href="https://developer.android.com/topic/performance/vitals/anr">5 segundos, Android muestra el error “La aplicación no responde” (ANR)</a>.</p>
<p>Estos límites aplican igual a una app nativa y a una multiplataforma. Una app nativa mal escrita, que lee archivos o hace cálculos pesados en el hilo principal, se congela igual. Donde el enfoque sí pesa:</p>
<ul>
<li><strong>Arranque en frío:</strong> algunos enfoques cargan un motor o un entorno de ejecución adicional.</li>
<li><strong>Tamaño del instalable:</strong> incluir un motor propio o un puente agrega peso.</li>
<li><strong>Animaciones complejas y gráficos:</strong> cada capa entre el código y la GPU suma costo.</li>
<li><strong>Uso intensivo de hardware:</strong> cámara con procesamiento en tiempo real, audio de baja latencia, sensores a alta frecuencia.</li>
</ul>
<h2>¿Qué pasa con el acceso al hardware y a las APIs nuevas?</h2>
<p><strong>El desarrollo nativo accede a todo desde el primer día; los enfoques multiplataforma dependen de que exista un puente o plugin, y a veces hay que escribirlo.</strong></p>
<p>Cuando un sistema operativo lanza una capacidad nueva, la documentación y las herramientas oficiales la cubren de inmediato. En un framework multiplataforma, alguien tiene que exponerla. Para funciones comunes (cámara, ubicación, notificaciones, almacenamiento) casi siempre hay soluciones maduras. Para funciones de nicho o recién lanzadas, el equipo puede terminar escribiendo código nativo de todas formas, así que conviene que alguien del equipo lo sepa hacer.</p>
<p>En la web el panorama es aún más desigual: algunas APIs están disponibles solo en ciertos navegadores. Por ejemplo, MDN marca la <a href="https://developer.mozilla.org/en-US/docs/Web/API/Background_Synchronization_API">API de sincronización en segundo plano</a> como fuera de Baseline porque no funciona en algunos de los navegadores más usados. Antes de elegir PWA, revisa la compatibilidad de cada función que necesitas.</p>
<h2>¿Cuál es más rápido de desarrollar y mantener?</h2>
<p><strong>Compartir código suele acelerar el desarrollo inicial y reducir el trabajo duplicado, pero no elimina el trabajo por plataforma.</strong></p>
<p>Lo que se gana:</p>
<ul>
<li>Una sola implementación de la lógica, con <strong>un solo lugar donde corregir un error</strong>.</li>
<li>Funciones que llegan a todas las plataformas a la vez.</li>
<li>Un equipo que no necesita especialistas separados para cada sistema.</li>
</ul>
<p>Lo que no desaparece:</p>
<ul>
<li><strong>Publicación y firma</strong> en cada tienda, con sus propias reglas de revisión.</li>
<li><strong>Permisos, notificaciones y ciclo de vida</strong> que se comportan distinto en cada sistema.</li>
<li><strong>Pruebas en dispositivos reales</strong> de cada plataforma.</li>
<li><strong>Actualizaciones del propio framework</strong>, que agregan una dependencia más que mantener al día.</li>
</ul>
<p>Si tu app necesita funcionar con mala conectividad, la arquitectura de datos pesa más que la elección de framework; lo explicamos en <a href="https://menululo.com/blog/offline-first-explicado/">offline-first explicado</a>.</p>
<h2>¿Se nota la diferencia en la experiencia de usuario?</h2>
<p><strong>Puede notarse si la app ignora las convenciones de cada plataforma, sin importar con qué tecnología esté hecha.</strong></p>
<p>Los usuarios de cada sistema están acostumbrados a gestos, navegación, tipografía y diálogos propios. Los enfoques que usan componentes nativos heredan esas convenciones automáticamente. Los que dibujan su propia interfaz dan una apariencia idéntica en todas partes, lo cual es una ventaja para marcas con diseño propio, pero exige cuidar detalles como el botón de retroceso, la accesibilidad, el tamaño de texto del sistema y el comportamiento del teclado.</p>
<h2>¿Cuándo conviene elegir nativo?</h2>
<p><strong>Cuando la app vive o muere por el rendimiento, el hardware o la integración profunda con el sistema.</strong></p>
<ul>
<li>Juegos o apps con gráficos intensivos.</li>
<li>Procesamiento de audio, video o cámara en tiempo real.</li>
<li>Dependencia de APIs del sistema recién lanzadas.</li>
<li>Widgets, extensiones o integraciones muy ligadas a cada sistema operativo.</li>
<li>Equipos que ya tienen especialistas por plataforma y un producto que justifica dos bases de código.</li>
</ul>
<h2>¿Cuándo conviene elegir multiplataforma?</h2>
<p><strong>Cuando la prioridad es llegar a varias plataformas con un equipo pequeño y la app se basa en interfaces, datos y red.</strong></p>
<ul>
<li>Apps de gestión, formularios, catálogos, contenido o comunicación.</li>
<li>Productos que necesitan validar una idea rápido en varias plataformas.</li>
<li>Equipos con presupuesto para una sola base de código.</li>
<li>Apps internas de empresa, donde la consistencia importa más que la fidelidad a cada sistema.</li>
</ul>
<p>Y considera una <strong>PWA</strong> cuando todas las funciones que necesitas están bien soportadas en los navegadores de tus usuarios y no dependes de la distribución por tiendas.</p>
<h2>¿Cómo tomar la decisión sin equivocarse?</h2>
<p><strong>Construye un prototipo pequeño con la función más difícil de tu app, en el enfoque candidato, y pruébalo en los dispositivos de gama baja de tus usuarios.</strong></p>
<p>Una lista corta de verificación:</p>
<ol>
<li>Enumera las <strong>funciones de hardware y sistema</strong> que la app necesita y confirma que el enfoque las soporta.</li>
<li>Mide <strong>arranque, fluidez y tamaño</strong> en un teléfono de gama baja, no en el del equipo de desarrollo.</li>
<li>Evalúa <strong>quién va a mantener la app</strong> en tres años y qué sabe hacer ese equipo.</li>
<li>Revisa el <strong>ciclo de actualizaciones</strong> del framework y el estado de sus plugins críticos.</li>
<li>Decide qué parte del código <strong>quieres poder conservar</strong> si algún día cambias de enfoque: la lógica bien separada de la interfaz sobrevive a casi cualquier migración.</li>
</ol>
<h2>Para cerrar</h2>
<p>No hay un ganador universal entre nativo y multiplataforma: hay enfoques que encajan mejor con cada producto, equipo y etapa. La mejor decisión es la que se toma midiendo el caso más exigente de tu propia app, no la que gana en un benchmark ajeno. Si te interesan otros fundamentos de diseño de sistemas, sigue con <a href="https://menululo.com/blog/colas-de-reintentos/">colas de reintentos</a> o, si trabajas con funciones de IA, con <a href="https://menululo.com/blog/que-es-un-modelo-de-lenguaje/">qué es un modelo de lenguaje</a>.</p>]]></content:encoded></item>
<item><title>Los 4 roles básicos que todo restaurante pequeño debe tener claros</title><link>https://menululo.com/blog/roles-basicos-restaurante-pequeno/</link><guid isPermaLink="true">https://menululo.com/blog/roles-basicos-restaurante-pequeno/</guid><pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate><description>Atender, cocinar, cobrar y administrar: qué hace cada rol en un restaurante pequeño, qué debería ver y cómo delegar sin perder el control de la plata.</description><category>Personal y roles</category><category>personal</category><category>roles</category><category>pyme</category><category>emprendedores</category><content:encoded><![CDATA[<p>Abres a las siete, haces el mercado, cuadras con el proveedor, ayudas en la cocina cuando se llena, cobras, contestas el celular y, a las diez de la noche, cuentas la plata. Al otro día, lo mismo. Tu equipo trabaja duro, pero cuando algo sale mal todos miran hacia ti, porque en el fondo nadie sabe con claridad qué le toca a quién.</p>
<p>En los negocios pequeños es normal que “todos hagan de todo”. Al principio parece flexible y barato. Con el tiempo se vuelve la forma más cara de trabajar.</p>
<h2>¿Por qué “todos hacen de todo” sale más caro?</h2>
<p>Porque sin roles claros aparecen los errores que nadie asume. Un pedido se toma dos veces, otro no se toma, la caja la abrió uno y la cerró otro, y al final la diferencia no tiene dueño.</p>
<p>También se pierde tiempo. Cuando no está claro quién hace qué, cada tarea arranca con la pregunta “¿quién va?”, y en hora pico esa duda se paga en demoras y clientes molestos. Si ese caos te suena, mira también <a href="https://menululo.com/blog/roles-personal-hora-pico/">cómo organizar los roles cuando llegan muchos pedidos a la vez</a>.</p>
<h2>¿Qué le pasa al dueño que hace de todo?</h2>
<p>Se quema. Trabaja más horas que nadie, no puede enfermarse ni tomar un día libre, y el negocio depende tanto de él que no puede crecer.</p>
<p>Y aparece otra carga silenciosa: la desconfianza. Cuando no hay responsables claros, cualquier faltante se vuelve una sospecha sobre todo el equipo. Eso desgasta la relación con personas que muchas veces sí están haciendo bien su trabajo.</p>
<h2>¿Cuáles son los 4 roles mínimos?</h2>
<p>Atender, cocinar, cobrar y administrar. Son los cuatro frentes que existen en cualquier negocio de comida, sin importar si tienes tres mesas o quince.</p>
<p>Un rol no es lo mismo que una persona. En un equipo de tres personas, alguien puede atender y cobrar a la vez. Lo importante es que cada rol esté asignado de forma explícita y que cada quien sepa qué le toca y qué no.</p>
<h2>¿Qué hace y qué debería ver quien atiende?</h2>
<p>Quien atiende recibe al cliente, toma el pedido, lo pasa a cocina y entrega. Necesita ver el menú, las mesas y el estado de sus pedidos.</p>
<p>No necesita ver cuánto vendió el negocio en el mes, los costos ni la configuración. Darle acceso de más no le ayuda a atender mejor y abre la puerta a errores, como borrar algo que no debía.</p>
<h2>¿Qué hace y qué debería ver quien cocina?</h2>
<p>Quien cocina prepara lo pedido, en orden y como se pidió. Necesita ver la cola de pedidos con sus detalles y avisar cuando algo está listo o cuando se acaba un ingrediente.</p>
<p>No necesita tocar precios ni cobros. Su foco es que cada plato salga bien y a tiempo, y cualquier herramienta debería ayudarle a eso sin distraerlo.</p>
<h2>¿Qué hace y qué debería ver quien cobra?</h2>
<p>Quien cobra recibe los pagos, abre y cierra el turno de caja y responde por lo que hay en ella. Es un rol de confianza, porque maneja plata.</p>
<p>Necesita ver las cuentas por cobrar, las formas de pago y los movimientos de su turno. Si la caja no cuadra seguido, empieza por revisar <a href="https://menululo.com/blog/por-que-no-cuadra-la-caja/">por qué no te cuadra la caja al final del turno</a>.</p>
<h2>¿Qué hace y qué debería ver quien administra?</h2>
<p>Quien administra decide: precios, menú, compras, personal y resultados. Normalmente es el dueño o un encargado de su total confianza.</p>
<p>Es el único rol que necesita ver todo el negocio completo. También es quien asigna los accesos de los demás y revisa que los cierres de caja tengan sentido.</p>
<h2>¿Cómo delegar sin perder el control de la plata?</h2>
<p>Separando quién maneja la plata de quién la revisa. Puedes delegar el cobro a alguien de confianza, siempre que el cierre lo revise otra persona, idealmente tú.</p>
<p>Algunas reglas simples:</p>
<ul>
<li><strong>Quien cobra no es quien aprueba cortesías o anulaciones.</strong> Así ninguna decisión sobre la plata queda en una sola mano.</li>
<li><strong>Cada turno tiene un responsable de caja con nombre propio.</strong> “Todos cobramos” no es una respuesta.</li>
<li><strong>Los accesos se dan por lo que la persona hace, no por antigüedad.</strong> Llevar años en el negocio no significa necesitar ver los costos.</li>
<li><strong>Cuando alguien se va, sus accesos se quitan ese mismo día.</strong></li>
</ul>
<h2>¿Cómo armar el mapa de roles de tu equipo esta semana?</h2>
<p>Con una hoja y media hora:</p>
<ol>
<li><strong>Escribe los nombres de todo tu equipo</strong> en una columna.</li>
<li><strong>Pon los cuatro roles</strong> en las columnas de al lado.</li>
<li><strong>Marca qué rol cumple cada persona.</strong> Si alguien tiene dos, está bien; si alguien tiene los cuatro y no eres tú, es una alerta.</li>
<li><strong>Para cada rol, anota qué debe ver y qué no</strong> debería tocar.</li>
<li><strong>Compártelo con el equipo</strong> y pégalo donde todos lo vean.</li>
<li><strong>Revísalo cada vez que entre o salga alguien.</strong></li>
</ol>
<p>Este mapa, aunque sea en papel, ya reduce muchos malentendidos.</p>
<h2>¿Qué hacer cuando entra alguien nuevo al equipo?</h2>
<p>Asígnale un rol desde el primer día y explícale qué le toca y qué no. Es el momento en que más fácil se desordenan los accesos, porque con la prisa se le presta el usuario de otro o se le da “todo, mientras aprende”.</p>
<p>Mejor al revés: empieza con lo mínimo de su rol y amplía cuando lo necesite de verdad. Preséntale a quién responde por la caja y a quién debe acudir si tiene una duda. Así la persona nueva aprende rápido sin cargar responsabilidades que todavía no le corresponden.</p>
<h2>¿Cómo se vive con un sistema que respeta los roles?</h2>
<p>Más liviano. Cada persona entra con su usuario y ve solo lo que le corresponde. Los permisos se organizan por áreas del negocio, como atender y vender, plata y confianza, menú e inventario, o equipo y configuración, y hay plantillas por oficio para no configurar todo desde cero. Si tienes más de un local, cada sede tiene su propio equipo.</p>
<p>Tú dejas de ser el único que sabe cómo funciona todo. Puedes ver la idea completa en <a href="https://menululo.com/como-funciona/personal-y-roles/">cómo funcionan el personal y los roles</a>.</p>
<h2>¿Quieres ordenar los roles de tu equipo?</h2>
<p>Escríbenos por WhatsApp. En una asesoría gratuita te ayudamos a armar un borrador de roles según el tamaño de tu equipo y a definir qué debería ver cada persona.</p>]]></content:encoded></item>
<item><title>¿Qué pasa con las ventas de tu restaurante si se va el internet?</title><link>https://menululo.com/blog/ventas-sin-internet/</link><guid isPermaLink="true">https://menululo.com/blog/ventas-sin-internet/</guid><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><description>Si se cae la señal en plena hora pico, ¿puedes seguir tomando pedidos y cobrando? Qué debe funcionar sin internet y qué pasa cuando la conexión vuelve.</description><category>Caja y cierre</category><category>sin-internet</category><category>hora-pico</category><category>caja</category><category>pyme</category><content:encoded><![CDATA[<p>Viernes, 7:30 de la noche, el local lleno. De repente la tablet de la caja se queda pensando, el wifi no responde y alguien grita desde la cocina: “¿se cayó el internet?”. Tienes cuatro mesas esperando pedir, dos cuentas por cobrar y un domicilio a punto de salir. Y la pregunta que te pasa por la cabeza es una sola: ¿y ahora cómo vendo?</p>
<p>Si tu negocio depende de la señal para tomar pedidos o cobrar, un corte no es una molestia técnica: es plata que se detiene. La buena noticia es que se puede preparar.</p>
<h2>¿Por qué un corte de internet asusta tanto en un restaurante?</h2>
<p>Porque llega sin avisar y casi siempre en el peor momento, cuando hay más gente y más red en uso. Si el sistema necesita conexión para registrar cada venta, el negocio entero queda en pausa hasta que vuelva la señal.</p>
<p>Y lo que no controlas genera ansiedad. No depende de ti ni de tu equipo; depende del proveedor, del clima o de una obra en la calle.</p>
<h2>¿Qué te cuesta cada rato sin señal?</h2>
<p>Te cuesta ventas, orden y paciencia. Mientras esperas, los clientes se impacientan, algunos se van y otros piden “cuando se pueda”. Cuando todo vuelve, llega la avalancha.</p>
<p>El daño que menos se ve viene después. Durante el corte la gente improvisa: pedidos anotados en servilletas, cobros “de memoria”, vueltas calculadas a mano. Al cerrar el turno, esos papeles aparecen incompletos o no aparecen, y la caja no cuadra. Si eso ya te pasó, revisa <a href="https://menululo.com/blog/por-que-no-cuadra-la-caja/">por qué no te cuadra la caja al final del turno</a>.</p>
<h2>¿Qué se siente depender de una señal que no controlas?</h2>
<p>Se siente como trabajar con miedo. Hay dueños que no se atreven a salir del local en hora pico por si “se cae el sistema”, o que pagan dos planes de internet y aun así viven pendientes del ícono del wifi.</p>
<p>Ese estrés también lo absorbe el equipo. Nadie quiere ser el mesero que perdió un pedido durante el corte, ni el cajero que respondió por una plata que no sabe dónde quedó.</p>
<h2>¿Qué debería seguir funcionando aunque no haya internet?</h2>
<p>Todo lo que pasa dentro de tu local: tomar pedidos, cobrarlos, registrar un gasto y abrir o cerrar el turno con el conteo de la caja. Nada de eso depende de algo externo, así que un buen sistema no debería detenerlo.</p>
<p>Lo importante es que cada acción se vea al instante en pantalla, con su número de pedido definitivo, y que el equipo sepa cuántas cosas están pendientes por subir. Así nadie duda de si la venta “quedó” o no.</p>
<h2>¿Qué sí necesita conexión, sí o sí?</h2>
<p>Todo lo que depende de alguien fuera de tu local. Conviene tenerlo claro para no llevarte sorpresas:</p>
<ul>
<li><strong>Confirmar transferencias.</strong> El cliente puede pagar desde su celular, pero verificar que la plata llegó requiere señal, tuya o suya.</li>
<li><strong>Recibir pedidos por chat.</strong> Los mensajes no te llegan sin conexión.</li>
<li><strong>Cambiar el menú en línea.</strong> Puedes seguir consultándolo, pero editar lo que ven tus clientes necesita internet.</li>
<li><strong>Ver el negocio desde otro lugar.</strong> Si estás fuera, verás lo que pasó cuando el local vuelva a conectarse.</li>
</ul>
<h2>¿Qué pasa con la información cuando vuelve la conexión?</h2>
<p>Debería sincronizarse sola, en orden y sin que nadie vuelva a digitar nada. Lo registrado durante el corte sube tal cual quedó, con sus números y sus horas.</p>
<p>Esa es la prueba de fuego de cualquier sistema: si después de un corte tienes que “pasar en limpio” los pedidos de papel, el sistema no trabajaba sin internet, solo esperaba a que volviera.</p>
<h2>¿Y si lo que se va es la luz?</h2>
<p>Es un problema distinto, porque sin energía se apagan el router, la impresora y los equipos conectados a la pared. Una tablet o un celular con batería cargada pueden seguir registrando, pero la impresora no imprime sin corriente.</p>
<p>Por eso vale la pena pensar en tres cosas: mantener las tablets cargadas al empezar cada turno, tener un respaldo de energía pequeño para lo indispensable y acordar con la cocina cómo se pasan los pedidos a mano mientras vuelve la luz. Si estás pensando en tu impresora de cocina, te puede servir <a href="https://menululo.com/blog/necesito-impresora-termica/">si de verdad necesitas impresora térmica</a>.</p>
<h2>¿Cómo preparar tu plan B esta misma semana?</h2>
<p>Un plan de corte se arma en una tarde:</p>
<ol>
<li><strong>Averigua si tu sistema actual registra ventas sin internet.</strong> Pruébalo apagando el wifi en un momento tranquilo.</li>
<li><strong>Ten datos móviles de respaldo</strong> en un celular que pueda compartir señal a la caja.</li>
<li><strong>Deja siempre base de efectivo</strong> para dar vueltas, por si las transferencias no se pueden confirmar.</li>
<li><strong>Guarda un talonario de emergencia</strong> con espacio para mesa, productos, valor y forma de pago.</li>
<li><strong>Asigna a una persona</strong> para pasar al sistema lo anotado en papel, apenas se pueda.</li>
<li><strong>Haz un simulacro corto</strong> con tu equipo, en un día de poco movimiento.</li>
</ol>
<p>Y cuando pase el corte, dedica cinco minutos a revisar. ¿Qué pedidos se anotaron en papel y ya están en el sistema? ¿Hubo transferencias que quedaron sin confirmar? ¿Alguien cobró algo que no quedó registrado? Ese repaso, hecho el mismo día y con la memoria fresca, evita que la diferencia aparezca una semana después, cuando ya nadie se acuerda de nada. Si cada corte deja una lección, al tercero tu equipo ya sabrá exactamente qué hacer sin que tengas que estar presente.</p>
<h2>¿Cómo se vive con un sistema que no depende de la señal?</h2>
<p>Con calma. Cuando se cae el internet aparece un aviso de “sin conexión” y el equipo sigue trabajando igual: toma pedidos, cobra, registra gastos y cierra el turno. Un contador muestra lo que está pendiente por subir, y cuando vuelve la señal ese contador desaparece solo.</p>
<p>El corte deja de ser una emergencia y pasa a ser un detalle. Puedes ver la idea completa en <a href="https://menululo.com/como-funciona/sin-internet/">cómo funciona trabajar sin internet</a>.</p>
<h2>¿Qué tan preparado está tu negocio hoy?</h2>
<p>Si la señal se te va seguido o nunca has probado qué pasa cuando se cae, escríbenos por WhatsApp. En una asesoría gratuita revisamos contigo qué seguiría funcionando en tu local y qué conviene preparar antes del próximo corte.</p>]]></content:encoded></item>
<item><title>Cómo organizar los roles de tu equipo cuando llega la hora pico</title><link>https://menululo.com/blog/roles-personal-hora-pico/</link><guid isPermaLink="true">https://menululo.com/blog/roles-personal-hora-pico/</guid><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><description>El caos de hora pico casi nunca es falta de gente: son roles poco claros. Los roles mínimos de un restaurante pequeño y cómo dar acceso sin perder control.</description><category>Personal y roles</category><category>hora-pico</category><category>roles-del-personal</category><category>permisos</category><category>pyme</category><content:encoded><![CDATA[<p>Sábado, una de la tarde. Entran tres familias casi al tiempo. La mesera toma un pedido, pero la llaman del mostrador para cobrar. El cocinero sale a preguntar si la sopa era con o sin arroz, porque nadie le confirmó. Tú dejas la caja para servir jugos, y en ese rato alguien cobra una mesa por su cuenta y deja el vuelto “ahí”. A las tres, cuando por fin baja la gente, todos están agotados, dos mesas se quejaron y la caja tiene una diferencia que nadie sabe explicar.</p>
<p>La conclusión fácil es “me falta gente”. Pero muchas veces lo que falta no son manos: es que cada quien sepa qué le toca.</p>
<h2>¿Por qué se forma el caos en la hora pico?</h2>
<p>Porque cuando nadie tiene un rol fijo, todos hacen de todo y nadie termina nada. El caos de la hora pico casi nunca es falta de personal; es falta de claridad sobre quién atiende, quién cocina, quién cobra y quién decide.</p>
<p>En las horas tranquilas la improvisación funciona: hay tiempo de preguntar y corregir. Cuando llegan diez pedidos juntos, cada interrupción se multiplica. La mesera que va a cobrar deja una mesa sin atender; el cocinero que sale a preguntar deja la plancha sola.</p>
<h2>¿Qué le cuesta al restaurante un equipo sin roles claros?</h2>
<p>Le cuesta clientes que esperan de más, platos que salen mal y plata que se descuadra. La hora pico es justo cuando más vendes, y por eso es cuando más caro sale cada error.</p>
<p>Un cliente que esperó demasiado o recibió el plato equivocado no siempre se queja: simplemente no vuelve y se lo cuenta a otros. Y cuando varias personas tocan la caja en el mismo turno, cualquier diferencia queda sin dueño, como explicamos en <a href="https://menululo.com/blog/por-que-no-cuadra-la-caja/">por qué no me cuadra la caja al final del turno</a>.</p>
<h2>¿Qué le pasa al dueño cuando todos hacen de todo?</h2>
<p>Termina siendo el comodín de todos. Tapas huecos, apagas incendios, corriges errores ajenos y, al final del día, no hiciste nada de lo que te tocaba a ti: comprar mejor, revisar los números, pensar en crecer.</p>
<p>Y aparece el desgaste con el equipo. Cuando algo sale mal y no hay responsables claros, la culpa cae sobre quien estaba más cerca. La gente se siente señalada injustamente, y la que es buena se va a otro lado donde las reglas sean claras.</p>
<h2>¿Cuáles son los roles mínimos de un restaurante pequeño?</h2>
<p>Cuatro funciones: atender, cocinar, cobrar y administrar. No hacen falta cuatro personas; hacen falta cuatro responsabilidades con un dueño claro en cada turno.</p>
<ul>
<li><strong>Atender.</strong> Recibe al cliente, toma el pedido, lo confirma y lo lleva a la mesa. No cobra si ya hay alguien en la caja.</li>
<li><strong>Cocinar.</strong> Prepara en el orden en que llegan las comandas y avisa cuando algo se agota. No sale al salón a preguntar: para eso la comanda debe llegar completa.</li>
<li><strong>Cobrar.</strong> Una sola persona responde por la caja en cada turno. Recibe los pagos, entrega los vueltos y cuadra al final.</li>
<li><strong>Administrar.</strong> Decide las cortesías, resuelve las quejas, autoriza las salidas de plata y revisa los números. Normalmente eres tú o tu persona de confianza.</li>
</ul>
<p>Si son un equipo de dos, una combinación que suele funcionar es que una persona atienda y cobre, y la otra cocine, con la administración en manos del dueño.</p>
<h2>¿Cómo organizar al equipo antes de la próxima hora pico?</h2>
<p>Con un plan simple, escrito y conocido por todos antes de que empiece el turno. Puedes armarlo hoy mismo:</p>
<ol>
<li><strong>Escribe el mapa de roles</strong> de cada turno en una hoja pegada en la cocina: nombre y función.</li>
<li><strong>Asigna estaciones fijas.</strong> Quien atiende no entra a la cocina; quien cocina no toca la caja.</li>
<li><strong>Define una sola vía para los pedidos.</strong> Toda comanda llega por el mismo medio y en el mismo formato. Si hoy se te pierden pedidos, lee <a href="https://menululo.com/blog/comandas-perdidas/">comandas perdidas: el error que no aparece en ningún reporte</a>.</li>
<li><strong>Nombra a un encargado de la hora pico.</strong> Una sola persona decide cuando hay dudas: si se regala un plato, si se cambia un pedido o quién cubre a quién.</li>
<li><strong>Haz una reunión de cinco minutos</strong> antes de abrir: qué está agotado, quién está en cada estación y qué se espera del día.</li>
<li><strong>Revisa después del pico.</strong> Diez minutos para preguntar qué falló y ajustar el mapa. Sin buscar culpables, con soluciones.</li>
</ol>
<p>¿Y si alguien falta justo el sábado? Deja escrito también el plan B: quién cubre cada función cuando falta una persona. Lo más sano es que cada rol tenga un reemplazo que ya lo haya practicado en un día tranquilo, para que la hora pico no sea el momento de aprender. Y si hay que sacrificar algo, que nunca sea la caja: esa sigue teniendo un solo responsable por turno, aunque la persona cambie.</p>
<h2>¿Cómo dar acceso sin dar todo el control?</h2>
<p>Dando a cada persona permisos según su rol, no según la confianza que le tengas. El mesero necesita tomar pedidos, no ver cuánto vendiste en el mes; la cocina necesita la cola de preparación, no los cierres de caja.</p>
<p>Esto no es desconfianza: es proteger a tu equipo. Si alguien no puede tocar la caja, nadie puede sospechar de esa persona cuando aparezca una diferencia. Y cuando alguien asume más responsabilidad, se le amplía el acceso, no antes.</p>
<h2>¿Cómo ayuda un sistema a mantener los roles claros?</h2>
<p>Hace que el mapa de roles no dependa de la memoria de nadie. En menululo, cada persona entra con su propio usuario y ve solo lo que le corresponde a su rol en esa sede, organizado por áreas: atender y vender, la plata, el menú y el inventario, o el equipo y la configuración. Hay plantillas por oficio para no empezar de cero, y los permisos se ajustan cuando alguien crece en el negocio. Lo explicamos en <a href="https://menululo.com/como-funciona/personal-y-roles/">cómo funcionan el personal y los roles</a>.</p>
<h2>¿Por dónde empiezo con mi equipo?</h2>
<p>Empieza por escribir quién hace qué en tu próxima hora pico y ponlo a prueba durante una semana. Vas a notar la diferencia desde el segundo día.</p>
<p>Si quieres, lo armamos juntos: escríbenos por WhatsApp, cuéntanos cuántas personas tienes y cómo es tu turno más pesado, y en la asesoría gratuita te ayudamos a dibujar un mapa simple de roles para tu negocio.</p>]]></content:encoded></item>
<item><title>Cómo saber si tu restaurante realmente está ganando plata</title><link>https://menululo.com/blog/mi-restaurante-es-rentable/</link><guid isPermaLink="true">https://menululo.com/blog/mi-restaurante-es-rentable/</guid><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><description>Vender mucho no es ganar. Aprende a calcular el costo real de un plato, tu margen y tu punto de equilibrio con un cuaderno y una calculadora.</description><category>Inventario y costos</category><category>rentabilidad</category><category>pyme</category><category>emprendedores</category><content:encoded><![CDATA[<p>El mes pasado fue el mejor en ventas desde que abriste. El local lleno casi todos los días, la cocina sin descanso, tú saliendo a las once de la noche. Llegó el fin de mes, pagaste arriendo, nómina, servicios y proveedores, y quedó casi lo mismo que en un mes flojo. Te quedas mirando el cuaderno y la pregunta aparece sola: ¿estoy trabajando gratis?</p>
<p>No es una pregunta rara. Es de las más comunes entre dueños de restaurante, y casi nunca se responde con más ventas.</p>
<h2>¿Vender mucho es lo mismo que ganar plata?</h2>
<p>No. Las ventas son lo que entra; la ganancia es lo que queda después de pagar todo. Se puede vender más y ganar menos cuando los platos que más salen dejan poco margen, cuando subieron los insumos y no ajustaste precios, o cuando la merma y las cortesías crecen al mismo ritmo que el volumen.</p>
<p>Lo engañoso es que un local lleno se siente como un negocio sano. La caja se mueve, hay plata en el cajón todos los días y eso tranquiliza. Pero la plata que pasa por la caja no es tuya todavía: una parte ya le pertenece al proveedor, al arrendador y a tu equipo.</p>
<h2>¿Qué le cuesta a tu negocio no conocer sus números?</h2>
<p>Le cuesta decisiones tomadas a ciegas. Sin saber cuánto deja cada plato, subes precios al azar o no los subes nunca, empujas el plato equivocado y no sabes si abrir un día más te conviene o te cuesta.</p>
<p>También te deja sin defensas frente a los cambios. Cuando sube la carne o el aceite, un negocio que conoce sus costos ajusta en una semana. Uno que no los conoce se entera meses después, cuando ya lleva todo ese tiempo vendiendo algunos platos casi al costo.</p>
<h2>¿Qué te pasa a ti cuando no sabes si ganas?</h2>
<p>Trabajas doce horas con una duda de fondo que no se va. Te cuesta pagarte un sueldo, porque no sabes si el negocio lo aguanta, y cada gasto se siente como un riesgo.</p>
<p>Muchos dueños terminan poniendo plata propia para cubrir un mes malo sin saber si fue un mes malo o si el negocio, tal como está, no da. Esa incertidumbre pesa más que el cansancio. Y lo contrario también es verdad: el día que ves tus números claros, aunque no sean los que querías, por fin puedes decidir.</p>
<h2>¿Cómo calcular el costo real de un plato?</h2>
<p>Sumando lo que cuesta cada ingrediente en la cantidad exacta que sirves, más el empaque y un margen para la merma. No con el precio del bulto, sino con lo que realmente llega al plato.</p>
<ol>
<li><strong>Escribe la receta estándar.</strong> Cuánto de cada ingrediente lleva una porción, medido con báscula al menos una vez.</li>
<li><strong>Calcula el costo por unidad utilizable.</strong> Divide lo que pagaste entre lo que de verdad se puede usar. Si compras pollo entero y una parte se va en hueso y piel, el costo por gramo útil es mayor que el de la factura.</li>
<li><strong>Multiplica y suma.</strong> Costo por gramo por gramos en el plato, ingrediente por ingrediente. Agrega el empaque si es para llevar.</li>
<li><strong>Suma la merma.</strong> Si en tu <a href="https://menululo.com/blog/control-de-inventario-restaurante/">control de inventario</a> ves que se pierde una parte de un insumo, esa pérdida también es costo del plato.</li>
<li><strong>Divide entre el precio de venta.</strong> Si cobras impuestos incluidos en el precio, usa el valor sin impuestos. Ese porcentaje es tu costo de plato.</li>
</ol>
<p>Un ejemplo con números inventados, solo para mostrar la cuenta: si los ingredientes y el empaque de un plato suman $6.000 y lo vendes a $18.000 sin impuestos, el costo es un tercio del precio y al plato le quedan $12.000 para aportar a los gastos del negocio. Esa cifra se llama margen de contribución.</p>
<p>No hay un porcentaje mágico que sirva para todos los restaurantes. Lo importante es conocer el tuyo, plato por plato, y vigilar que no suba sin que te des cuenta.</p>
<h2>¿Qué es el punto de equilibrio y cómo lo calculas?</h2>
<p>Es lo mínimo que tienes que vender en el mes para cubrir todos los costos sin ganar ni perder. Por debajo de esa cifra pierdes plata; por encima, empiezas a ganar.</p>
<p>Se calcula en tres pasos:</p>
<ol>
<li><strong>Suma tus costos fijos del mes:</strong> arriendo, nómina, servicios, contador, cuotas. Lo que pagas vendas o no vendas.</li>
<li><strong>Calcula qué proporción del precio te queda</strong> después de ingredientes y empaques. En el ejemplo de arriba, al plato le quedan dos tercios.</li>
<li><strong>Divide los costos fijos entre esa proporción.</strong> Siguiendo con números inventados: si tus costos fijos suman $8.000.000 y te quedan dos tercios de cada venta, necesitas vender $12.000.000 en el mes. Divídelo entre los días que abres y tienes una meta diaria concreta.</li>
</ol>
<p>Esa meta diaria cambia la conversación: ya no es “hoy estuvo bueno”, sino “hoy pasamos o no pasamos el punto de equilibrio”.</p>
<h2>¿Qué hacer con los platos que venden bien pero no dejan margen?</h2>
<p>No quitarlos de una: primero ajustarlos. Organiza tu carta en cuatro grupos según cuánto se vende y cuánto deja cada plato:</p>
<ul>
<li><strong>Se vende mucho y deja buen margen:</strong> tus estrellas. Cuídalos, que siempre estén disponibles y bien visibles.</li>
<li><strong>Se vende mucho y deja poco margen:</strong> revisa la porción, la receta, el acompañamiento o el precio. Pequeños ajustes aquí mueven mucho.</li>
<li><strong>Se vende poco y deja buen margen:</strong> empújalos. Que el mesero los recomiende y que ocupen un lugar más visible en la carta.</li>
<li><strong>Se vende poco y deja poco margen:</strong> candidatos a salir de la carta, o a reinventarse.</li>
</ul>
<p>Mover platos de lugar y ajustar precios es más fácil cuando la carta no hay que reimprimirla; lo contamos en <a href="https://menululo.com/blog/menu-digital-o-impreso/">menú digital o impreso</a>.</p>
<h2>¿Qué cambia cuando un sistema hace estas cuentas?</h2>
<p>Cambia que dejas de hacerlas una vez al año con el contador. En un sistema pensado para restaurantes, el costo de cada receta se actualiza cuando registras una compra, el margen de cada plato se ve sin calculadora y el punto de equilibrio se compara con lo que vas vendiendo.</p>
<p>Los reportes te cuentan en lenguaje simple qué platos conviene empujar y cuáles revisar. Tú no te vuelves contador: solo miras y decides. La idea completa está en <a href="https://menululo.com/como-funciona/metricas-y-rentabilidad/">cómo funcionan las métricas y la rentabilidad</a>.</p>
<h2>¿Por dónde empiezas?</h2>
<p>Empieza por tu plato estrella. Calcula su costo real esta semana con el método de arriba y compáralo con su precio. Muchas veces ese solo cálculo ya explica una parte del mes que no cuadraba.</p>
<p>Si nunca has calculado el costo real de tus platos, escríbenos por WhatsApp y lo revisamos contigo en una asesoría gratis. Si estás empezando tu negocio, pregúntanos también por el plan Pro a $25.000 al mes durante cuatro meses para emprendedores.</p>]]></content:encoded></item>
<item><title>Modelo de datos multi-tenant: base por cliente o compartida</title><link>https://menululo.com/blog/modelo-de-datos-multi-tenant/</link><guid isPermaLink="true">https://menululo.com/blog/modelo-de-datos-multi-tenant/</guid><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><description>Cómo diseñar la base de datos de un software que atiende a muchos clientes: base por cliente, esquema por cliente o tablas compartidas.</description><category>Arquitectura de software</category><category>multi-tenant</category><category>bases-de-datos</category><category>saas</category><category>seguridad</category><category>arquitectura</category><content:encoded><![CDATA[<h2>Resumen</h2>
<ul>
<li>Un software <strong>multi-tenant</strong> atiende a muchos clientes con la misma instancia y debe garantizar que ninguno vea los datos de otro.</li>
<li>Hay tres modelos clásicos: <strong>base de datos por cliente</strong>, <strong>esquema por cliente</strong> y <strong>tablas compartidas con identificador de cliente</strong>.</li>
<li>No hay uno mejor en abstracto: se elige según número de clientes, exigencias de aislamiento y costo de operación, y el aislamiento <strong>se impone en la base</strong>, no solo en la interfaz.</li>
</ul>
<h2>¿Qué es la arquitectura multi-tenant?</h2>
<p><strong>Es un diseño en el que una sola instalación del software sirve a muchos clientes (tenants), cada uno con sus propios datos, usuarios y configuración.</strong></p>
<p>El término viene de la analogía con un edificio de apartamentos: todos comparten estructura, agua y electricidad, pero cada inquilino tiene su llave. La <a href="https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-145.pdf">definición de computación en la nube del NIST (SP 800-145)</a> lo recoge en su característica de <em>resource pooling</em>: los recursos del proveedor se agrupan para servir a múltiples consumidores mediante un modelo multi-tenant.</p>
<p>Casi todo el software que se vende por suscripción funciona así: una plataforma de facturación, un sistema de agendamiento para clínicas o una herramienta de gestión de proyectos atienden a miles de empresas desde la misma aplicación. La decisión central es <strong>cómo se separan los datos</strong> de cada una.</p>
<h2>¿Cuáles son los modelos de datos multi-tenant?</h2>
<p><strong>Los tres enfoques clásicos se ordenan de más aislado a más compartido: una base por cliente, un esquema por cliente dentro de una base, o todas las filas en tablas comunes con una columna que identifica al cliente.</strong></p>
<h3>1. Base de datos por cliente</h3>
<p>Cada tenant tiene su propia base. La aplicación elige a cuál conectarse según quién hace la petición.</p>
<ul>
<li><strong>A favor:</strong> aislamiento fuerte, respaldos y restauraciones por cliente, posibilidad de ubicar la base de un cliente en una región específica.</li>
<li><strong>En contra:</strong> cada migración de esquema se ejecuta N veces, hay que administrar muchas conexiones y el costo base crece con cada cliente, aunque use poco.</li>
</ul>
<h3>2. Esquema por cliente</h3>
<p>Una sola base de datos con un espacio de nombres (esquema) por tenant, cada uno con las mismas tablas.</p>
<ul>
<li><strong>A favor:</strong> aislamiento razonable con menos infraestructura que una base por cliente.</li>
<li><strong>En contra:</strong> las migraciones siguen multiplicándose por cliente y, con muchos tenants, el número de objetos en el catálogo de la base crece mucho.</li>
</ul>
<h3>3. Tablas compartidas con <code>tenant_id</code></h3>
<p>Todas las filas de todos los clientes viven en las mismas tablas, y cada fila lleva una columna que indica a quién pertenece.</p>
<ul>
<li><strong>A favor:</strong> una sola migración, uso eficiente de recursos, fácil de escalar a muchísimos clientes pequeños, consultas globales sencillas para analítica interna.</li>
<li><strong>En contra:</strong> una consulta sin el filtro correcto expone datos de otros clientes; un cliente muy grande puede afectar el rendimiento de los demás.</li>
</ul>
<h2>¿Cómo se comparan los tres modelos?</h2>
<p><strong>Resumido: más aislamiento significa más costo operativo, y más compartición exige más disciplina de seguridad.</strong></p>















































<table><thead><tr><th>Criterio</th><th>Base por cliente</th><th>Esquema por cliente</th><th>Tablas compartidas</th></tr></thead><tbody><tr><td>Aislamiento de datos</td><td>Muy alto</td><td>Alto</td><td>Depende de controles</td></tr><tr><td>Costo por cliente nuevo</td><td>Alto</td><td>Medio</td><td>Bajo</td></tr><tr><td>Migraciones de esquema</td><td>Una por base</td><td>Una por esquema</td><td>Una sola</td></tr><tr><td>Restaurar un solo cliente</td><td>Sencillo</td><td>Moderado</td><td>Complejo</td></tr><tr><td>Escala a miles de clientes pequeños</td><td>Difícil</td><td>Moderada</td><td>Natural</td></tr><tr><td>Riesgo de “vecino ruidoso”</td><td>Bajo</td><td>Medio</td><td>Alto</td></tr></tbody></table>
<p>Muchos productos terminan en un <strong>modelo híbrido</strong>: tablas compartidas para la mayoría y bases dedicadas para los clientes grandes o con exigencias regulatorias.</p>
<h2>¿Cómo se evita que un cliente vea datos de otro?</h2>
<p><strong>Aplicando el filtro por cliente en la capa más baja posible, idealmente en la propia base de datos, en lugar de confiar en que cada consulta del código lo recuerde.</strong></p>
<p>Las fallas de control de acceso son un riesgo muy real: la categoría <em>Broken Access Control</em> encabeza el <a href="https://top10.owasp.org/2021/A01_2021-Broken_Access_Control/">OWASP Top 10 de 2021</a>, tras subir desde el quinto lugar. En un sistema multi-tenant, el caso típico es un endpoint que recibe un identificador y devuelve el registro sin comprobar que pertenece al cliente autenticado.</p>
<p>En bases de datos relacionales de código abierto como PostgreSQL existe la <a href="https://www.postgresql.org/docs/current/ddl-rowsecurity.html">seguridad a nivel de fila (Row-Level Security)</a>: políticas que la base aplica automáticamente a cada consulta.</p>
<pre><code><span><span>-- Cada fila pertenece a un tenant</span></span>
<span><span>ALTER</span><span> TABLE</span><span> facturas </span><span>ENABLE</span><span> ROW</span><span> LEVEL</span><span> SECURITY</span><span>;</span></span>
<span></span>
<span><span>-- Solo se ven y modifican filas del tenant de la sesión actual</span></span>
<span><span>CREATE</span><span> POLICY</span><span> aislamiento_tenant </span><span>ON</span><span> facturas</span></span>
<span><span>  USING</span><span> (tenant_id </span><span>=</span><span> current_setting(</span><span>'app.tenant_id'</span><span>)::uuid)</span></span>
<span><span>  WITH</span><span> CHECK</span><span> (tenant_id </span><span>=</span><span> current_setting(</span><span>'app.tenant_id'</span><span>)::uuid);</span></span>
<span></span>
<span><span>-- La aplicación fija el tenant al inicio de cada transacción</span></span>
<span><span>-- SET LOCAL app.tenant_id = '6f1c...';</span></span></code></pre>
<p>Con esto, aunque alguien olvide un <code>WHERE tenant_id = ...</code>, la base no devuelve filas ajenas. Hay que cuidar un detalle: los roles con privilegios elevados o dueños de la tabla pueden saltarse estas políticas según su configuración, así que la aplicación no debería conectarse con ellos.</p>
<p>Si la base no ofrece algo equivalente, el filtro debe centralizarse en una capa de acceso a datos que <strong>no permita</strong> consultar sin tenant, y cubrirse con pruebas automáticas que intenten leer datos de otro cliente.</p>
<h2>¿Qué es el problema del vecino ruidoso?</h2>
<p><strong>Es cuando un cliente que consume muchos recursos degrada el servicio de los demás que comparten la misma infraestructura.</strong></p>
<p>Un reporte pesado, una importación masiva o un error que dispara reintentos en bucle pueden saturar la base compartida. Las mitigaciones habituales son límites de uso por tenant, colas de trabajo con cupos por cliente (lo tratamos en <a href="https://menululo.com/blog/colas-de-reintentos/">colas de reintentos</a>), réplicas de solo lectura para reportes y, en último caso, mover al cliente grande a recursos dedicados.</p>
<h2>¿Qué errores se repiten en sistemas multi-tenant?</h2>
<p><strong>Casi todos son lugares donde el identificador del cliente se pierde por el camino.</strong></p>
<ol>
<li><strong>Cachés sin el tenant en la clave</strong>, que sirven a un cliente la respuesta de otro.</li>
<li><strong>Tareas en segundo plano globales</strong> que procesan datos sin fijar el contexto del cliente.</li>
<li><strong>Identificadores secuenciales expuestos</strong>, que invitan a probar el número siguiente.</li>
<li><strong>Archivos subidos en rutas compartidas</strong> sin prefijo por cliente ni control de acceso.</li>
<li><strong>Registros de errores o analítica</strong> que mezclan datos personales de distintos clientes.</li>
<li><strong>Sincronización entre dispositivos</strong> que no valida el tenant en el servidor. Si tu app funciona sin conexión, revisa <a href="https://menululo.com/blog/offline-first-explicado/">offline-first explicado</a> y <a href="https://menululo.com/blog/algoritmos-sincronizacion-datos/">algoritmos de sincronización</a>: cada cambio que llega desde un dispositivo debe verificarse contra el cliente al que dice pertenecer.</li>
</ol>
<h2>¿Qué modelo conviene elegir?</h2>
<p><strong>Para la mayoría de los productos que esperan muchos clientes pequeños, tablas compartidas con aislamiento impuesto en la base; para pocos clientes grandes o regulados, bases dedicadas.</strong></p>
<p>Preguntas que ayudan a decidir:</p>
<ul>
<li>¿Cuántos clientes esperas en tres años: decenas o miles?</li>
<li>¿Algún cliente exige por contrato que sus datos estén separados físicamente o en un país específico?</li>
<li>¿Necesitas restaurar a un solo cliente sin tocar a los demás?</li>
<li>¿Tu equipo puede ejecutar y vigilar una migración sobre cientos de bases?</li>
</ul>
<p>Y una recomendación de diseño independiente del modelo: incluye el identificador de cliente en todos los datos desde el primer día. Pasar después de tablas compartidas a bases dedicadas es mucho más fácil si cada fila ya sabe a quién pertenece.</p>]]></content:encoded></item>
<item><title>Cortesías en tu restaurante: cómo regalar sin perder el control</title><link>https://menululo.com/blog/registrar-cortesias-sin-perder-control/</link><guid isPermaLink="true">https://menululo.com/blog/registrar-cortesias-sin-perder-control/</guid><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><description>Una cortesía no es un descuento ni una venta perdida. Aprende a registrar los platos regalados con motivo y responsable para que tu caja siga cuadrando.</description><category>Caja y cierre</category><category>cortesias</category><category>caja</category><category>rentabilidad</category><category>pyme</category><content:encoded><![CDATA[<p>Llega el cliente de todos los viernes, el que siempre recomienda el negocio. Pide lo de siempre y, al final, le dices a la mesera: “tranquila, el postre va por la casa”. Un gesto bonito y merecido. El problema llega a las diez de la noche, cuando el cajero cuenta la plata, revisa lo vendido y algo no cuadra. Nadie se acuerda del postre.</p>
<p>Regalar es parte del oficio. Una cortesía bien dada fideliza, repara un error o celebra a un buen cliente. Lo que desordena la caja no es regalar: es regalar <strong>de palabra</strong>, sin que quede registro.</p>
<h2>¿Qué es exactamente una cortesía en un restaurante?</h2>
<p>Una cortesía es un producto que entregas completo y sin cobro, por una razón concreta. No es una venta con precio cero ni un faltante: es una decisión del negocio que tiene un costo y debe quedar registrada.</p>
<p>Los motivos más comunes son:</p>
<ul>
<li>Compensar una demora o un plato que salió mal.</li>
<li>Consentir a un cliente frecuente.</li>
<li>Probar un producto nuevo con clientes de confianza.</li>
<li>Atender a un proveedor, un vecino o alguien del equipo.</li>
</ul>
<p>Todos son válidos. Lo que importa es que cada uno quede anotado con su motivo.</p>
<h2>¿En qué se diferencia una cortesía de un descuento?</h2>
<p>En el descuento el cliente paga una parte; en la cortesía no paga nada. Los dos te cuestan plata, pero se miden distinto, y mezclarlos te impide saber cuál te está pesando más.</p>
<p>Si registras el postre regalado como “descuento del 100 %”, a fin de mes vas a creer que das muchos descuentos, cuando en realidad das muchas cortesías. Y son decisiones diferentes: el descuento suele ser una estrategia de precio; la cortesía, un gesto puntual.</p>
<h2>¿Por qué las cortesías “de palabra” descuadran la caja?</h2>
<p>Porque el producto sale de la cocina pero no aparece en la cuenta. Quien cierra el turno ve un plato preparado sin su pago y no sabe si fue regalo, error o algo peor.</p>
<p>Ahí empieza el problema de verdad. Cuando no hay registro, cada diferencia se vuelve una sospecha. El cajero siente que lo miran raro, la mesera jura que avisó, y el dueño no tiene cómo saber quién tiene la razón. Si te pasa seguido, vale la pena revisar también <a href="https://menululo.com/blog/por-que-no-cuadra-la-caja/">por qué no te cuadra la caja al final del turno</a>.</p>
<h2>¿Cuánto estás regalando realmente cada mes?</h2>
<p>La mayoría de los dueños no lo sabe, y casi siempre es más de lo que imagina. Una cortesía suelta parece pequeña; veinte al mes, con su costo de insumos, ya son una cifra que se nota en la rentabilidad.</p>
<p>Haz este ejercicio durante una semana, aunque sea en un cuaderno: anota cada cortesía con el producto, el motivo y quién la dio. Al final, multiplica cada producto por lo que te cuesta prepararlo, no por su precio de venta. Ese número es lo que de verdad inviertes en regalar. Puede que te parezca bien invertido, y está perfecto; lo importante es que sea una decisión consciente.</p>
<h2>¿Qué le hace esto a la confianza con tu equipo?</h2>
<p>La desgasta, aunque nadie lo diga. Cuando las cortesías no se registran, cualquier faltante se puede explicar con “eso fue un regalo”, y tú no tienes cómo comprobarlo ni cómo descartarlo.</p>
<p>Eso es injusto con las personas honestas de tu equipo, que cargan con la duda, y cómodo para quien no lo es. Un registro claro protege a todos: al que regaló con permiso, al que cierra la caja y a ti.</p>
<h2>¿Quién debería poder autorizar una cortesía?</h2>
<p>El dueño o un encargado de confianza. El mesero puede proponerla, porque es quien ve al cliente molesto o feliz, pero la aprobación debe ser de alguien que responde por la plata.</p>
<p>Esto no le quita agilidad al servicio. Una regla sencilla funciona muy bien: quien atiende propone, el encargado aprueba en el momento y el registro queda con los dos nombres.</p>
<h2>¿Qué datos debe tener el registro de una cortesía?</h2>
<p>Cinco datos bastan:</p>
<ol>
<li><strong>Qué se regaló:</strong> el producto exacto y la cantidad.</li>
<li><strong>En qué pedido:</strong> la mesa o el número de cuenta.</li>
<li><strong>Por qué:</strong> el motivo, en pocas palabras.</li>
<li><strong>Quién la autorizó:</strong> nombre de la persona responsable.</li>
<li><strong>Cuándo:</strong> el turno y la hora.</li>
</ol>
<p>Con eso, una cortesía deja de ser un misterio y se convierte en información útil para decidir.</p>
<h2>¿Afecta la cortesía al inventario y al costo?</h2>
<p>Sí, porque los insumos sí salieron de tu cocina. Lo correcto es que ese consumo quede explicado como cortesía, no como merma ni como faltante sin causa.</p>
<p>Si la cortesía no queda registrada, en el próximo conteo vas a encontrar menos insumos de los esperados y vas a pensar que hay desperdicio o pérdida. Registrarla evita esa conclusión equivocada y te ayuda a entender <a href="https://menululo.com/blog/mi-restaurante-es-rentable/">si tu restaurante realmente está ganando plata</a>.</p>
<h2>¿Cómo empezar a controlar las cortesías esta semana?</h2>
<p>No necesitas nada complicado para arrancar:</p>
<ol>
<li><strong>Define quién puede autorizar</strong> y díselo a todo el equipo.</li>
<li><strong>Lleva una hoja o cuaderno de cortesías</strong> junto a la caja, con los cinco datos.</li>
<li><strong>Revísala en cada cierre de turno</strong>, al mismo tiempo que cuentas la plata.</li>
<li><strong>Suma el costo al final de la semana</strong> y decide si quieres un tope mensual.</li>
<li><strong>Habla con tu equipo del resultado.</strong> No para regañar, sino para acordar cuándo vale la pena regalar.</li>
</ol>
<h2>¿Cómo se vive con un sistema que registra las cortesías?</h2>
<p>Más tranquilo. La cortesía se marca en el mismo pedido, con su motivo y el nombre de quien la autorizó. No se cobra, no descuadra el efectivo que esperas en la caja y aparece visible en el resumen del turno para el dueño.</p>
<p>Al cerrar, nadie tiene que acordarse de nada: la diferencia está explicada antes de que alguien la pregunte. Puedes ver cómo encaja en el cierre en <a href="https://menululo.com/como-funciona/caja-y-cierre/">cómo funciona la caja y el cierre</a>.</p>
<h2>¿Quieres saber cuánto regalas al mes?</h2>
<p>Si hoy las cortesías se dan de palabra y no tienes idea de cuánto suman, escríbenos por WhatsApp. En una asesoría gratuita te ayudamos a organizar cómo registrarlas en tu negocio, con o sin sistema.</p>]]></content:encoded></item>
<item><title>¿De verdad necesito impresora térmica para mi restaurante?</title><link>https://menululo.com/blog/necesito-impresora-termica/</link><guid isPermaLink="true">https://menululo.com/blog/necesito-impresora-termica/</guid><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><description>Cuándo una impresora térmica de comandas sí vale la pena en un restaurante pequeño, cuándo no, y qué revisar antes de comprar una para tu cocina.</description><category>Cocina y comandas</category><category>impresora-termica</category><category>comandas</category><category>cocina</category><category>pyme</category><content:encoded><![CDATA[<p>Viernes, ocho de la noche. El mesero entra a la cocina diciendo en voz alta: “dos bandejas, una sin chicharrón, y una hamburguesa término medio para la seis”. El cocinero está de espaldas, con la freidora sonando. Escucha “dos bandejas” y “hamburguesa”. El “sin chicharrón” se pierde en el ruido. Diez minutos después, el cliente devuelve el plato y la mesa seis vuelve a esperar.</p>
<p>Mientras tanto, tú miras precios de impresoras térmicas en el celular y te preguntas si de verdad vale la pena, o si es un gasto más que no necesita un negocio de tu tamaño.</p>
<h2>¿Qué diferencia hay entre imprimir la comanda y decirla en voz alta?</h2>
<p>La comanda impresa no depende de la memoria ni del oído de nadie. Una comanda dicha en voz alta existe solo el segundo en que se dice; una impresa se queda en la cocina hasta que el plato sale, con la mesa, la hora y cada detalle.</p>
<p>Con la comanda escrita a mano pasa algo parecido: el papelito hecho con afán se lee mal, se moja o se cae detrás de la estufa. La letra del mesero a las nueve de la noche no es la misma que a las once de la mañana.</p>
<h2>¿Cuánto le cuesta a tu restaurante una comanda mal entendida?</h2>
<p>Cada error se paga dos veces: el plato que se bota y el que se vuelve a hacer. Súmale los ingredientes, el gas, el tiempo del cocinero y, sobre todo, el cliente que espera el doble y quizás no vuelve.</p>
<p>Haz este ejercicio durante una semana: anota cada plato devuelto o repetido por un error de pedido y lo que costaba prepararlo. Muchos dueños se sorprenden con el total, porque ese costo nunca aparece en la caja: simplemente se come la ganancia, en silencio.</p>
<h2>¿Qué pasa con el ambiente del equipo cuando las comandas fallan?</h2>
<p>Se vuelve un juego de culpas. El mesero dice que lo dijo claro; el cocinero dice que nunca lo escuchó. Nadie miente, y los dos terminan de mal genio en plena hora pico.</p>
<p>Y tú quedas en la mitad, de árbitro, sin forma de saber quién tiene la razón. Esa tensión desgasta más que cualquier turno largo, y es una de las razones por las que la gente buena se cansa. Lo contamos a fondo en <a href="https://menululo.com/blog/comandas-perdidas/">comandas perdidas: el error que no aparece en ningún reporte</a>.</p>
<h2>¿Cuándo SÍ necesita impresora térmica un restaurante pequeño?</h2>
<p>Cuando quien toma el pedido y quien cocina no están en el mismo lugar, o cuando llegan varios pedidos a la vez. En esos casos, la impresora deja de ser un lujo y se vuelve una de las formas más baratas de evitar errores.</p>
<p>Estas son señales claras de que ya la necesitas:</p>
<ul>
<li>La cocina está separada del salón o de la caja.</li>
<li>Tienes más de un mesero, o recibes pedidos de mesa, mostrador y domicilio al mismo tiempo.</li>
<li>Hay más de una estación en la cocina: plancha, fritos, bebidas.</li>
<li>Los platos devueltos por errores de pedido se repiten cada semana.</li>
<li>En tu equipo se discute seguido por el “yo sí lo dije”.</li>
</ul>
<h2>¿Cuándo NO la necesitas todavía?</h2>
<p>Cuando tú mismo cocinas frente al cliente y los pedidos llegan de a uno. Un puesto de comida rápida donde la misma persona toma el pedido y lo prepara puede funcionar bien con una libreta ordenada.</p>
<p>En ese caso, antes de comprar nada, aplica desde hoy estos hábitos:</p>
<ul>
<li><strong>Comanda numerada y con mesa</strong>, siempre en el mismo formato.</li>
<li><strong>Letra de imprenta y abreviaturas acordadas</strong> con la cocina, por ejemplo “S/C” para “sin cebolla”.</li>
<li><strong>Un gancho o riel para las comandas</strong>, en orden de llegada y lejos del agua.</li>
<li><strong>Repetirle el pedido al cliente</strong> antes de mandarlo a la cocina.</li>
</ul>
<h2>¿Qué revisar antes de comprar una impresora térmica para la cocina?</h2>
<p>Que aguante el ambiente de cocina, que sea fácil de conectar y que funcione con el sistema que usas. El precio importa, pero una impresora barata que se daña con la grasa termina saliendo más cara.</p>
<ul>
<li><strong>Resistencia:</strong> calor, grasa y humedad. Ubícala lejos de la plancha, la freidora y el lavaplatos.</li>
<li><strong>Papel:</strong> confirma el ancho que usa y que consigues repuesto fácil en tu ciudad.</li>
<li><strong>Conexión:</strong> mejor si no necesita un cable atravesando la cocina.</li>
<li><strong>Corte automático:</strong> en hora pico nadie tiene tiempo de rasgar papel.</li>
<li><strong>Aviso sonoro:</strong> ayuda a que la cocina note la comanda nueva entre el ruido.</li>
<li><strong>Compatibilidad:</strong> pregunta antes de comprar si funciona con tu sistema de pedidos. Muchos dueños compran primero y preguntan después.</li>
</ul>
<p>Los precios cambian mucho entre tiendas y modelos, así que compara en al menos tres lugares y desconfía de la opción más barata si no trae garantía.</p>
<h2>¿Cómo estrenar la impresora sin sustos en plena hora pico?</h2>
<p>Instálala y pruébala en un día tranquilo, nunca un viernes por la noche. Así el equipo aprende a usarla antes de que la necesite de verdad.</p>
<ul>
<li><strong>Haz pedidos de prueba</strong> con todos los casos raros: platos con cambios, bebidas, pedidos para llevar.</li>
<li><strong>Revisa que la comanda se lea bien</strong> desde donde trabaja el cocinero, no desde la mano de quien la imprime.</li>
<li><strong>Deja siempre un rollo de repuesto</strong> a la vista y enséñale a todo el equipo a cambiarlo.</li>
<li><strong>Ten un plan B en papel</strong>: si un día falla, la libreta numerada vuelve a entrar sin que se pierda un solo pedido.</li>
</ul>
<h2>¿Cómo se integra la impresora con un sistema de pedidos?</h2>
<p>Cuando la impresora está conectada al sistema, nadie tiene que acordarse de mandar la comanda: sale sola en la cocina apenas se registra el pedido. El mesero toma la orden en la mesa y, cuando llega a la cocina, el papel ya está esperando.</p>
<p>Así se vive con menululo: el pedido se registra una sola vez y la comanda se imprime automáticamente en la cocina, con cada detalle que pidió el cliente. Si además quieres ver la cola completa, la cocina también puede tener una pantalla con los pedidos en orden. Lo explicamos en <a href="https://menululo.com/como-funciona/impresora-termica/">cómo funciona la impresora térmica</a>.</p>
<h2>¿Y si no sé cuál comprar?</h2>
<p>Pregunta antes de gastar. Escríbenos por WhatsApp, cuéntanos cómo es tu cocina y cuántos pedidos manejas en hora pico, y en la asesoría gratuita te decimos si hoy te conviene una impresora, qué revisar antes de comprarla o si todavía puedes esperar.</p>]]></content:encoded></item>
<item><title>Colas de reintentos: idempotencia, backoff y dead-letter queues</title><link>https://menululo.com/blog/colas-de-reintentos/</link><guid isPermaLink="true">https://menululo.com/blog/colas-de-reintentos/</guid><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><description>Cómo funciona una cola de reintentos: idempotencia, backoff exponencial con jitter, dead-letter queues y el patrón outbox para no perder datos.</description><category>Arquitectura de software</category><category>colas</category><category>reintentos</category><category>idempotencia</category><category>backoff-exponencial</category><category>sistemas-distribuidos</category><content:encoded><![CDATA[<h2>Resumen</h2>
<ul>
<li>Una <strong>cola de reintentos</strong> guarda el trabajo pendiente y lo vuelve a intentar cuando falla, en lugar de perderlo o bloquear al usuario.</li>
<li>Reintentar solo es seguro si la operación es <strong>idempotente</strong>; esperar entre intentos con <strong>backoff exponencial y jitter</strong> evita empeorar una caída.</li>
<li>Lo que no se puede procesar va a una <strong>dead-letter queue</strong>, y el <strong>patrón outbox</strong> asegura que el trabajo llegue a la cola en primer lugar.</li>
</ul>
<h2>¿Qué es una cola de reintentos?</h2>
<p><strong>Es un mecanismo que almacena tareas pendientes (enviar un correo, registrar un pago, sincronizar un cambio) y las reintenta cuando fallan, hasta que se completan o se declaran imposibles.</strong></p>
<p>La idea responde a un hecho básico de los sistemas conectados: la red se corta, los servicios se reinician y las bases de datos rechazan conexiones por unos segundos. Si cada una de esas fallas pasajeras se convierte en un dato perdido, el sistema no es confiable. Con una cola, la tarea queda registrada de forma durable y un proceso trabajador la toma, la ejecuta y solo la marca como terminada cuando recibe confirmación.</p>
<p>Detrás de cualquier sistema que “nunca pierde nada” suele haber cuatro piezas: una cola durable, operaciones idempotentes, una política de reintentos y un lugar para los casos perdidos.</p>
<h2>¿Qué errores vale la pena reintentar?</h2>
<p><strong>Solo los transitorios: los que tienen una probabilidad razonable de no repetirse en el siguiente intento.</strong></p>
<ul>
<li><strong>Transitorios:</strong> tiempo de espera agotado, conexión rechazada, servicio no disponible, límite de peticiones excedido. En HTTP, típicamente las respuestas <code>503</code> o <code>429</code>, que pueden venir con la cabecera <code>Retry-After</code> indicando cuánto esperar, según la <a href="https://datatracker.ietf.org/doc/html/rfc9110">especificación HTTP (RFC 9110)</a>.</li>
<li><strong>Permanentes:</strong> datos inválidos, recurso inexistente, permisos insuficientes. Reintentar un <code>400</code> o un <code>403</code> no lo arregla: solo gasta recursos y retrasa el diagnóstico.</li>
</ul>
<p>Clasificar mal es uno de los errores más caros: reintentar errores permanentes llena la cola de trabajo inútil, y no reintentar los transitorios pierde datos.</p>
<h2>¿Qué es la idempotencia y por qué va primero?</h2>
<p><strong>Una operación es idempotente si ejecutarla varias veces produce el mismo efecto que ejecutarla una.</strong> Sin idempotencia, reintentar es peligroso.</p>
<p>El problema clásico: un cliente envía un pago, el servidor lo procesa, pero la respuesta se pierde por un corte de red. El cliente no sabe si el pago se hizo y reintenta. Si la operación no es idempotente, se cobra dos veces.</p>
<p>La <a href="https://datatracker.ietf.org/doc/html/rfc9110">RFC 9110</a> define que, entre los métodos HTTP estándar, <code>PUT</code>, <code>DELETE</code> y los métodos seguros (como <code>GET</code>) son idempotentes. <code>POST</code> no lo es por definición. La solución habitual es que el cliente genere una <strong>clave de idempotencia</strong> única por operación y la envíe en cada intento. La IETF llegó a trabajar un borrador para estandarizar la cabecera <a href="https://datatracker.ietf.org/doc/draft-ietf-httpapi-idempotency-key-header/"><code>Idempotency-Key</code></a>, que hoy figura como expirado, pero el patrón se usa ampliamente.</p>
<p>Del lado del servidor, la clave se registra junto con el resultado:</p>
<pre><code><span><span>async</span><span> function</span><span> procesarPago</span><span>(</span><span>req</span><span>:</span><span> SolicitudPago</span><span>, </span><span>db</span><span>:</span><span> Db</span><span>) {</span></span>
<span><span>  const</span><span> previo</span><span> =</span><span> await</span><span> db.idempotencia.</span><span>get</span><span>(req.idempotencyKey);</span></span>
<span><span>  if</span><span> (previo) </span><span>return</span><span> previo.respuesta;          </span><span>// reintento: misma respuesta, sin cobrar otra vez</span></span>
<span></span>
<span><span>  return</span><span> db.</span><span>transaction</span><span>(</span><span>async</span><span> (</span><span>tx</span><span>) </span><span>=></span><span> {</span></span>
<span><span>    // La restricción única sobre la clave evita carreras entre dos intentos simultáneos</span></span>
<span><span>    await</span><span> tx.idempotencia.</span><span>insert</span><span>({ clave: req.idempotencyKey, estado: </span><span>"en_proceso"</span><span> });</span></span>
<span><span>    const</span><span> respuesta</span><span> =</span><span> await</span><span> tx.pagos.</span><span>crear</span><span>(req);</span></span>
<span><span>    await</span><span> tx.idempotencia.</span><span>update</span><span>(req.idempotencyKey, { estado: </span><span>"hecho"</span><span>, respuesta });</span></span>
<span><span>    return</span><span> respuesta;</span></span>
<span><span>  });</span></span>
<span><span>}</span></span></code></pre>
<p>Dos detalles importan: la clave debe tener una <strong>restricción única</strong> en la base de datos (una verificación previa sin ella no evita que dos intentos simultáneos pasen), y el registro de la clave debe vivir en la <strong>misma transacción</strong> que el efecto.</p>
<h2>¿Qué es el backoff exponencial?</h2>
<p><strong>Es una política que aumenta el tiempo de espera entre reintentos de forma multiplicativa (por ejemplo, 1 s, 2 s, 4 s, 8 s) hasta un máximo.</strong> Da tiempo al servicio para recuperarse sin abandonar la tarea.</p>
<p>Reintentar de inmediato y sin pausa es contraproducente: si un servicio cayó por sobrecarga, miles de clientes insistiendo a la vez lo mantienen caído. El backoff reduce esa presión con cada fallo.</p>
<p>Un ejemplo concreto y público es el <a href="https://grpc.github.io/grpc/core/md_doc_connection-backoff.html">protocolo de backoff de conexión de gRPC</a>, un proyecto de código abierto, que documenta como parámetros una espera inicial de 1 segundo, un multiplicador de 1,6, un máximo de 120 segundos y un jitter de 0,2.</p>
<h2>¿Para qué sirve el jitter?</h2>
<p><strong>El jitter agrega aleatoriedad a cada espera para que los clientes que fallaron juntos no reintenten juntos.</strong></p>
<p>Sin jitter, si mil clientes pierden la conexión en el mismo segundo, todos reintentan exactamente al segundo 1, luego al 2, luego al 4: oleadas sincronizadas contra un servicio frágil. Con una variación aleatoria, esos intentos se reparten en el tiempo.</p>
<pre><code><span><span>function</span><span> esperaConJitter</span><span>(</span><span>intento</span><span>:</span><span> number</span><span>, {</span></span>
<span><span>  inicialMs</span><span> =</span><span> 1000</span><span>, </span><span>multiplicador</span><span> =</span><span> 1.6</span><span>, </span><span>maximoMs</span><span> =</span><span> 120_000</span><span>, </span><span>jitter</span><span> =</span><span> 0.2</span><span>,</span></span>
<span><span>} </span><span>=</span><span> {})</span><span>:</span><span> number</span><span> {</span></span>
<span><span>  const</span><span> base</span><span> =</span><span> Math.</span><span>min</span><span>(inicialMs </span><span>*</span><span> multiplicador </span><span>**</span><span> intento, maximoMs);</span></span>
<span><span>  const</span><span> variacion</span><span> =</span><span> base </span><span>*</span><span> jitter;</span></span>
<span><span>  return</span><span> base </span><span>+</span><span> (Math.</span><span>random</span><span>() </span><span>*</span><span> 2</span><span> -</span><span> 1</span><span>) </span><span>*</span><span> variacion;   </span><span>// base ± 20 %</span></span>
<span><span>}</span></span>
<span></span>
<span><span>async</span><span> function</span><span> conReintentos</span><span>&#x3C;</span><span>T</span><span>>(</span><span>fn</span><span>:</span><span> () </span><span>=></span><span> Promise</span><span>&#x3C;</span><span>T</span><span>>, </span><span>maxIntentos</span><span> =</span><span> 6</span><span>)</span><span>:</span><span> Promise</span><span>&#x3C;</span><span>T</span><span>> {</span></span>
<span><span>  for</span><span> (</span><span>let</span><span> intento </span><span>=</span><span> 0</span><span>; ; intento</span><span>++</span><span>) {</span></span>
<span><span>    try</span><span> {</span></span>
<span><span>      return</span><span> await</span><span> fn</span><span>();</span></span>
<span><span>    } </span><span>catch</span><span> (e) {</span></span>
<span><span>      if</span><span> (</span><span>!</span><span>esTransitorio</span><span>(e) </span><span>||</span><span> intento </span><span>+</span><span> 1</span><span> >=</span><span> maxIntentos) </span><span>throw</span><span> e;</span></span>
<span><span>      await</span><span> new</span><span> Promise</span><span>((</span><span>r</span><span>) </span><span>=></span><span> setTimeout</span><span>(r, </span><span>esperaConJitter</span><span>(intento)));</span></span>
<span><span>    }</span></span>
<span><span>  }</span></span>
<span><span>}</span></span></code></pre>
<h2>¿Qué es una dead-letter queue?</h2>
<p><strong>Es una cola aparte a donde van los mensajes que no se pudieron procesar después de agotar los reintentos.</strong> Así un mensaje defectuoso no bloquea a los demás y tampoco se pierde.</p>
<p>El patrón aparece como <a href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/DeadLetterChannel.html"><em>Dead Letter Channel</em></a> en el catálogo <em>Enterprise Integration Patterns</em> de Gregor Hohpe y Bobby Woolf, que también recoge el nombre habitual de <em>dead letter queue</em> (DLQ). Buenas prácticas alrededor de ella:</p>
<ul>
<li>Guardar <strong>el mensaje original, el error y el número de intentos</strong>, no solo un contador.</li>
<li><strong>Alertar</strong> cuando la DLQ crece: una cola de mensajes muertos que nadie mira es una forma lenta de perder datos.</li>
<li>Tener una herramienta para <strong>reprocesar</strong> mensajes una vez corregida la causa.</li>
</ul>
<h2>¿Qué garantías de entrega existen?</h2>
<p><strong>Las tres clásicas son como máximo una vez, al menos una vez y exactamente una vez; en la práctica, los sistemas confiables combinan “al menos una vez” con idempotencia.</strong></p>
<ul>
<li><strong>Como máximo una vez:</strong> se envía y no se reintenta. Puede perder mensajes.</li>
<li><strong>Al menos una vez:</strong> se reintenta hasta confirmar. No pierde mensajes, pero puede duplicarlos.</li>
<li><strong>Exactamente una vez:</strong> el ideal. En lugar de perseguirlo en la red, se consigue el mismo <em>efecto</em> con entrega al menos una vez y procesamiento idempotente.</li>
</ul>
<h2>¿Cómo asegurar que la tarea llegue a la cola?</h2>
<p><strong>Con el patrón de bandeja de salida transaccional (outbox): la tarea se escribe en una tabla de la misma base de datos, dentro de la misma transacción que el cambio de negocio.</strong></p>
<p>El riesgo que resuelve es la “doble escritura”: guardar un pedido en la base y luego publicar un evento en la cola. Si el proceso se cae entre ambos pasos, el pedido existe pero el evento nunca sale. El patrón, documentado en <a href="https://microservices.io/patterns/data/transactional-outbox.html">microservices.io</a>, guarda el evento en una tabla <code>outbox</code> junto con el pedido, y un proceso aparte lo publica y lo marca como enviado. La misma idea sirve en el cliente: es la base de las <a href="https://menululo.com/blog/offline-first-explicado/">aplicaciones offline-first</a>.</p>
<h2>¿Qué errores son los más comunes?</h2>
<p><strong>Casi siempre aparecen cuando el sistema está bajo presión, justo cuando más duele.</strong></p>
<ol>
<li><strong>Reintentos en varias capas.</strong> Si el cliente, el servidor intermedio y la librería de base de datos reintentan tres veces cada uno, una sola petición puede convertirse en 3 × 3 × 3 = 27 intentos contra el servicio caído. Reintenta en una sola capa.</li>
<li><strong>Reintentos infinitos.</strong> Siempre debe haber un tope de intentos o de tiempo total, y un destino final (la DLQ).</li>
<li><strong>Olvidar la idempotencia en los consumidores</strong>, no solo en la API.</li>
<li><strong>Perder el orden cuando importa.</strong> Si dos cambios sobre el mismo registro se reintentan en paralelo, el más viejo puede aplicarse después. Particiona por entidad o usa versiones, un tema que tratamos en <a href="https://menululo.com/blog/algoritmos-sincronizacion-datos/">algoritmos de sincronización</a>.</li>
<li><strong>Mezclar tareas de distintos clientes</strong> en una misma cola sin límites por cliente, de modo que uno con muchos fallos retrasa a todos. Lo vemos en <a href="https://menululo.com/blog/modelo-de-datos-multi-tenant/">modelo de datos multi-tenant</a>.</li>
</ol>
<h2>Para cerrar</h2>
<p>Un sistema que no pierde nada no es uno que nunca falla, sino uno que falla de forma ordenada: registra el trabajo de forma durable, lo reintenta con paciencia y aleatoriedad, lo hace sin duplicar efectos y aparta lo imposible para que una persona lo revise. Idempotencia primero, backoff con jitter después y una dead-letter queue que alguien mire.</p>]]></content:encoded></item>
<item><title>Control de inventario en restaurantes: la merma que nadie ve</title><link>https://menululo.com/blog/control-de-inventario-restaurante/</link><guid isPermaLink="true">https://menululo.com/blog/control-de-inventario-restaurante/</guid><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><description>La merma no avisa: aparece a fin de mes. Tres preguntas y un conteo de jornada simple para controlar el inventario de tu restaurante desde hoy.</description><category>Inventario y costos</category><category>pyme</category><category>rentabilidad</category><category>emprendedores</category><content:encoded><![CDATA[<p>Sábado, una de la tarde. Sale el tercer pedido de pechuga a la plancha y el cocinero asoma la cabeza: “se acabó la pechuga”. Tú estabas seguro de que el martes compraste suficiente para toda la semana. Nadie sabe a dónde se fue. Toca avisar a los meseros, pedirles a dos clientes que cambien de plato y mandar a alguien corriendo a comprar más caro en la tienda de la esquina.</p>
<p>Ese momento no es mala suerte. Es la merma haciéndose visible de golpe, después de días de ir sumando en silencio.</p>
<h2>¿Por qué la merma no se ve hasta que ya pasó?</h2>
<p>Porque nadie la registra mientras ocurre. Se va en porciones más grandes de la cuenta, en lo que se daña en la nevera, en lo que se quema, en lo que se bota por mal almacenado y en lo que sale de la cocina sin cobrarse. Cada evento es pequeño; la suma aparece a fin de mes como plata que no está.</p>
<p>El desperdicio de comida es un problema de todo el país, no solo de tu cocina. Según un <a href="https://colaboracion.dnp.gov.co/CDT/Prensa/Publicaciones/P%C3%A9rdida%20y%20desperdicio%20de%20alimentos%20en%20colombia.pdf">estudio del Departamento Nacional de Planeación</a>, en Colombia se pierden y desperdician 9,76 millones de toneladas de alimentos al año, el 34 % de la oferta disponible. El 36 % de esa cifra ocurre en las etapas de distribución, venta y consumo, justo la parte de la cadena donde está un restaurante y donde el control depende de lo que se haga en el día a día.</p>
<h2>¿Cuánto le cuesta a tu negocio un inventario sin control?</h2>
<p>Le cuesta ventas, margen y precios mal puestos. Un insumo que se acaba sin aviso es un plato que no vendes; una compra de afán casi siempre sale más cara; y lo que se va en merma nunca entra en el precio del plato.</p>
<p>Ese último punto es el más peligroso. Si calculas el costo de tus platos con lo que “debería” gastarse, pero en la realidad se gasta más, tus precios pueden estar dejándote mucho menos de lo que crees, o nada. Por eso inventario y rentabilidad van de la mano: lo explicamos a fondo en <a href="https://menululo.com/blog/mi-restaurante-es-rentable/">cómo saber si tu restaurante realmente está ganando plata</a>.</p>
<h2>¿Qué te pasa a ti cuando el inventario no cuadra?</h2>
<p>Te toca ser el que revisa la nevera, el que hace las compras y el que adivina cuánto pedir. No puedes soltar esa tarea porque nadie más sabe cuánto hay.</p>
<p>Y cuando algo falta sin explicación, aparece la duda sobre el equipo. Es una sensación incómoda, porque la mayoría de las veces no hay mala intención: hay porciones sin medir, insumos sin fecha y cortesías que nadie anotó. Pero sin registros no tienes cómo saberlo, y la desconfianza queda flotando.</p>
<h2>¿Qué preguntas deberías poder responder hoy sobre tu inventario?</h2>
<p>Tres: cuánto tienes, cuánto debiste gastar y qué se te acaba primero. Si puedes responderlas sin ir a la bodega a mirar, tienes control; si no, ahí es donde empieza el trabajo.</p>
<ol>
<li><strong>¿Cuánto tengo hoy de mis insumos más importantes?</strong> No de todos: de los que más plata representan.</li>
<li><strong>¿Cuánto debí haber gastado de cada uno, según lo que vendí?</strong> Si vendiste 40 platos con pechuga, ¿cuánta pechuga tenía que salir?</li>
<li><strong>¿Qué insumo se me acaba primero y cuándo tengo que comprarlo?</strong> Para no enterarte en pleno servicio.</li>
</ol>
<h2>¿Cómo controlar el inventario desde hoy, sin software?</h2>
<p>Con pocos insumos, porciones medidas y un conteo al abrir y al cerrar. Estos pasos funcionan con una hoja, un lapicero y una báscula de cocina:</p>
<ol>
<li><strong>Empieza con diez insumos, no con todos.</strong> Elige los que más pesan en tu compra: proteínas, aceite, quesos, lo que sea caro o se use en casi todo. Controlar cien cosas mal es peor que controlar diez bien.</li>
<li><strong>Define la porción de cada plato.</strong> Cuántos gramos de proteína, cuántas cucharadas de salsa. Escríbelo y pégalo en la cocina. Sin porción definida no hay forma de saber cuánto debió gastarse.</li>
<li><strong>Conteo de jornada.</strong> Al abrir y al cerrar, cuenta esos mismos diez insumos y anótalos en la misma hoja. Toma cinco minutos si los tienes siempre en el mismo lugar.</li>
<li><strong>Compara contra lo vendido.</strong> Platos vendidos por porción es igual a lo que debió salir. La diferencia con lo que realmente falta es tu merma del día.</li>
<li><strong>Hoja de merma junto a la nevera.</strong> Qué se botó, cuánto y por qué: se dañó, se quemó, se devolvió, se regaló. Las cortesías también cuentan; si las das de palabra, mira <a href="https://menululo.com/blog/registrar-cortesias-sin-perder-control/">cómo registrar cortesías sin perder el control</a>.</li>
<li><strong>Primero en entrar, primero en salir.</strong> Marca cada insumo con la fecha en que llegó y pon lo más viejo adelante. Mucha merma es solo comida que se venció al fondo de la nevera.</li>
<li><strong>Punto de compra para cada insumo.</strong> Define la cantidad mínima con la que ya toca pedir. Márcala en la hoja; cuando el conteo llegue ahí, se compra sin esperar a que se acabe.</li>
</ol>
<p>Hazlo durante dos semanas seguidas. Al final vas a saber qué insumo tiene más merma, en qué días y, casi siempre, por qué.</p>
<h2>¿Qué cambia cuando un sistema lleva el inventario?</h2>
<p>Cambia que el descuento de insumos deja de ser una cuenta que haces tú al final del día. En un sistema pensado para restaurantes, cada venta descuenta lo que el plato lleva, el conteo de jornada muestra la diferencia apenas terminas de contar y el costo del insumo se actualiza con cada compra.</p>
<p>Además, cuando un insumo llega a su punto crítico te avisa, y si se agota, el plato deja de ofrecerse para que nadie venda lo que no hay. Tú dejas de adivinar: miras y sabes. La idea completa está en <a href="https://menululo.com/como-funciona/inventario-y-costos/">cómo funciona el control de inventario y costos</a>.</p>
<h2>¿Por dónde empiezas?</h2>
<p>Elige tus diez insumos más importantes, define sus porciones y cuéntalos al abrir y al cerrar durante una semana. Es poco trabajo y te va a mostrar algo que hoy no estás viendo.</p>
<p>Si quieres, cuéntanos por WhatsApp cómo llevas hoy tu inventario, aunque sea en cuaderno, y te ayudamos a armar tu primera hoja de conteo. La asesoría es gratis y puedes empezar con el plan Gratis.</p>]]></content:encoded></item>
<item><title>Respuestas automáticas por WhatsApp: ¿le sirven a tu restaurante?</title><link>https://menululo.com/blog/respuestas-automaticas-whatsapp/</link><guid isPermaLink="true">https://menululo.com/blog/respuestas-automaticas-whatsapp/</guid><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><description>Qué debería responder solo un asistente automático de WhatsApp en un restaurante pequeño, qué no, y cómo saber cuándo tiene que contestar una persona.</description><category>Domicilios y WhatsApp</category><category>whatsapp-business</category><category>hora-pico</category><category>pyme</category><category>domicilios</category><content:encoded><![CDATA[<p>Son las 12:40. La plancha está llena, hay tres mesas esperando la cuenta y el celular del negocio no deja de vibrar sobre el mostrador. “¿Tienen domicilio a mi barrio?”, “¿a qué hora cierran?”, “mándame el menú porfa”, “¿todavía hay almuerzo?”. Cada mensaje es fácil de contestar. El problema es que llegan veinte al mismo tiempo, justo cuando nadie tiene las manos libres.</p>
<p>Si te suena conocido, no estás solo: es una de las quejas más repetidas de los dueños de negocios de comida. Y la pregunta que viene después es lógica: ¿las respuestas automáticas le sirven a un restaurante pequeño o son cosa de empresas grandes?</p>
<h2>¿Por qué el WhatsApp del restaurante se vuelve un caos al mediodía?</h2>
<p>Porque los clientes escriben justo en la hora en que menos puedes atenderlos. La mayoría de los mensajes son preguntas repetidas que se responden igual todos los días, pero compiten por tu atención con los pedidos reales y con la gente que ya está sentada en el local.</p>
<p>En un negocio pequeño, el celular suele estar a cargo de quien cobra o del mismo dueño. Esa persona termina partida en tres: atiende la caja, contesta chats y apaga incendios en la cocina.</p>
<h2>¿Cuánto te cuesta un mensaje que no respondes a tiempo?</h2>
<p>Te cuesta el pedido. Quien tiene hambre no espera veinte minutos a que le digas si hay domicilio: le escribe al negocio de la otra cuadra, y si allá le contestan rápido, la próxima vez empieza por allá.</p>
<p>Lo más difícil es que esa pérdida no aparece en ningún lado. No hay una venta cancelada ni una diferencia en la caja. Simplemente ese día vendiste menos y no sabes por qué. Además, cuando por fin respondes con afán, aumentan los errores: la dirección incompleta, el jugo que no era, el cambio mal calculado.</p>
<h2>¿Y a ti, qué te está costando?</h2>
<p>Probablemente tu tranquilidad. Muchos dueños terminan contestando mensajes mientras almuerzan de pie, en el bus de regreso a la casa o a las once de la noche, con la sensación de estar siempre en deuda con alguien.</p>
<p>A eso se suma la culpa: sabes que un cliente mal atendido por chat es un cliente que se va, pero tampoco puedes abandonar la mesa que tienes enfrente. Esa tensión, repetida todos los días, desgasta más que el trabajo mismo.</p>
<h2>¿Qué sí debería responder un asistente automático?</h2>
<p>Lo repetitivo y lo que siempre tiene la misma respuesta. Si una pregunta la contestas igual diez veces al día, es candidata a automatizarse.</p>
<p>Por ejemplo:</p>
<ul>
<li>Horario de atención y días de descanso.</li>
<li>Dirección y cómo llegar.</li>
<li>Enlace al menú actualizado.</li>
<li>Si hay domicilio y a qué zonas llega.</li>
<li>Formas de pago que recibes.</li>
<li>Datos básicos para empezar un pedido: nombre, qué quiere y si es para recoger o domicilio.</li>
</ul>
<p>Un buen asistente responde esto en segundos, a cualquier hora, con el tono de tu negocio y sin cansarse.</p>
<h2>¿Qué no debería responder nunca solo?</h2>
<p>Todo lo que necesite criterio, empatía o que implique plata en disputa. Ahí debe contestar una persona.</p>
<ul>
<li>Quejas o reclamos por un pedido.</li>
<li>Alergias o restricciones de salud.</li>
<li>Confirmaciones de pago o devoluciones.</li>
<li>Pedidos con muchos cambios o combinaciones raras.</li>
<li>Negociaciones de precio o pedidos grandes para eventos.</li>
</ul>
<p>Un asistente que intenta resolver una queja con una respuesta genérica empeora la situación. Mejor que diga con amabilidad que ya una persona lo atiende, y que efectivamente alguien lo haga.</p>
<h2>¿Cuándo tiene que apartarse y dejar hablar a una persona?</h2>
<p>Cuando la conversación ya no es repetitiva. Los frenos deben ser claros y funcionar solos, sin que tengas que estar pendiente.</p>
<p>Los tres frenos más útiles son:</p>
<ol>
<li><strong>Cuando alguien de tu equipo responde.</strong> Si una persona escribe en el chat, el asistente se calla. Nada peor que dos voces contestando distinto al mismo cliente.</li>
<li><strong>Cuando el cliente manda su ubicación.</strong> Eso casi siempre es un domicilio real, con dirección, referencias y costo de envío. Ahí conviene que confirme una persona.</li>
<li><strong>Cuando la conversación se alarga.</strong> Si después de varias idas y vueltas el cliente no ha resuelto lo que busca, el asistente debe entregar el chat en vez de seguir dando vueltas.</li>
</ol>
<h2>¿Cuánto cuesta tener un asistente automático?</h2>
<p>Tiene dos partes. La automatización de WhatsApp tiene un costo fijo, y el uso del asistente inteligente lo paga el restaurante según cuánto converse. Ese uso es relativamente económico, sobre todo si el asistente se limita a lo repetitivo y los frenos lo apartan a tiempo.</p>
<p>Por eso los frenos no solo cuidan la experiencia del cliente: también cuidan tu bolsillo. Un asistente que conversa sin límite gasta más y ayuda menos.</p>
<h2>¿Cómo empezar sin arriesgar la relación con tus clientes?</h2>
<p>Empieza pequeño y revisa. Puedes hacerlo esta misma semana, aunque todavía no uses ninguna herramienta:</p>
<ol>
<li><strong>Anota las diez preguntas que más te hacen.</strong> Revisa los chats de los últimos días y cuéntalas.</li>
<li><strong>Escribe la respuesta ideal de cada una con tu voz.</strong> Corta, cálida y con la información completa. Guárdalas como respuestas rápidas en el celular.</li>
<li><strong>Define qué casos pasan siempre a una persona.</strong> Quejas, pagos, ubicaciones y pedidos grandes, como mínimo.</li>
<li><strong>Decide quién toma el chat en hora pico.</strong> Que no dependa de “el que esté libre”.</li>
<li><strong>Revisa cada semana cinco conversaciones.</strong> Mira dónde se enredó el cliente y ajusta las respuestas.</li>
</ol>
<p>Con ese trabajo hecho, automatizar es mucho más seguro, porque el asistente aprende de respuestas que ya probaste con clientes reales. Si tus pedidos por chat ya se están desordenando, te puede servir también esta guía sobre <a href="https://menululo.com/blog/pedidos-whatsapp-desorganizados/">pedidos por WhatsApp desorganizados</a>.</p>
<h2>¿Cómo se vive con un sistema que responde por ti?</h2>
<p>Distinto, porque dejas de ser el embudo. Los chats llegan a una bandeja que ve todo tu equipo, con el pedido al lado de la conversación. El asistente contesta lo repetitivo, y en cuanto aparece una ubicación, alguien del equipo escribe o la charla se alarga, se aparta y le avisa a una persona.</p>
<p>Tú ya no contestas “¿a qué hora cierran?” por décima vez: te ocupas de las conversaciones que de verdad necesitan a alguien. Puedes ver el concepto completo en <a href="https://menululo.com/como-funciona/whatsapp-asistente/">cómo funciona el asistente de WhatsApp</a>.</p>
<h2>¿Le sirve esto a tu negocio?</h2>
<p>Depende de cuántos mensajes recibes y de quién los contesta hoy. Si quieres salir de la duda, escríbenos por WhatsApp. En una asesoría gratuita revisamos contigo cómo te llegan los mensajes y te decimos, sin rodeos, si un asistente automático te ayudaría o si todavía no lo necesitas.</p>]]></content:encoded></item>
<item><title>Cobrar sin datáfono: Nequi, Daviplata o Bre-B en tu restaurante</title><link>https://menululo.com/blog/cobrar-sin-datafono-nequi-daviplata-bre-b/</link><guid isPermaLink="true">https://menululo.com/blog/cobrar-sin-datafono-nequi-daviplata-bre-b/</guid><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><description>Qué es Bre-B, cómo recibir pagos con llave o QR y cómo cuadrar la caja de tu restaurante cuando cobras por varios medios distintos.</description><category>Pagos y cobros</category><category>bre-b</category><category>nequi</category><category>daviplata</category><category>pyme</category><category>emprendedores</category><content:encoded><![CDATA[<p>Un cliente termina de almorzar, se acerca a la caja y pregunta: “¿reciben tarjeta?”. No tienes datáfono y él no carga efectivo. Durante un minuto incómodo le dictas un número de cuenta, él lo escribe mal, la transferencia no aparece y detrás hay tres personas esperando para pagar. Al final paga, pero te quedas con la duda de si la plata llegó de verdad.</p>
<p>Cobrar sin datáfono en Colombia ya no es un problema de “no tengo cómo”. El reto de hoy es otro: cobrar por varios medios sin que la caja se vuelva un rompecabezas al cierre.</p>
<h2>¿Qué es Bre-B y por qué le sirve a un restaurante pequeño?</h2>
<p>Bre-B es el sistema de pagos inmediatos del Banco de la República: permite pagar y transferir entre bancos y billeteras distintas en segundos, a cualquier hora y cualquier día, usando una llave o un código QR en lugar de un número de cuenta.</p>
<p>La <a href="https://www.banrep.gov.co/es/noticias/bre-b-banrep-regula-interoperabilidad-sistemas-pagos-bajo-valor-inmediatos">regulación del Banco de la República</a> establece que cada pago o transferencia inmediata se realiza en un tiempo máximo de 20 segundos. Para un restaurante eso significa algo muy concreto: el cliente paga desde la aplicación de su banco o billetera y tú puedes verificar que llegó antes de que se levante de la mesa.</p>
<p>Lo básico para empezar, según la <a href="https://www.banrep.gov.co/es/bre-b/que-es">explicación oficial de Bre-B</a>:</p>
<ul>
<li><strong>Para recibir necesitas una llave.</strong> La creas en los canales digitales de la entidad donde tienes tu cuenta o depósito. Las opciones de llave las ofrece cada entidad según los datos que tengas registrados.</li>
<li><strong>Quien te paga no necesita llave.</strong> Le basta con conocer la tuya o escanear tu código QR.</li>
<li><strong>Hay un tope por transacción</strong> de $12.110.000, y tu entidad puede fijar uno menor o limitar el número de operaciones diarias.</li>
<li><strong>Una llave se asocia a una sola cuenta</strong>, pero una cuenta puede tener varias llaves.</li>
</ul>
<p>Un consejo práctico: si tu entidad te deja crear una llave distinta a tu número de celular personal, úsala para el negocio. Así no repartes tu número a cada cliente y tienes claro en qué cuenta cae la plata del restaurante.</p>
<h2>¿Nequi, Daviplata o transferencia: cuál conviene activar?</h2>
<p>La que ya usan tus clientes. No se trata de elegir una ganadora, sino de no perder la venta porque el cliente tiene su plata en un lugar desde el que no le puedes recibir.</p>
<p>Antes de abrir cuentas nuevas en todas partes, revisa en la aplicación de tu entidad si ya puedes recibir por Bre-B: cuando la entidad del cliente y la tuya participan, el pago llega sin importar dónde tenga cada uno su plata. Luego hazle estas preguntas a tu banco o billetera:</p>
<ul>
<li>¿Me cobran algo por recibir pagos como negocio?</li>
<li>¿Cuál es mi tope diario y por transacción?</li>
<li>¿Me llega un aviso por cada pago recibido?</li>
<li>¿Puedo descargar los movimientos del día para cuadrar la caja?</li>
</ul>
<p>Con esas cuatro respuestas decides con datos de tu propio negocio, no por lo que dice un anuncio.</p>
<h2>¿Cuánto te cuesta no tener el medio de pago que el cliente quiere?</h2>
<p>Te cuesta la venta o te cuesta el cliente. Si alguien no puede pagar como quiere, o te toca fiarle con un “mañana te transfiero”, o pasa la vergüenza de salir a buscar un cajero, o simplemente la próxima vez come en otra parte.</p>
<p>Y hay un costo escondido: el tiempo en caja. Dictar números de cuenta, esperar capturas de pantalla y confirmar llamando a alguien convierte cada pago en varios minutos. A la hora del almuerzo, eso es una fila de gente impaciente.</p>
<h2>¿Qué te pasa a ti cuando cobras por cuatro medios distintos?</h2>
<p>Que el cierre de caja se vuelve un acto de fe. Tienes efectivo en el cajón, pagos que llegaron a una billetera, otros a la cuenta del banco y alguno que “ya te mandaron” pero no ves. Al final del día sumas todo, no da, y no sabes si faltó plata o si falta un pago por aparecer.</p>
<p>Muchos dueños terminan revisando el celular a las 11 de la noche, pago por pago. Es cansón y deja la sensación de que en cualquier momento algo se escapa. Si ya te pasa que la caja no cuadra, lee también <a href="https://menululo.com/blog/por-que-no-cuadra-la-caja/">por qué no te cuadra la caja al final del turno</a>.</p>
<h2>¿Cómo controlar la plata cuando cobras por varios medios?</h2>
<p>Separando cada medio desde el momento del cobro, no al final del día. Estos pasos los puedes aplicar hoy con un cuaderno:</p>
<ol>
<li><strong>Anota la forma de pago en cada cuenta.</strong> Efectivo, transferencia con llave, billetera o mixto. Si un cliente paga una parte en efectivo y otra por transferencia, anota las dos cifras por separado.</li>
<li><strong>Nunca entregues sin ver el pago.</strong> En las transferencias, verifica en tu aplicación que llegó. Una captura de pantalla que te muestra el cliente no es prueba suficiente.</li>
<li><strong>QR impreso a la vista.</strong> Pon tu código QR en la caja y, si puedes, en las mesas. El cliente no dicta nada, no se equivoca de número y tú no pierdes tiempo.</li>
<li><strong>Una cuenta solo para el negocio.</strong> Si la plata del restaurante cae en tu cuenta personal, se mezcla con tus gastos y ya no hay forma de cuadrar.</li>
<li><strong>Cierre por medio de pago.</strong> Al final del turno cuenta el efectivo y compara cada medio por separado: lo anotado contra lo que muestra la entidad. Así, si hay diferencia, sabes dónde está.</li>
<li><strong>Revisa los topes antes del fin de semana.</strong> Si tu entidad limita cuánto recibes por día, es mejor saberlo antes de la noche con más ventas que en plena fila.</li>
</ol>
<h2>¿Qué cambia cuando un sistema lleva las formas de pago?</h2>
<p>Cambia que el medio de pago queda registrado en el mismo momento del cobro, pedido por pedido. Un sistema para restaurantes te deja definir qué medios recibe cada local, registrar un pago dividido en el mismo pedido y, al cerrar el turno, ver la diferencia por cada forma de pago en lugar de un solo número que no explica nada.</p>
<p>Tú dejas de reconstruir el día desde el celular: el cierre te dice cuánto debía haber en efectivo, cuánto por transferencia y dónde está la diferencia. La idea completa está en <a href="https://menululo.com/como-funciona/caja-y-cierre/">cómo funciona la caja y el cierre</a>.</p>
<p>Y en la misma línea: menululo tampoco te pide tarjeta de crédito. La membresía se paga por transferencia o llave a través de WhatsApp y se activa apenas se confirma el pago.</p>
<h2>¿Por dónde empiezas?</h2>
<p>Crea una llave para el negocio, imprime tu código QR y empieza a anotar la forma de pago de cada cuenta desde mañana. Con eso, la próxima vez que alguien pregunte si recibes tarjeta, la respuesta ya no será un problema.</p>
<p>Si quieres, escríbenos por WhatsApp y te ayudamos a pensar qué medios de pago activar según cómo pagan tus clientes y cómo cuadrarlos al cierre. La asesoría es gratis.</p>]]></content:encoded></item>
<item><title>Qué es un modelo de lenguaje, explicado sin tecnicismos</title><link>https://menululo.com/blog/que-es-un-modelo-de-lenguaje/</link><guid isPermaLink="true">https://menululo.com/blog/que-es-un-modelo-de-lenguaje/</guid><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><description>Qué es un modelo de lenguaje, cómo predice texto token a token, qué aporta el Transformer, por qué inventa datos y qué significa IA generativa.</description><category>Conceptos de inteligencia artificial</category><category>inteligencia-artificial</category><category>modelos-de-lenguaje</category><category>ia-generativa</category><category>transformer</category><category>tokens</category><content:encoded><![CDATA[<h2>Resumen</h2>
<ul>
<li>Un <strong>modelo de lenguaje</strong> es un programa que estima qué texto es más probable que venga a continuación, y genera respuestas repitiendo esa predicción <strong>token por token</strong>.</li>
<li>La arquitectura <strong>Transformer</strong>, publicada en 2017, hizo posible entrenar estos modelos a gran escala gracias al mecanismo de <strong>atención</strong>.</li>
<li>Generan texto plausible, no verificado: por eso pueden <strong>inventar datos</strong>, y por eso conviene darles fuentes y revisar lo que producen.</li>
</ul>
<h2>¿Qué es un modelo de lenguaje?</h2>
<p><strong>Un modelo de lenguaje es un sistema que asigna probabilidades a secuencias de texto: dado un fragmento, estima qué es más probable que siga.</strong> Cuando esa estimación se usa una y otra vez para elegir la siguiente pieza, el modelo “escribe”.</p>
<p>La idea es antigua. Los primeros modelos contaban qué palabras aparecían juntas en grandes colecciones de texto. En 2003, Yoshua Bengio y colegas publicaron <a href="https://www.jmlr.org/papers/v3/bengio03a.html"><em>A Neural Probabilistic Language Model</em></a>, que usaba redes neuronales para aprender una representación numérica de cada palabra y así generalizar a frases que nunca había visto. Los modelos actuales descienden de esa línea, con muchísimos más parámetros y datos.</p>
<p>Un buen modelo mental: el autocompletado del teclado del celular también es un modelo de lenguaje, solo que pequeño y con poca memoria del contexto. Los modelos grandes hacen lo mismo con mucho más contexto y una representación mucho más rica del lenguaje.</p>
<h2>¿Qué es un token?</h2>
<p><strong>Un token es la unidad de texto con la que trabaja el modelo: puede ser una palabra, un pedazo de palabra o un signo.</strong> El modelo no ve letras ni palabras, ve una secuencia de números que representan tokens.</p>
<p>Dividir por palabras completas tiene un problema: el vocabulario sería gigantesco y cualquier palabra nueva quedaría fuera. Por eso se usan métodos de <strong>subpalabras</strong>. Uno de los más influyentes es la codificación por pares de bytes (BPE), que <a href="https://aclanthology.org/P16-1162/">Sennrich, Haddow y Birch</a> aplicaron a la traducción automática en 2016: se parte de caracteres y se fusionan repetidamente los pares más frecuentes hasta obtener un vocabulario de tamaño fijo.</p>
<p>Un ejemplo de juguete que muestra la idea:</p>
<pre><code><span><span>from</span><span> collections </span><span>import</span><span> Counter</span></span>
<span></span>
<span><span>def</span><span> paso_bpe</span><span>(palabras: list[list[</span><span>str</span><span>]]) -> list[list[</span><span>str</span><span>]]:</span></span>
<span><span>    """Fusiona el par de símbolos contiguos más frecuente."""</span></span>
<span><span>    pares </span><span>=</span><span> Counter()</span></span>
<span><span>    for</span><span> p </span><span>in</span><span> palabras:</span></span>
<span><span>        pares.update(</span><span>zip</span><span>(p, p[</span><span>1</span><span>:]))</span></span>
<span><span>    if</span><span> not</span><span> pares:</span></span>
<span><span>        return</span><span> palabras</span></span>
<span><span>    (a, b), _ </span><span>=</span><span> pares.most_common(</span><span>1</span><span>)[</span><span>0</span><span>]</span></span>
<span><span>    fusionadas </span><span>=</span><span> []</span></span>
<span><span>    for</span><span> p </span><span>in</span><span> palabras:</span></span>
<span><span>        nueva, i </span><span>=</span><span> [], </span><span>0</span></span>
<span><span>        while</span><span> i </span><span>&#x3C;</span><span> len</span><span>(p):</span></span>
<span><span>            if</span><span> i </span><span>+</span><span> 1</span><span> &#x3C;</span><span> len</span><span>(p) </span><span>and</span><span> p[i] </span><span>==</span><span> a </span><span>and</span><span> p[i </span><span>+</span><span> 1</span><span>] </span><span>==</span><span> b:</span></span>
<span><span>                nueva.append(a </span><span>+</span><span> b); i </span><span>+=</span><span> 2</span></span>
<span><span>            else</span><span>:</span></span>
<span><span>                nueva.append(p[i]); i </span><span>+=</span><span> 1</span></span>
<span><span>        fusionadas.append(nueva)</span></span>
<span><span>    return</span><span> fusionadas</span></span>
<span></span>
<span><span>corpus </span><span>=</span><span> [</span><span>list</span><span>(</span><span>"programar"</span><span>), </span><span>list</span><span>(</span><span>"programa"</span><span>), </span><span>list</span><span>(</span><span>"programado"</span><span>)]</span></span>
<span><span>for</span><span> _ </span><span>in</span><span> range</span><span>(</span><span>6</span><span>):</span></span>
<span><span>    corpus </span><span>=</span><span> paso_bpe(corpus)</span></span>
<span><span>print</span><span>(corpus)  </span><span># los fragmentos comunes, como "program", terminan siendo un solo token</span></span></code></pre>
<p>Consecuencia práctica: los límites y costos de uso de estos modelos suelen medirse en tokens, no en palabras, y un mismo texto puede ocupar distinta cantidad de tokens según el idioma y el tokenizador.</p>
<h2>¿Cómo genera texto un modelo de lenguaje?</h2>
<p><strong>Calcula una probabilidad para cada token posible, elige uno, lo agrega al texto y repite.</strong> Este ciclo se llama generación autorregresiva.</p>
<p>El paso de “elegir” tiene su propia perilla. Si siempre se toma el token más probable, las respuestas son predecibles y a veces repetitivas. Si se muestrea con algo de azar, son más variadas. La <strong>temperatura</strong> controla ese equilibrio: divide las puntuaciones antes de convertirlas en probabilidades.</p>
<pre><code><span><span>import</span><span> math, random</span></span>
<span></span>
<span><span>def</span><span> muestrear</span><span>(puntuaciones: dict[</span><span>str</span><span>, </span><span>float</span><span>], temperatura: </span><span>float</span><span> =</span><span> 1.0</span><span>) -> </span><span>str</span><span>:</span></span>
<span><span>    escaladas </span><span>=</span><span> {t: s </span><span>/</span><span> temperatura </span><span>for</span><span> t, s </span><span>in</span><span> puntuaciones.items()}</span></span>
<span><span>    maximo </span><span>=</span><span> max</span><span>(escaladas.values())</span></span>
<span><span>    exp </span><span>=</span><span> {t: math.exp(s </span><span>-</span><span> maximo) </span><span>for</span><span> t, s </span><span>in</span><span> escaladas.items()}  </span><span># softmax estable</span></span>
<span><span>    total </span><span>=</span><span> sum</span><span>(exp.values())</span></span>
<span><span>    probs </span><span>=</span><span> {t: v </span><span>/</span><span> total </span><span>for</span><span> t, v </span><span>in</span><span> exp.items()}</span></span>
<span><span>    return</span><span> random.choices(</span><span>list</span><span>(probs), </span><span>weights</span><span>=</span><span>list</span><span>(probs.values()))[</span><span>0</span><span>]</span></span>
<span></span>
<span><span>siguiente </span><span>=</span><span> muestrear({</span><span>"sol"</span><span>: </span><span>3.1</span><span>, </span><span>"cielo"</span><span>: </span><span>2.4</span><span>, </span><span>"mar"</span><span>: </span><span>0.7</span><span>}, </span><span>temperatura</span><span>=</span><span>0.7</span><span>)</span></span></code></pre>
<p>Temperatura baja concentra la probabilidad en los tokens más altos; temperatura alta la reparte. Por eso una misma pregunta puede dar respuestas distintas.</p>
<h2>¿Qué es un Transformer y por qué cambió todo?</h2>
<p><strong>El Transformer es la arquitectura de red neuronal en la que se basan la mayoría de los modelos de lenguaje modernos; su pieza central es la atención, que permite relacionar cada token con todos los demás del contexto.</strong></p>
<p>Se presentó en 2017 en el artículo <a href="https://arxiv.org/abs/1706.03762"><em>Attention Is All You Need</em></a> de Vaswani y colegas. Antes, los modelos dominantes procesaban el texto en secuencia, un paso tras otro, lo que dificultaba aprovechar el cómputo en paralelo y conectar palabras lejanas. El Transformer prescindió de esa recurrencia y usó solo mecanismos de atención.</p>
<p>La intuición de la atención: en la frase “la ingeniera revisó el código porque <em>ella</em> sospechaba un error”, para interpretar “ella” el modelo necesita mirar hacia “la ingeniera”. La atención calcula, para cada token, cuánto peso darle a cada uno de los otros. Como ese cálculo se puede hacer en paralelo, entrenar con enormes volúmenes de texto se volvió viable.</p>
<h2>¿Cómo se entrena un modelo de lenguaje?</h2>
<p><strong>Por lo general, en etapas: primero un preentrenamiento masivo para predecir texto y después ajustes para que siga instrucciones y responda de forma útil.</strong></p>
<ol>
<li><strong>Preentrenamiento.</strong> El modelo lee grandes cantidades de texto y aprende a predecir el siguiente token. No se le enseñan reglas gramaticales ni hechos uno por uno: los patrones quedan codificados en sus parámetros.</li>
<li><strong>Ajuste supervisado.</strong> Se le muestran ejemplos de instrucciones con buenas respuestas escritas por personas.</li>
<li><strong>Aprendizaje por refuerzo con retroalimentación humana (RLHF).</strong> Personas comparan respuestas y un modelo auxiliar aprende esas preferencias para guiar el ajuste. El artículo de <a href="https://arxiv.org/abs/2203.02155">Ouyang y colegas (2022)</a> describe este proceso y parte de una observación clave: hacer un modelo más grande no lo vuelve, por sí solo, mejor para seguir la intención del usuario.</li>
</ol>
<h2>¿Qué significa “IA generativa”?</h2>
<p><strong>IA generativa es el nombre general para los sistemas que producen contenido nuevo (texto, imágenes, audio, código) en lugar de solo clasificar o predecir una etiqueta.</strong></p>
<p>Un filtro de spam es IA, pero no generativa: decide “spam” o “no spam”. Un modelo de lenguaje que redacta un correo sí lo es. La diferencia no está en que uno sea “más inteligente”, sino en el tipo de salida. Los modelos de lenguaje son la familia más conocida de IA generativa para texto, pero hay otras arquitecturas para imágenes o sonido.</p>
<h2>¿Por qué un modelo de lenguaje inventa información?</h2>
<p><strong>Porque su objetivo de entrenamiento es producir texto plausible, no texto verificado.</strong> Si el patrón más probable es una cita con autor y año, puede generar una cita con esa forma aunque no exista.</p>
<p>La literatura técnica llama a esto <strong>alucinación</strong>. El <a href="https://arxiv.org/abs/2202.03629">estudio de Ji y colegas</a>, publicado en <em>ACM Computing Surveys</em>, revisa sus tipos, causas y formas de medirla y mitigarla. Algunas prácticas que ayudan:</p>
<ul>
<li><strong>Darle las fuentes</strong> en lugar de pedirle que “recuerde”.</li>
<li><strong>Pedir que cite</strong> el fragmento exacto de donde saca cada afirmación.</li>
<li><strong>Verificar</strong> automáticamente lo verificable: cálculos, fechas, enlaces, código que compile.</li>
<li><strong>Permitir que diga “no sé”</strong> cuando la información no está en el contexto.</li>
</ul>
<h2>¿Qué es RAG?</h2>
<p><strong>RAG (Retrieval-Augmented Generation) es una técnica que busca documentos relevantes y se los entrega al modelo junto con la pregunta, para que responda apoyándose en ellos.</strong></p>
<p>La propusieron <a href="https://arxiv.org/abs/2005.11401">Lewis y colegas en 2020</a>. Separa dos cosas: <em>qué sabe</em> el sistema (una colección de documentos que se puede actualizar) y <em>cómo redacta</em> (el modelo). Así se puede responder sobre información reciente o privada sin volver a entrenar el modelo, y es más fácil mostrar de dónde salió cada respuesta.</p>
<h2>¿Qué es la ventana de contexto?</h2>
<p><strong>Es la cantidad máxima de tokens que el modelo puede considerar a la vez: la pregunta, las instrucciones, los documentos entregados y la propia respuesta.</strong> Todo lo que queda fuera de esa ventana, el modelo simplemente no lo ve.</p>
<p>Por eso una conversación muy larga puede “olvidar” lo del principio, y por eso en RAG importa elegir bien qué fragmentos se envían: más texto no siempre significa mejores respuestas.</p>
<h2>¿Qué conviene recordar al usar uno?</h2>
<p><strong>Que es una herramienta probabilística muy capaz para trabajar con lenguaje, no una base de datos ni un oráculo.</strong></p>
<ul>
<li>Úsalo para redactar, resumir, traducir, clasificar o explicar, y <strong>verifica</strong> lo que tenga consecuencias.</li>
<li>Si necesitas hechos exactos o datos propios, <strong>entrégaselos</strong> en el contexto.</li>
<li>Si una respuesta cambia al repetir la pregunta, no es un error: es el muestreo.</li>
</ul>
<p>Si te interesan otros conceptos de fondo sobre cómo se construye software confiable, puedes seguir con <a href="https://menululo.com/blog/algoritmos-sincronizacion-datos/">algoritmos de sincronización de datos</a> o con <a href="https://menululo.com/blog/multiplataforma-vs-nativo/">cómo elegir entre desarrollo multiplataforma y nativo</a>.</p>]]></content:encoded></item>
<item><title>Cómo pagar el software del restaurante sin tarjeta de crédito</title><link>https://menululo.com/blog/pagar-software-restaurante-sin-tarjeta-de-credito/</link><guid isPermaLink="true">https://menululo.com/blog/pagar-software-restaurante-sin-tarjeta-de-credito/</guid><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate><description>No tener tarjeta de crédito no debería frenar a tu restaurante. Así pagas un sistema por transferencia o llave Bre-B y lo activas el mismo día.</description><category>Software y precios</category><category>bre-b</category><category>pagos-sin-tarjeta</category><category>emprendedores</category><category>pyme</category><content:encoded><![CDATA[<p>Encontraste el sistema que tu restaurante necesita. Lo probaste, te gustó y tu equipo le cogió el tiro. Llega el momento de pagar y aparece el formulario: “ingresa los datos de tu tarjeta de crédito”. Y ahí se acaba todo. No tienes una, o la que tienes es personal y ya está al tope, o simplemente no quieres dejar amarrado un cobro automático que no controlas.</p>
<p>Cierras la página y vuelves al cuaderno. No por falta de ganas, sino porque alguien decidió que la única forma de pagar es justo la que tú no tienes.</p>
<h2>¿Por qué tantos dueños de restaurante no tienen tarjeta de crédito?</h2>
<p>Porque en Colombia la tarjeta de crédito está lejos de ser universal. Según el <a href="https://www.bancadelasoportunidades.gov.co/es/noticias/banca-de-las-oportunidades-y-la-superfinanciera-lanzan-el-reporte-de-inclusion-financiera">reporte de inclusión financiera de Banca de las Oportunidades y la Superintendencia Financiera</a>, en 2024 solo el 23,3 % de los adultos tenía acceso a una, y ese acceso se concentra en las ciudades.</p>
<p>Eso deja por fuera a la mayoría, incluidos muchísimos emprendedores de comida. Y aun quienes sí tienen tarjeta a menudo prefieren no usarla para el negocio: mezclar los gastos personales con los del restaurante es la receta perfecta para no saber nunca cuánto gana el negocio de verdad.</p>
<h2>¿Qué le cuesta a tu negocio que te exijan tarjeta?</h2>
<p>Te cuesta seguir operando con libreta mientras el problema crece. Cada semana sin orden es otra semana de caja que no cuadra, pedidos que se confunden e insumos que se acaban sin aviso. La herramienta existía; lo que faltaba era una forma de pago que se ajustara a ti.</p>
<p>También te cuesta depender de otros. Hay dueños que terminan pidiéndole la tarjeta prestada a un familiar o a un amigo, y con eso llega la incomodidad de cada cobro, la explicación de cada mes y la sensación de que tu negocio no es del todo tuyo.</p>
<h2>¿Qué se siente cuando te rechazan un pago?</h2>
<p>Da pena, y esa pena frena. Muchos dueños han visto un “pago rechazado” en la pantalla, sin nadie a quien explicarle que sí tienen con qué pagar, solo que no de esa manera. Después de eso, cualquier software parece “no hecho para mí”.</p>
<p>No es un tema de capacidad de pago. Es un tema de medios de pago. Y ese sí tiene arreglo.</p>
<h2>¿Se puede pagar un software por transferencia o por llave?</h2>
<p>Sí. Cada vez más proveedores aceptan transferencia bancaria o pago por llave, y en Colombia eso se volvió mucho más fácil con Bre-B, el sistema de pagos inmediatos del Banco de la República. Pagas desde la aplicación de tu banco o de tu billetera digital, igual que le pagas a un proveedor.</p>
<p>Bre-B empezó a operar el 6 de octubre de 2025 y, según el <a href="https://www.banrep.gov.co/es/noticias/seis-meses-bre-b-acumula-34-millones-usuarios">Banco de la República</a>, en sus primeros seis meses superó los 670 millones de transacciones y los 34 millones de usuarios registrados, entre personas y comercios, funcionando las 24 horas, los siete días de la semana. Es muy probable que tú y tu equipo ya lo usen para cobrarles a los clientes.</p>
<h2>¿Qué revisar antes de pagar un software sin tarjeta?</h2>
<p>Antes de transferir, confirma cinco cosas. Te toman dos minutos y te evitan malos ratos:</p>
<ul>
<li><strong>Que el número de contacto sea el oficial.</strong> Búscalo en la página web del proveedor, no en un mensaje reenviado.</li>
<li><strong>Que la cuenta o la llave estén a nombre del negocio</strong> que te presta el servicio.</li>
<li><strong>Qué incluye el plan y por cuánto tiempo.</strong> Pide que te lo digan por escrito antes de pagar.</li>
<li><strong>Cuándo queda activo.</strong> Lo ideal es que la activación sea inmediata al confirmar el pago, no “en tres a cinco días hábiles”.</li>
<li><strong>Qué pasa con tu información si un mes no renuevas.</strong> Pregúntalo antes de contratar: el historial de ventas de tu negocio es tuyo.</li>
</ul>
<p>Y una regla de oro: nunca compartas contraseñas, códigos de verificación ni claves de tu banco. Ningún proveedor serio te los va a pedir.</p>
<h2>¿Cómo mantener ordenado el pago del software cada mes?</h2>
<p>Trátalo como un gasto fijo del restaurante, igual que el arriendo o el gas. Págalo desde la cuenta del negocio, guarda el comprobante en una carpeta y anótalo con los gastos del mes.</p>
<p>Sin cobro automático, la responsabilidad de acordarte es tuya, así que ayúdate con tres hábitos sencillos:</p>
<ul>
<li><strong>Pon un recordatorio</strong> en el celular unos días antes de la fecha de renovación, no el mismo día.</li>
<li><strong>Aparta el valor desde la primera semana del mes</strong>, igual que apartas lo del arriendo, para que no dependa de cómo te fue el fin de semana.</li>
<li><strong>Guarda en un solo chat los comprobantes</strong> y la confirmación de activación de cada mes. Si algún día hay una duda, la respuesta está ahí, con fecha.</li>
</ul>
<p>Si todavía no separas la plata del negocio de la tuya, este es un buen momento para empezar. Te va a servir para mucho más que el software; por ejemplo, para que la caja por fin cuadre, como explicamos en <a href="https://menululo.com/blog/por-que-no-cuadra-la-caja/">por qué no me cuadra la caja al final del turno</a>.</p>
<h2>¿Cómo se paga menululo sin tarjeta de crédito?</h2>
<p>Sin tarjeta, de principio a fin. Puedes empezar con el plan Gratis sin dar ningún dato de pago. Cuando quieras pasar a un plan pago, nos escribes por WhatsApp, pagas por transferencia o llave Bre-B, nos envías el comprobante y la membresía se activa apenas confirmamos el pago.</p>
<p>Además, hay dos apoyos pensados para quien más lo necesita:</p>
<ul>
<li><strong>Si estás empezando tu emprendimiento</strong> y nos lo muestras por WhatsApp, el plan Pro te queda en $25.000 al mes durante cuatro meses, extensibles si lo usas.</li>
<li><strong>Si tu restaurante resultó afectado por el sismo del 10 de agosto de 2026</strong>, con epicentro en Chocó, recibes el plan Pro gratis durante seis meses presentando la evidencia.</li>
</ul>
<p>Si antes de pagar quieres ver qué resuelve en el día a día, empieza por <a href="https://menululo.com/como-funciona/caja-y-cierre/">cómo funciona la caja y el cierre</a>. Y si todavía dudas de si un sistema es para un negocio de tu tamaño, lee <a href="https://menululo.com/blog/software-para-restaurantes-pequenos/">software para restaurantes pequeños</a>.</p>
<h2>¿Cómo empiezo hoy?</h2>
<p>Escríbenos por WhatsApp. En la asesoría gratuita te mostramos cómo activar tu cuenta hoy mismo, sin tarjeta, y resolvemos cualquier duda sobre el pago antes de que transfieras un solo peso.</p>]]></content:encoded></item>
<item><title>Algoritmos de sincronización: LWW, relojes vectoriales y CRDT</title><link>https://menululo.com/blog/algoritmos-sincronizacion-datos/</link><guid isPermaLink="true">https://menululo.com/blog/algoritmos-sincronizacion-datos/</guid><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><description>Cómo dos copias de un mismo dato vuelven a estar de acuerdo: last-write-wins, relojes de Lamport, relojes vectoriales y CRDT con ejemplos.</description><category>Algoritmos</category><category>sincronizacion</category><category>crdt</category><category>sistemas-distribuidos</category><category>relojes-vectoriales</category><category>consistencia-eventual</category><content:encoded><![CDATA[<h2>Resumen</h2>
<ul>
<li>Cuando varias copias de un dato aceptan cambios por separado, <strong>tarde o temprano divergen</strong> y hace falta una regla para que vuelvan a coincidir.</li>
<li><strong>Last-write-wins</strong> es la regla más simple, pero descarta cambios; los <strong>relojes vectoriales</strong> detectan conflictos reales; los <strong>CRDT</strong> los evitan por diseño.</li>
<li>La elección depende del dato: una preferencia, un contador y una lista de compras necesitan algoritmos distintos.</li>
</ul>
<h2>¿Cuál es el problema que resuelven estos algoritmos?</h2>
<p><strong>Resuelven qué hacer cuando dos réplicas de un mismo dato se modificaron sin comunicarse y después se reencuentran.</strong> A esto se le llama reconciliación o convergencia.</p>
<p>Pasa en más lugares de los que parece: una app de notas usada en el teléfono y en la computadora, un carrito de compras abierto en dos pestañas, una base de datos replicada en varias regiones o cualquier <a href="https://menululo.com/blog/offline-first-explicado/">aplicación offline-first</a>. En todos los casos, exigir que cada escritura se coordine con las demás copias antes de aceptarse haría el sistema lento o inutilizable sin red. Por eso muchos sistemas aceptan escrituras locales y prometen <strong>consistencia eventual</strong>: si dejan de llegar cambios, todas las réplicas terminan iguales.</p>
<p>La pregunta difícil es <em>cómo</em> terminan iguales sin perder información importante.</p>
<h2>¿Por qué no basta con comparar la hora de cada cambio?</h2>
<p><strong>Porque los relojes físicos de distintos equipos no están perfectamente sincronizados, y el orden real de los eventos no siempre coincide con lo que marca cada reloj.</strong></p>
<p>Leslie Lamport lo planteó en 1978 en <a href="https://dl.acm.org/doi/10.1145/359545.359563"><em>Time, Clocks, and the Ordering of Events in a Distributed System</em></a>: en un sistema distribuido, “antes” y “después” solo están bien definidos cuando un evento pudo influir en el otro. Si dos cambios ocurren sin que ninguna réplica supiera del otro, son <strong>concurrentes</strong>, y ninguna marca de tiempo resuelve eso de forma honesta.</p>
<h2>¿Qué es last-write-wins y cuándo sirve?</h2>
<p><strong>Last-write-wins (LWW) conserva la versión con la marca de tiempo más reciente y descarta la otra.</strong> Es fácil de implementar y siempre converge, pero pierde datos en silencio.</p>
<pre><code><span><span>type</span><span> Registro</span><span>&#x3C;</span><span>T</span><span>> </span><span>=</span><span> { </span><span>valor</span><span>:</span><span> T</span><span>; </span><span>ts</span><span>:</span><span> number</span><span>; </span><span>replica</span><span>:</span><span> string</span><span> };</span></span>
<span></span>
<span><span>function</span><span> mergeLww</span><span>&#x3C;</span><span>T</span><span>>(</span><span>a</span><span>:</span><span> Registro</span><span>&#x3C;</span><span>T</span><span>>, </span><span>b</span><span>:</span><span> Registro</span><span>&#x3C;</span><span>T</span><span>>)</span><span>:</span><span> Registro</span><span>&#x3C;</span><span>T</span><span>> {</span></span>
<span><span>  if</span><span> (a.ts </span><span>!==</span><span> b.ts) </span><span>return</span><span> a.ts </span><span>></span><span> b.ts </span><span>?</span><span> a </span><span>:</span><span> b;</span></span>
<span><span>  // Desempate determinista para que todas las réplicas elijan lo mismo</span></span>
<span><span>  return</span><span> a.replica </span><span>></span><span> b.replica </span><span>?</span><span> a </span><span>:</span><span> b;</span></span>
<span><span>}</span></span></code></pre>
<p>Fíjate en el desempate: sin él, dos réplicas con la misma marca de tiempo podrían elegir valores distintos y nunca converger.</p>
<p>LWW funciona bien para datos donde “el último valor” es lo que importa y perder una edición concurrente es tolerable: el tema visual elegido, la última ubicación conocida, el estado de un interruptor. Funciona mal para contadores (dos incrementos concurrentes terminan contando uno) y para listas (un elemento agregado en una réplica desaparece si la otra sobrescribe la lista entera).</p>
<p>Una mejora común es aplicar LWW <strong>por campo</strong> y no por documento completo: si una réplica cambió el título y otra la descripción, se conservan ambos cambios.</p>
<h2>¿Qué son los relojes de Lamport?</h2>
<p><strong>Son contadores lógicos que cada réplica incrementa y adjunta a sus eventos, de modo que si un evento causó otro, el primero siempre tiene un número menor.</strong></p>
<p>Las reglas del artículo de Lamport se resumen en dos: cada réplica incrementa su contador antes de cada evento, y al recibir un mensaje ajusta su contador al máximo entre el propio y el recibido, más uno. Con un desempate por identificador de réplica, esto da un <strong>orden total</strong> que respeta la causalidad.</p>
<p>La limitación es importante: si el evento A tiene número 5 y el B tiene 7, no se puede saber si A causó B o si ocurrieron por separado. Para detectar conflictos reales hace falta más información.</p>
<h2>¿Qué es un reloj vectorial y cómo detecta conflictos?</h2>
<p><strong>Un reloj vectorial guarda un contador por cada réplica; comparando dos vectores se sabe si un cambio sucedió después de otro o si ambos fueron concurrentes.</strong></p>
<p>La idea la introdujeron de forma independiente <a href="https://decomposition.al/blog/2023/04/08/who-invented-vector-clocks/">Colin Fidge y Friedemann Mattern</a> a finales de los años 80. Cada réplica incrementa su propia posición al modificar el dato, y al fusionar se toma el máximo posición por posición.</p>
<pre><code><span><span>type</span><span> Vector</span><span> =</span><span> Record</span><span>&#x3C;</span><span>string</span><span>, </span><span>number</span><span>>;</span></span>
<span></span>
<span><span>type</span><span> Orden</span><span> =</span><span> "antes"</span><span> |</span><span> "despues"</span><span> |</span><span> "igual"</span><span> |</span><span> "concurrente"</span><span>;</span></span>
<span></span>
<span><span>function</span><span> comparar</span><span>(</span><span>a</span><span>:</span><span> Vector</span><span>, </span><span>b</span><span>:</span><span> Vector</span><span>)</span><span>:</span><span> Orden</span><span> {</span></span>
<span><span>  const</span><span> claves</span><span> =</span><span> new</span><span> Set</span><span>([</span><span>...</span><span>Object.</span><span>keys</span><span>(a), </span><span>...</span><span>Object.</span><span>keys</span><span>(b)]);</span></span>
<span><span>  let</span><span> aMenor </span><span>=</span><span> false</span><span>, bMenor </span><span>=</span><span> false</span><span>;</span></span>
<span><span>  for</span><span> (</span><span>const</span><span> k</span><span> of</span><span> claves) {</span></span>
<span><span>    const</span><span> va</span><span> =</span><span> a[k] </span><span>??</span><span> 0</span><span>, </span><span>vb</span><span> =</span><span> b[k] </span><span>??</span><span> 0</span><span>;</span></span>
<span><span>    if</span><span> (va </span><span>&#x3C;</span><span> vb) aMenor </span><span>=</span><span> true</span><span>;</span></span>
<span><span>    if</span><span> (vb </span><span>&#x3C;</span><span> va) bMenor </span><span>=</span><span> true</span><span>;</span></span>
<span><span>  }</span></span>
<span><span>  if</span><span> (aMenor </span><span>&#x26;&#x26;</span><span> bMenor) </span><span>return</span><span> "concurrente"</span><span>; </span><span>// conflicto real</span></span>
<span><span>  if</span><span> (aMenor) </span><span>return</span><span> "antes"</span><span>;</span></span>
<span><span>  if</span><span> (bMenor) </span><span>return</span><span> "despues"</span><span>;</span></span>
<span><span>  return</span><span> "igual"</span><span>;</span></span>
<span><span>}</span></span>
<span></span>
<span><span>// { tel: 2, pc: 1 } vs { tel: 1, pc: 2 }  ->  "concurrente"</span></span></code></pre>
<p>Cuando el resultado es <code>"antes"</code> o <code>"despues"</code>, se conserva la versión más nueva sin miedo a perder nada. Cuando es <code>"concurrente"</code>, el sistema sabe que hay un conflicto genuino y puede guardar ambas versiones para que la aplicación o el usuario decidan.</p>
<p>El costo: el vector crece con el número de réplicas que han escrito el dato, y hay que decidir qué hacer con las versiones hermanas.</p>
<h2>¿Qué es un CRDT?</h2>
<p><strong>Un CRDT (Conflict-free Replicated Data Type) es una estructura de datos diseñada para que las réplicas se puedan modificar sin coordinación y siempre converjan al mismo estado.</strong></p>
<p>El concepto lo formalizaron Marc Shapiro, Nuno Preguiça, Carlos Baquero y Marek Zawirski en <a href="https://inria.hal.science/inria-00609399v2/document"><em>Conflict-free Replicated Data Types</em></a> (SSS 2011). El artículo describe dos familias:</p>
<ul>
<li><strong>Basados en estado:</strong> las réplicas intercambian su estado completo y lo combinan con una función de fusión que es conmutativa, asociativa e idempotente. No importa el orden ni si un mensaje llega dos veces.</li>
<li><strong>Basados en operaciones:</strong> las réplicas intercambian operaciones que conmutan entre sí, lo que exige que la capa de red las entregue (en orden causal cuando corresponde).</li>
</ul>
<p>El ejemplo más simple es un contador que solo crece (G-Counter). Cada réplica cuenta sus propios incrementos y la fusión toma el máximo por réplica:</p>
<pre><code><span><span>def</span><span> incrementar</span><span>(estado: </span><span>dict</span><span>, replica: </span><span>str</span><span>) -> </span><span>None</span><span>:</span></span>
<span><span>    estado[replica] </span><span>=</span><span> estado.get(replica, </span><span>0</span><span>) </span><span>+</span><span> 1</span></span>
<span></span>
<span><span>def</span><span> fusionar</span><span>(a: </span><span>dict</span><span>, b: </span><span>dict</span><span>) -> </span><span>dict</span><span>:</span></span>
<span><span>    return</span><span> {k: </span><span>max</span><span>(a.get(k, </span><span>0</span><span>), b.get(k, </span><span>0</span><span>)) </span><span>for</span><span> k </span><span>in</span><span> a.keys() </span><span>|</span><span> b.keys()}</span></span>
<span></span>
<span><span>def</span><span> valor</span><span>(estado: </span><span>dict</span><span>) -> </span><span>int</span><span>:</span></span>
<span><span>    return</span><span> sum</span><span>(estado.values())</span></span>
<span></span>
<span><span># Teléfono suma 2 y computadora suma 1 sin conexión:</span></span>
<span><span>tel, pc </span><span>=</span><span> {</span><span>"tel"</span><span>: </span><span>2</span><span>}, {</span><span>"pc"</span><span>: </span><span>1</span><span>}</span></span>
<span><span>assert</span><span> valor(fusionar(tel, pc)) </span><span>==</span><span> 3</span><span>   # no se pierde ningún incremento</span></span></code></pre>
<p>Con la misma lógica se construyen estructuras más útiles: contadores que suben y bajan (dos G-Counter, uno para sumas y otro para restas), registros LWW y conjuntos como el <strong>OR-Set</strong> (<em>observed-remove set</em>), donde cada elemento agregado lleva una etiqueta única y un borrado solo elimina las etiquetas que la réplica ya había visto. Así, si alguien agrega “leche” al carrito mientras otra persona borra una “leche” anterior, la nueva no desaparece.</p>
<h2>¿Se pueden usar CRDT para texto colaborativo?</h2>
<p><strong>Sí, existen CRDT de secuencia que permiten que varias personas escriban el mismo documento a la vez.</strong> Asignan a cada carácter un identificador que define su posición de forma estable, de modo que las inserciones concurrentes quedan en un orden determinista.</p>
<p>El otro enfoque clásico para edición colaborativa es la <strong>transformación operacional</strong> (OT), que ajusta cada operación según las que ocurrieron en paralelo y, en la práctica, suele apoyarse en un servidor central que ordena los cambios. Ambos enfoques conviven. El sitio <a href="https://crdt.tech/papers.html">crdt.tech</a> mantiene una bibliografía extensa si quieres profundizar.</p>
<h2>¿Qué costos tienen los CRDT?</h2>
<p><strong>El precio de la convergencia automática es metadata extra y una semántica que no siempre coincide con lo que el usuario espera.</strong></p>
<ul>
<li><strong>Metadata:</strong> identificadores por elemento, vectores de versión y marcas de borrado (<em>tombstones</em>) que ocupan espacio. Hay trabajos dedicados solo a reducirla, como la <a href="https://arxiv.org/abs/1210.3368">versión optimizada del OR-Set sin tombstones</a> (Bieniusa et al., 2012).</li>
<li><strong>Semántica fija:</strong> un CRDT converge, pero converge a <em>su</em> regla. Si dos personas cambian el precio de un mismo producto a valores distintos, un registro LWW elegirá uno; “convergió” no significa “hizo lo correcto para el negocio”.</li>
<li><strong>Invariantes globales:</strong> un CRDT no puede garantizar por sí solo reglas como “el saldo nunca es negativo” o “solo queda una unidad”. Para eso hace falta coordinación.</li>
</ul>
<h2>¿Qué algoritmo conviene elegir?</h2>
<p><strong>Elige por tipo de dato, no por sistema completo.</strong> Una misma aplicación suele combinar varias estrategias:</p>

































<table><thead><tr><th>Tipo de dato</th><th>Estrategia razonable</th></tr></thead><tbody><tr><td>Preferencias, estados simples</td><td>LWW por campo</td></tr><tr><td>Contadores (likes, visitas)</td><td>CRDT de contador</td></tr><tr><td>Listas y conjuntos (etiquetas, carrito)</td><td>OR-Set u otro CRDT de conjunto</td></tr><tr><td>Texto colaborativo</td><td>CRDT de secuencia u OT</td></tr><tr><td>Datos con reglas estrictas (saldos, stock único)</td><td>Coordinación con el servidor</td></tr><tr><td>Datos valiosos con conflicto posible</td><td>Relojes vectoriales y resolución explícita</td></tr></tbody></table>
<p>Y no olvides la capa de transporte: aunque el algoritmo de fusión sea perfecto, los cambios tienen que llegar. Eso depende de reintentos seguros e idempotentes, que explicamos en <a href="https://menululo.com/blog/colas-de-reintentos/">colas de reintentos</a>. Si además tu sistema atiende a muchos clientes con datos aislados, la forma de particionar esos datos importa tanto como el algoritmo; lo vemos en <a href="https://menululo.com/blog/modelo-de-datos-multi-tenant/">modelo de datos multi-tenant</a>.</p>
<h2>Para cerrar</h2>
<p>Sincronizar no es copiar datos de un lado a otro: es decidir qué significa que dos versiones “estén de acuerdo”. LWW responde con simplicidad, los relojes vectoriales con honestidad sobre los conflictos y los CRDT con garantías matemáticas. Conocer los tres te permite elegir, dato por dato, cuánto estás dispuesto a perder a cambio de no coordinar.</p>]]></content:encoded></item>
<item><title>Cómo organizar los domicilios de tu restaurante sin perder pedidos</title><link>https://menululo.com/blog/organizar-domicilios/</link><guid isPermaLink="true">https://menululo.com/blog/organizar-domicilios/</guid><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><description>Un domicilio se pierde en tres momentos: al tomarlo, al despacharlo y al entregarlo. Aprende a cerrar cada hueco desde hoy, sin gastar.</description><category>Domicilios y WhatsApp</category><category>pyme</category><category>hora-pico</category><category>whatsapp-business</category><category>emprendedores</category><content:encoded><![CDATA[<p>Viernes, 8:10 de la noche. El domiciliario vuelve con una bolsa en la mano: la dirección estaba incompleta y el cliente no contestó. Mientras tanto, otra clienta llama molesta porque su pedido lleva una hora y nadie sabe si ya salió. En el mesón hay tres bolsas listas y ninguna tiene un nombre claro. Alguien pregunta en voz alta: “¿esta es la de la calle 5 o la de la carrera 5?”.</p>
<p>Los domicilios pueden ser una gran fuente de ventas para un restaurante pequeño, pero también de las que más se desordenan, porque el pedido sale de tu vista justo en el momento más delicado.</p>
<h2>¿Dónde se pierde el control de un domicilio?</h2>
<p>En tres momentos: cuando se toma el pedido, cuando se despacha y cuando se entrega. Cada uno tiene su error típico, y si no cierras los tres, el problema solo cambia de lugar.</p>
<ul>
<li><strong>Al tomarlo:</strong> dirección sin barrio ni punto de referencia, teléfono equivocado, forma de pago sin definir. Aquí nace la mayoría de viajes perdidos.</li>
<li><strong>Al despacharlo:</strong> bolsas sin identificar, pedidos que salen incompletos porque faltó la bebida o la salsa, dos pedidos cruzados en la misma moto.</li>
<li><strong>Al entregarlo:</strong> nadie sabe si ya llegó, el domiciliario vuelve con plata que no cuadra o sin el cambio que necesitaba, y el cliente llama al restaurante porque no tiene a quién más preguntarle.</li>
</ul>
<h2>¿Cuánto te cuesta un domicilio que llega mal?</h2>
<p>Te cuesta dos veces: lo que pierdes en ese pedido y lo que dejas de vender después. Un domicilio equivocado casi siempre termina en un plato rehecho, un viaje extra y algo de cortesía para calmar al cliente.</p>
<p>Pero la pérdida grande no se ve. El cliente de domicilio no conoce a tu equipo ni ve tu local; su única experiencia es lo que llega a la puerta. Si llega frío, tarde o incompleto, no hay una sonrisa del mesero que lo compense. Simplemente, la próxima vez le escribe a otro. Y como ese cliente no se queja, sino que desaparece, en tus cuentas solo ves un mes un poco más flojo sin saber por qué.</p>
<h2>¿Qué te pasa a ti cuando los domicilios se desordenan?</h2>
<p>Terminas siendo la central de llamadas del negocio. Contestas al cliente que pregunta, al domiciliario que no encuentra la casa y a la cocina que no sabe cuál bolsa sale primero, todo al mismo tiempo.</p>
<p>Y aparece una desconfianza incómoda: cuando la plata de los domicilios no cuadra al final de la noche, no sabes si fue un error con el cambio, un pedido que no se cobró o algo peor. Esa duda desgasta la relación con tu equipo aunque nadie haya hecho nada malo.</p>
<h2>¿Qué debería saber el domiciliario y qué no?</h2>
<p>El domiciliario necesita todo lo de sus pedidos y nada más: qué lleva, a dónde va, a quién lo entrega, cuánto debe cobrar y por qué medio. No necesita ver la caja, las ventas del día ni los pedidos de otros compañeros.</p>
<p>Esto no es desconfianza, es orden. Cuando alguien ve solo lo que le toca, se equivoca menos y responde por menos. Y si mañana cambias de domiciliario, no tienes que preocuparte por lo que se lleva en la cabeza. Si quieres pensar cómo repartir accesos en todo el equipo, lo tratamos en <a href="https://menululo.com/blog/roles-basicos-restaurante-pequeno/">los roles básicos de un restaurante pequeño</a>.</p>
<h2>¿Cómo organizar tus domicilios desde hoy, sin software?</h2>
<p>Con una ficha por pedido, una zona de despacho y tres estados que todos respeten. Puedes montarlo esta misma semana:</p>
<ol>
<li><strong>Ficha obligatoria al tomar el pedido.</strong> Nombre, teléfono confirmado, dirección con barrio y punto de referencia, qué lleva, total y forma de pago. Si falta un dato, el pedido no pasa a cocina.</li>
<li><strong>Pregunta el pago antes, no en la puerta.</strong> Si pagan en efectivo, pregunta con cuánto van a pagar para que el domiciliario lleve el cambio. Si pagan por transferencia, verifica que el pago llegó antes de despachar.</li>
<li><strong>Número de pedido en la bolsa.</strong> Escribe con marcador un número en cada bolsa. Ese número es el mismo de la ficha y el mismo que usas en el chat.</li>
<li><strong>Revisión en el despacho.</strong> Antes de cerrar la bolsa, alguien distinto a quien empacó la revisa contra la ficha: plato, bebida, cubiertos, salsas.</li>
<li><strong>Tres estados en un tablero.</strong> En espera, despachado, entregado. Puede ser una pizarra junto a la puerta con el número de pedido y la hora. El domiciliario mueve su pedido cuando vuelve.</li>
<li><strong>Hora de salida y de entrega anotadas.</strong> En pocos días sabrás cuánto tarda de verdad cada zona y podrás prometer tiempos honestos.</li>
<li><strong>Cuadre del domiciliario al terminar.</strong> Cada domiciliario entrega su plata contra sus fichas antes de irse, no al día siguiente.</li>
</ol>
<p>La ficha del primer paso empieza en el chat. Si la mayoría de tus domicilios llegan por ahí, revisa también <a href="https://menululo.com/blog/pedidos-whatsapp-desorganizados/">cómo ordenar los pedidos por WhatsApp</a>.</p>
<h2>¿Cómo saber dónde está cada pedido sin llamar a nadie?</h2>
<p>Con estados que se actualizan en el momento en que pasan las cosas, no cuando alguien se acuerda. La pizarra ayuda mucho, pero depende de que alguien la mire y la mueva, y en las noches de más movimiento eso es lo primero que se olvida.</p>
<p>Por eso conviene que el cambio de estado sea parte del gesto natural del trabajo: la bolsa sale y el pedido pasa a despachado; el domiciliario vuelve y lo marca entregado. Si depende de un paso extra, tarde o temprano se salta.</p>
<h2>¿Qué cambia cuando un sistema organiza los domicilios?</h2>
<p>Cambia que la ficha, el estado y el responsable dejan de depender de la memoria. En un sistema pensado para restaurantes, el domicilio entra con sus datos completos, pasa a una cola con sus propios estados, se asigna a un domiciliario y cada persona ve solo lo que le toca.</p>
<p>Tú dejas de ser la central de llamadas: miras y sabes qué está en espera, qué salió y qué se entregó. Y el cuadre del domiciliario sale de lo que quedó registrado, no de lo que cada uno recuerda. La idea está explicada paso a paso en <a href="https://menululo.com/como-funciona/domicilios/">cómo funcionan los domicilios</a>.</p>
<h2>¿Por dónde empiezas?</h2>
<p>Empieza por la ficha obligatoria y el número en la bolsa. Son los dos pasos que más viajes perdidos evitan, y no cuestan nada.</p>
<p>Si quieres, escríbenos por WhatsApp y cuéntanos cuántos domicilios manejas en un día normal. Te decimos con honestidad si vale la pena ordenar ese flujo con un sistema o si, por ahora, con la pizarra te basta.</p>]]></content:encoded></item>
<item><title>Software para restaurantes pequeños: sí es para tu negocio</title><link>https://menululo.com/blog/software-para-restaurantes-pequenos/</link><guid isPermaLink="true">https://menululo.com/blog/software-para-restaurantes-pequenos/</guid><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><description>Por qué un sistema para restaurante no es solo para cadenas grandes, qué necesita de verdad un negocio de pocas mesas y cómo empezar sin gastar de más.</description><category>Software y precios</category><category>pyme</category><category>emprendedores</category><category>multisede</category><category>software-para-restaurantes</category><content:encoded><![CDATA[<p>Tienes seis mesas, una cocina donde caben dos personas y un celular que no para de sonar. Los pedidos los anotas en una libreta, la caja la cuadras en un cuaderno y el inventario lo llevas en la cabeza. Un amigo te dice que deberías usar un sistema, y tú piensas lo mismo que piensan casi todos: “eso es para restaurantes grandes, con gerente y contador. Yo no tengo ni el tiempo ni la plata para eso”.</p>
<p>Es una idea muy común, y tiene sus razones. Pero sale más cara de lo que parece.</p>
<h2>¿Un software para restaurante es solo para cadenas grandes?</h2>
<p>No. Los problemas que resuelve un sistema, como pedidos confundidos, caja descuadrada o insumos que se acaban sin aviso, aparecen desde la primera mesa. Lo que cambia con el tamaño no es el problema, sino cuánto aguantas antes de que te quiebre.</p>
<p>Un restaurante grande tiene administrador, jefe de cocina y cajero. En uno pequeño, esos tres cargos suelen ser la misma persona: tú. Por eso, si alguien necesita orden, es justamente el negocio chico, donde un error no lo absorbe nadie más.</p>
<h2>¿Por qué el software “grande” no le sirve a un negocio de pocas mesas?</h2>
<p>Porque está pensado para otra realidad: módulos que nunca vas a usar, instalaciones que requieren un técnico, contratos largos y pantallas llenas de opciones que tu equipo no entiende. El problema no es tener un sistema; es tener uno hecho para otro tamaño.</p>
<p>Cuando un dueño pequeño prueba una herramienta así, lo que vive es frustración: pagó por algo complejo, nadie en el equipo lo usa y termina volviendo a la libreta. De ahí nace el mito de que “los sistemas no son para mí”.</p>
<h2>¿Qué le cuesta a un negocio pequeño seguir en libreta?</h2>
<p>Le cuesta plata que no ves, clientes que no vuelven y horas tuyas que nadie te paga. Un pedido mal anotado es un plato que se bota; un vuelto mal dado es la ganancia de varios platos; un insumo que se acabó a mitad del almuerzo es una venta que se fue para el local de la esquina.</p>
<p>Nada de eso aparece como un gasto. Simplemente, a fin de mes, la plata no alcanza como debería, y no sabes muy bien por qué.</p>
<p>Y ser pequeño no es la excepción: es la regla. Según datos de Confecámaras citados por <a href="https://www.larepublica.co/empresas/del-total-de-las-empresas-que-operan-en-colombia-7-7-son-pequenas-y-medianas-3958564">La República</a>, el 91,8 % de las empresas registradas en Colombia son microempresas. Las herramientas deberían estar pensadas para ese negocio, no al revés.</p>
<p>Luego está lo personal. Llevar todo en la cabeza significa no poder desconectarte nunca. Si te enfermas un día, nadie sabe cuánto hay en caja ni qué hay que pedirle al proveedor. Terminas trabajando para el negocio, en lugar de que el negocio trabaje para ti.</p>
<h2>¿Qué necesita de verdad un restaurante pequeño al empezar?</h2>
<p>Tres cosas: que los pedidos lleguen bien a la cocina, que la caja cuadre al cerrar y saber qué se vende. Todo lo demás, como inventario detallado, varias sedes o fidelización, puede esperar a que el negocio lo pida.</p>
<p>Antes de pagar por cualquier herramienta, puedes ordenar esto hoy mismo:</p>
<ul>
<li><strong>Un solo lugar para los pedidos.</strong> Aunque sea una libreta numerada: cada pedido con número, mesa y hora. Nada de papelitos sueltos.</li>
<li><strong>Cierre de caja diario con base fija.</strong> Cuenta al abrir y al cerrar. Si quieres profundizar, aquí explicamos <a href="https://menululo.com/blog/por-que-no-cuadra-la-caja/">por qué no cuadra la caja al final del turno</a>.</li>
<li><strong>Anota lo que más se vende.</strong> Una rayita por plato durante una semana te dice más de tu carta que cualquier intuición.</li>
<li><strong>Define quién hace qué.</strong> Aunque sean dos personas, que cada una sepa qué le toca en hora pico.</li>
<li><strong>Separa tu plata de la del negocio.</strong> Tu sueldo es un gasto del restaurante, no lo que sobre en la caja.</li>
</ul>
<p>Cuando estos hábitos ya existen, un sistema los multiplica. Cuando no existen, ningún sistema los inventa por ti.</p>
<h2>¿Cómo elegir un sistema si tu restaurante es pequeño?</h2>
<p>Busca uno que puedas empezar sin pagar, que tu equipo aprenda en una jornada y que no te obligue a cambiar de herramienta cuando crezcas. Esas tres condiciones descartan buena parte de las opciones pensadas para cadenas.</p>
<p>Estas son preguntas que vale la pena hacer antes de decidir:</p>
<ul>
<li>¿Puedo empezar gratis y sin dar una tarjeta de crédito?</li>
<li>¿Funciona en una tablet o un celular que ya tengo?</li>
<li>¿Qué pasa si se va el internet en pleno almuerzo?</li>
<li>Si mañana abro un segundo local, ¿sigo en el mismo sistema?</li>
<li>¿Hay una persona real que me responda si me enredo?</li>
</ul>
<p>Si alguna respuesta es “no” o “depende”, pregunta más antes de comprometerte.</p>
<h2>¿Puedo crecer de un local a varias sedes sin cambiar de sistema?</h2>
<p>Sí, si eliges desde el principio una herramienta que lo permita. Cambiar de sistema a mitad del crecimiento es caro: se pierde el historial, hay que volver a capacitar al equipo y durante semanas nadie confía en los números.</p>
<p>menululo nació pensando en eso. Empiezas con tu único local, con pedidos, cocina y caja, y cuando llegue la segunda sede la agregas bajo el mismo negocio, cada una con su equipo, sus mesas y su caja, sin mezclar la información. Lo explicamos en <a href="https://menululo.com/como-funciona/varias-sedes/">cómo funciona tener varias sedes</a>.</p>
<p>Para empezar existe un plan Gratis, y no necesitas tarjeta de crédito: los planes pagos se pagan por transferencia o llave, como contamos en <a href="https://menululo.com/blog/pagar-software-restaurante-sin-tarjeta-de-credito/">cómo pagar el software del restaurante sin tarjeta de crédito</a>. Además, hay dos apoyos para quien más lo necesita:</p>
<ul>
<li><strong>Si estás arrancando tu emprendimiento</strong> y nos lo muestras por WhatsApp, tienes el plan Pro por $25.000 al mes durante cuatro meses, extensibles si de verdad lo usas.</li>
<li><strong>Si tu restaurante resultó afectado por el sismo del 10 de agosto de 2026</strong>, el de magnitud 7,4 con epicentro en San José del Palmar (Chocó) reportado por el <a href="https://www2.sgc.gov.co/Noticias/Paginas/SGC-actualiza-la-informacion-sobre-el-sismo-ocurrido-en-San-Jose-del-Palmar-Choco.aspx">Servicio Geológico Colombiano</a>, te damos el plan Pro gratis durante seis meses presentando la evidencia.</li>
</ul>
<h2>¿Cómo sé si me sirve a mí?</h2>
<p>Preguntando con tu caso concreto, no con un folleto. Cada negocio de comida es distinto: no funciona igual una arepería de barrio que un restaurante de corrientazo con domicilios.</p>
<p>Escríbenos por WhatsApp y cuéntanos cómo funciona hoy tu restaurante: cuántas mesas tienes, cuántas personas trabajan contigo, cómo tomas los pedidos y cómo cierras la caja. En la asesoría gratuita te decimos, sin rodeos, si te sirve ahora, qué te conviene usar primero y qué puede esperar.</p>]]></content:encoded></item>
<item><title>Offline-first: cómo diseñar apps que funcionan sin internet</title><link>https://menululo.com/blog/offline-first-explicado/</link><guid isPermaLink="true">https://menululo.com/blog/offline-first-explicado/</guid><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate><description>Qué es la arquitectura offline-first, cómo funcionan la base local, la cola de escritura y la sincronización, y cuándo conviene usarla.</description><category>Arquitectura de software</category><category>offline-first</category><category>sincronizacion</category><category>arquitectura</category><category>local-first</category><category>pwa</category><content:encoded><![CDATA[<h2>Resumen</h2>
<ul>
<li><strong>Offline-first</strong> es diseñar la app para que lea y escriba primero en el dispositivo y trate la red como algo que llega y se va.</li>
<li>Sus piezas básicas son cuatro: <strong>base de datos local</strong>, <strong>cola de escritura</strong>, <strong>motor de sincronización</strong> y <strong>resolución de conflictos</strong>.</li>
<li>No sirve para todo: cuando una operación exige confirmación inmediata del servidor, el diseño tiene que decirlo explícitamente.</li>
</ul>
<h2>¿Qué significa offline-first?</h2>
<p><strong>Offline-first es un enfoque de arquitectura en el que la aplicación funciona con los datos guardados en el dispositivo y usa la red solo para sincronizar.</strong> La falta de conexión se trata como un estado normal, no como un error.</p>
<p>La mayoría de las apps tradicionales siguen el camino contrario: cada pantalla pide datos al servidor, espera la respuesta y recién entonces muestra algo. Si la red falla, aparece un indicador de carga eterno o un mensaje de error. En una app offline-first, la interfaz lee de una base local que responde en milisegundos, y un proceso aparte se encarga de que esa base y el servidor terminen diciendo lo mismo.</p>
<p>Este cambio de orden tiene un efecto que va más allá de los túneles y los sótanos sin señal: la app se siente rápida <strong>siempre</strong>, porque ninguna interacción espera un viaje de ida y vuelta por la red.</p>
<h2>¿En qué se diferencia de un simple “modo sin conexión”?</h2>
<p><strong>Un modo sin conexión suele ser un parche que guarda en caché lo último que se vio; offline-first es una decisión que se toma en el modelo de datos desde el primer día.</strong></p>
<p>La diferencia se nota al escribir. Una caché permite <em>leer</em> sin red, pero cuando el usuario crea o edita algo, la app no sabe qué hacer. En un diseño offline-first, cada escritura tiene un camino definido: se guarda localmente, se encola, se envía cuando se pueda y se reconcilia si alguien más cambió lo mismo.</p>
<h2>¿Cuáles son las piezas de una arquitectura offline-first?</h2>
<p><strong>Son cuatro componentes que trabajan juntos: la base local, la cola de escritura, el motor de sincronización y la estrategia de conflictos.</strong></p>
<h3>1. Base de datos local</h3>
<p>Es la fuente de datos de la interfaz. Puede ser una base embebida en el dispositivo o, en la web, <a href="https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>. La regla de oro: <strong>la pantalla nunca lee directamente del servidor</strong>, siempre lee de la base local y reacciona cuando esta cambia.</p>
<h3>2. Cola de escritura (outbox)</h3>
<p>Cada cambio que hace el usuario se guarda en la base local <strong>y</strong>, en la misma transacción, se registra en una tabla de operaciones pendientes. Si se guardan por separado, un cierre inesperado de la app entre ambos pasos deja un dato que el servidor nunca va a recibir. Es la misma idea que el patrón de <a href="https://microservices.io/patterns/data/transactional-outbox.html">bandeja de salida transaccional</a> que se usa en sistemas de backend.</p>
<pre><code><span><span>// Guardar el cambio y encolarlo en UNA sola transacción local</span></span>
<span><span>async</span><span> function</span><span> guardarNota</span><span>(</span><span>db</span><span>:</span><span> LocalDb</span><span>, </span><span>nota</span><span>:</span><span> Nota</span><span>) {</span></span>
<span><span>  await</span><span> db.</span><span>transaction</span><span>(</span><span>async</span><span> (</span><span>tx</span><span>) </span><span>=></span><span> {</span></span>
<span><span>    await</span><span> tx.</span><span>put</span><span>(</span><span>"notas"</span><span>, nota);</span></span>
<span><span>    await</span><span> tx.</span><span>put</span><span>(</span><span>"outbox"</span><span>, {</span></span>
<span><span>      id: crypto.</span><span>randomUUID</span><span>(),   </span><span>// sirve también como clave de idempotencia</span></span>
<span><span>      tipo: </span><span>"nota.upsert"</span><span>,</span></span>
<span><span>      payload: nota,</span></span>
<span><span>      creadoEn: Date.</span><span>now</span><span>(),</span></span>
<span><span>      intentos: </span><span>0</span><span>,</span></span>
<span><span>    });</span></span>
<span><span>  });</span></span>
<span><span>}</span></span></code></pre>
<h3>3. Motor de sincronización</h3>
<p>Es un proceso en segundo plano con dos direcciones:</p>
<ul>
<li><strong>Subida (push):</strong> toma las operaciones de la cola, las envía al servidor y las borra solo cuando el servidor confirma.</li>
<li><strong>Bajada (pull):</strong> pide los cambios ocurridos desde la última sincronización (normalmente con un cursor o una marca de versión) y los aplica en la base local.</li>
</ul>
<p>Como la subida puede fallar a mitad de camino y reintentarse, <strong>cada operación tiene que ser idempotente</strong>: aplicarla dos veces debe dejar el mismo resultado que aplicarla una. Profundizamos en esto en <a href="https://menululo.com/blog/colas-de-reintentos/">colas de reintentos, idempotencia y backoff</a>.</p>
<h3>4. Resolución de conflictos</h3>
<p>Si dos dispositivos modifican el mismo registro mientras están desconectados, al reconectar hay dos versiones. Algo tiene que decidir cuál queda o cómo se combinan.</p>
<h2>¿Cómo se sincroniza cuando vuelve la conexión?</h2>
<p><strong>El motor detecta la reconexión, vacía la cola en orden y luego descarga lo que cambió en el servidor.</strong> El orden importa: subir primero evita que un cambio remoto pise uno local que todavía no se envió.</p>
<p>Un bucle simplificado se ve así:</p>
<pre><code><span><span>async</span><span> function</span><span> sincronizar</span><span>(</span><span>db</span><span>:</span><span> LocalDb</span><span>, </span><span>api</span><span>:</span><span> Api</span><span>) {</span></span>
<span><span>  // 1. Subir pendientes, en orden de creación</span></span>
<span><span>  for</span><span> (</span><span>const</span><span> op</span><span> of</span><span> await</span><span> db.</span><span>getAll</span><span>(</span><span>"outbox"</span><span>, { orderBy: </span><span>"creadoEn"</span><span> })) {</span></span>
<span><span>    try</span><span> {</span></span>
<span><span>      await</span><span> api.</span><span>aplicar</span><span>(op, { idempotencyKey: op.id });</span></span>
<span><span>      await</span><span> db.</span><span>delete</span><span>(</span><span>"outbox"</span><span>, op.id);</span></span>
<span><span>    } </span><span>catch</span><span> (e) {</span></span>
<span><span>      if</span><span> (</span><span>esErrorTransitorio</span><span>(e)) </span><span>break</span><span>;        </span><span>// reintentar más tarde con backoff</span></span>
<span><span>      await</span><span> db.</span><span>moverA</span><span>(</span><span>"outbox_fallidas"</span><span>, op);   </span><span>// error permanente: no bloquear la cola</span></span>
<span><span>    }</span></span>
<span><span>  }</span></span>
<span><span>  // 2. Bajar cambios desde el último cursor</span></span>
<span><span>  const</span><span> cursor</span><span> =</span><span> await</span><span> db.</span><span>getMeta</span><span>(</span><span>"cursor"</span><span>);</span></span>
<span><span>  const</span><span> { </span><span>cambios</span><span>, </span><span>nuevoCursor</span><span> } </span><span>=</span><span> await</span><span> api.</span><span>cambiosDesde</span><span>(cursor);</span></span>
<span><span>  await</span><span> db.</span><span>transaction</span><span>(</span><span>async</span><span> (</span><span>tx</span><span>) </span><span>=></span><span> {</span></span>
<span><span>    for</span><span> (</span><span>const</span><span> c</span><span> of</span><span> cambios) </span><span>await</span><span> aplicarConResolucion</span><span>(tx, c);</span></span>
<span><span>    await</span><span> tx.</span><span>setMeta</span><span>(</span><span>"cursor"</span><span>, nuevoCursor);</span></span>
<span><span>  });</span></span>
<span><span>}</span></span></code></pre>
<p>Dos detalles que suelen olvidarse: el cursor se actualiza <strong>en la misma transacción</strong> que los cambios aplicados, y una operación que falla de forma permanente se aparta para revisión en lugar de bloquear todas las que vienen detrás.</p>
<h2>¿Qué pasa cuando dos dispositivos editan lo mismo?</h2>
<p><strong>Hay un conflicto, y la estrategia para resolverlo depende del tipo de dato.</strong> No existe una solución universal.</p>
<p>Las opciones más usadas son:</p>
<ul>
<li><strong>Last-write-wins (LWW):</strong> gana la última escritura. Es simple, pero descarta cambios en silencio, y “la última” depende de relojes que pueden estar desfasados.</li>
<li><strong>Fusión por campo:</strong> si un dispositivo cambió el título y otro la descripción, se conservan ambos cambios. Solo hay conflicto real si tocaron el mismo campo.</li>
<li><strong>Tipos de datos que convergen solos (CRDT):</strong> estructuras diseñadas matemáticamente para que todas las réplicas lleguen al mismo estado sin coordinación, como describen <a href="https://inria.hal.science/inria-00609399v2/document">Shapiro y colegas (2011)</a>.</li>
<li><strong>Preguntar al usuario:</strong> útil cuando el dato es valioso y la decisión no se puede automatizar.</li>
</ul>
<p>Cada una tiene costos distintos. Los explicamos con ejemplos en <a href="https://menululo.com/blog/algoritmos-sincronizacion-datos/">algoritmos de sincronización: LWW, relojes vectoriales y CRDT</a>.</p>
<h2>¿Cómo se hace offline-first en la web?</h2>
<p><strong>Con tres herramientas del navegador: service workers, IndexedDB y, donde esté disponible, Background Sync.</strong></p>
<ul>
<li>Un <strong>service worker</strong> es un script que corre en un hilo aparte y puede interceptar peticiones de red. Permite servir la app aunque no haya conexión, como explica la guía de <a href="https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Offline_and_background_operation">MDN sobre operación offline y en segundo plano</a>.</li>
<li><strong>IndexedDB</strong> es la base de datos transaccional del navegador, adecuada para la base local y la cola de escritura.</li>
<li>La <strong>API de Background Synchronization</strong> permite diferir tareas hasta que haya una conexión estable. Según <a href="https://developer.mozilla.org/en-US/docs/Web/API/Background_Synchronization_API">MDN</a>, no forma parte de Baseline porque no funciona en algunos de los navegadores más usados, así que conviene tener un respaldo que escuche el evento <code>online</code> y sincronice al abrir la app.</li>
</ul>
<h2>¿Qué es local-first y en qué se parece?</h2>
<p><strong>Local-first es una idea emparentada pero más ambiciosa: además de funcionar sin conexión, busca que los datos sigan siendo del usuario aunque el servicio desaparezca.</strong></p>
<p>El término viene del ensayo <a href="https://www.inkandswitch.com/essay/local-first/"><em>Local-first software</em></a> publicado en 2019 por Martin Kleppmann, Adam Wiggins, Peter van Hardenberg y Mark McGranaghan, del laboratorio Ink &#x26; Switch. Proponen siete ideales: rapidez, múltiples dispositivos, trabajo sin conexión, colaboración, longevidad, privacidad y control del usuario. Offline-first cubre sobre todo los tres primeros; local-first va por todos.</p>
<h2>¿Cuándo no conviene offline-first?</h2>
<p><strong>Cuando la operación solo es válida si el servidor la confirma en ese instante.</strong> Ejemplos genéricos:</p>
<ul>
<li>Reservar el último asiento de un vuelo o la última unidad de un inventario compartido.</li>
<li>Transferir dinero, donde el saldo debe verificarse contra la fuente central.</li>
<li>Cambiar permisos de acceso, donde un dispositivo desconectado no debería seguir actuando con permisos revocados.</li>
</ul>
<p>En esos casos se suele usar un <strong>diseño mixto</strong>: la mayor parte de la app funciona sin conexión y las operaciones críticas se marcan como “requiere conexión”, con un mensaje claro para el usuario. También hay que considerar el costo: sincronización, migraciones del esquema local y pruebas de conflictos agregan complejidad real.</p>
<h2>¿Qué errores son los más comunes?</h2>
<p><strong>Casi todos vienen de tratar la sincronización como un detalle y no como parte del modelo de datos.</strong></p>
<ol>
<li><strong>Guardar y encolar por separado</strong>, lo que pierde cambios si la app se cierra en el medio.</li>
<li><strong>Operaciones no idempotentes</strong>, que duplican registros cuando un envío se reintenta.</li>
<li><strong>Usar la hora del dispositivo como verdad</strong>, cuando los relojes de los dispositivos pueden estar desfasados.</li>
<li><strong>Borrar registros de verdad</strong> en lugar de marcarlos como eliminados, lo que hace que otro dispositivo los “resucite” al sincronizar.</li>
<li><strong>Olvidar las migraciones locales:</strong> un usuario puede abrir una versión vieja de la app semanas después, con datos en un esquema antiguo y operaciones pendientes en la cola.</li>
<li><strong>Probar solo con buena conexión.</strong> Las fallas aparecen con redes lentas, cortes a mitad de envío y dos dispositivos editando a la vez.</li>
</ol>
<h2>Para cerrar</h2>
<p>Offline-first no es una función que se agrega al final: es invertir el orden de la arquitectura para que el dispositivo sea el punto de partida y la red, un canal de sincronización. Bien hecho, da apps rápidas y resistentes; mal hecho, da datos duplicados y cambios perdidos. Si vas a construir la parte de red, sigue con <a href="https://menululo.com/blog/colas-de-reintentos/">colas de reintentos</a>; si te preocupan los conflictos, con <a href="https://menululo.com/blog/algoritmos-sincronizacion-datos/">algoritmos de sincronización</a>.</p>]]></content:encoded></item>
<item><title>Pedidos por WhatsApp: cómo dejar de perder plata a mediodía</title><link>https://menululo.com/blog/pedidos-whatsapp-desorganizados/</link><guid isPermaLink="true">https://menululo.com/blog/pedidos-whatsapp-desorganizados/</guid><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate><description>Si el WhatsApp de tu restaurante explota en hora pico y los pedidos se cruzan, estos pasos te ayudan a ordenarlo hoy sin dejar de usarlo.</description><category>Domicilios y WhatsApp</category><category>whatsapp-business</category><category>hora-pico</category><category>pyme</category><category>emprendedores</category><content:encoded><![CDATA[<p>Son las 12:40. En la cocina ya salieron tres almuerzos y el celular del negocio vibra sin parar: una clienta pregunta si hay bandeja paisa, otro manda un audio de dos minutos con el pedido de su oficina y alguien escribe “¿y lo mío?” por tercera vez. Tú contestas con una mano mientras empacas con la otra. A la 1:15 descubres que el pedido de la oficina nunca pasó a cocina: se quedó enterrado en el chat, debajo de veinte conversaciones más.</p>
<p>Si esa escena te suena, no es que tú o tu equipo sean desordenados. Es que estás usando una herramienta de conversación como si fuera un sistema de pedidos.</p>
<h2>¿Por qué WhatsApp solo no alcanza en hora pico?</h2>
<p>Porque un chat está hecho para conversar, no para hacer fila. Los mensajes se ordenan por el último que llegó, no por el pedido que lleva más tiempo esperando, así que en hora pico lo urgente se hunde y lo reciente flota.</p>
<p>A eso súmale que cada cliente pide a su manera: unos por texto, otros por audio, otros con una foto del menú encerrada en un círculo. Quien atiende tiene que traducir cada mensaje, anotarlo en otro lado y acordarse de a quién ya le respondió. Con cinco conversaciones se puede. Con veinte a la vez, la memoria de cualquier persona falla, por buena que sea.</p>
<h2>¿Cuánto te cuesta un pedido mal tomado?</h2>
<p>Mucho más que el plato. Un pedido que se pierde o sale equivocado cuesta la comida que se bota o se rehace, el tiempo de cocina que se le quita a los demás pedidos y, sobre todo, un cliente que la próxima vez le escribe a otro restaurante.</p>
<p>Piensa en lo que pasa detrás de un solo error: la cocina prepara lo que no era, el domiciliario hace dos viajes, tú regalas algo para calmar al cliente y el resto de pedidos se atrasa diez minutos. Ninguna de esas pérdidas aparece en el cierre de caja como “error de WhatsApp”. Se esconden como menos ventas, más desperdicio y clientes que dejan de escribir. Por eso este dolor se subestima tanto: no deja rastro en los números, pero sí en el bolsillo.</p>
<h2>¿Qué te pasa a ti cuando el celular no para?</h2>
<p>Te vuelves el cuello de botella del negocio. Si solo tú entiendes el chat, no puedes soltar el celular ni para ir al baño, y cada mediodía se siente como apagar incendios en lugar de administrar un restaurante.</p>
<p>Muchos dueños terminan el día sin saber cuántos pedidos entraron por chat, cuántos se cayeron y cuántos clientes se quedaron esperando una respuesta. Esa incertidumbre cansa más que el trabajo mismo. Y cuando le pasas el celular a alguien del equipo aparece otro miedo: que se le escape algo y no te enteres hasta que el cliente se queje.</p>
<h2>¿Cómo ordenar los pedidos por WhatsApp desde hoy, sin software?</h2>
<p>Con un formato fijo, una persona responsable y una confirmación obligatoria. Estos pasos no cuestan nada y puedes aplicarlos en el turno de mañana:</p>
<ol>
<li><strong>Mensaje de bienvenida con el menú del día.</strong> Deja listo un texto que envías apenas alguien escribe: el menú con precios, el horario y cómo pedir. Así te ahorras las mismas diez preguntas con cada cliente.</li>
<li><strong>Plantilla de pedido.</strong> Pide que el cliente responda con un formato simple: nombre, qué quiere, si es para recoger o a domicilio, dirección y forma de pago. Si manda un audio, tú lo pasas a la plantilla antes de enviarlo a cocina.</li>
<li><strong>Un dueño del celular en hora pico.</strong> Una sola persona atiende el chat entre las 12 y las 2. No la que cobra, no la que cocina. Si nadie es responsable, todos creen que otro ya respondió.</li>
<li><strong>Confirmación con resumen y total.</strong> Ningún pedido entra a cocina sin que el cliente haya recibido un resumen con el total y haya respondido que sí. Este paso, por sí solo, elimina buena parte de los “yo no pedí eso”.</li>
<li><strong>Estados visibles.</strong> Marca cada chat como nuevo, confirmado, en cocina o despachado. Si tu aplicación de chat no permite etiquetas, una hoja con cuatro columnas pegada en la pared de la cocina funciona igual.</li>
<li><strong>Tiempos honestos.</strong> Si en hora pico un pedido tarda 45 minutos, dilo desde el primer mensaje. El cliente perdona la espera anunciada, no la sorpresa.</li>
<li><strong>Revisión de cinco minutos al cierre.</strong> Recorre los chats del día y anota cuántos pedidos entraron, cuántos tuvieron un problema y por qué. En dos semanas vas a ver el patrón que hoy no ves.</li>
</ol>
<p>Si aplicas solo los pasos 2 y 4, ya vas a notar menos errores esta misma semana. Y si tus pedidos se complican justo entre la cocina y la puerta del cliente, sigue con <a href="https://menululo.com/blog/organizar-domicilios/">cómo organizar los domicilios de tu restaurante</a>.</p>
<h2>¿Hay que dejar de usar WhatsApp para ordenar los pedidos?</h2>
<p>No. Tus clientes ya están ahí y no tiene sentido obligarlos a cambiar de canal. Lo que cambia es lo que pasa detrás del chat: que cada pedido quede registrado, con un estado y un responsable, en lugar de vivir solo en la memoria de quien tiene el celular.</p>
<p>Pedirle al cliente que descargue algo o que llene un formulario largo suele salir peor que el desorden. La regla es sencilla: el cliente escribe como siempre y el orden lo pones tú por dentro.</p>
<h2>¿Qué cambia cuando un sistema toma el relevo?</h2>
<p>Cambia que el chat deja de ser el lugar donde se guarda el pedido. Un sistema pensado para restaurantes pone la conversación al lado del pedido, lo manda a cocina apenas se confirma y deja ver en qué estado va cada uno, sin que nadie tenga que acordarse.</p>
<p>También puede encargarse de lo repetitivo, como el menú, el horario o la dirección, y apartarse cuando hace falta una persona, por ejemplo cuando el cliente manda su ubicación o pide algo fuera de lo común. El resultado no es menos trato humano: es que tu gente usa su tiempo en lo que sí necesita criterio. La idea completa está en <a href="https://menululo.com/como-funciona/whatsapp-asistente/">cómo funciona el asistente de WhatsApp</a>.</p>
<h2>¿Por dónde empiezas?</h2>
<p>Empieza por la plantilla y la confirmación: son gratis y funcionan desde mañana. Cuando sientas que el volumen te supera aunque todo esté ordenado, ese es el momento de pensar en un sistema, no antes.</p>
<p>Si quieres, cuéntanos por WhatsApp cómo te llegan hoy los pedidos, aunque sea con una captura del chat a mediodía, y te decimos sin compromiso qué tanto se puede ordenar. Puedes empezar con el plan Gratis y no necesitas tarjeta de crédito.</p>]]></content:encoded></item>
<item><title>¿Por qué no me cuadra la caja al final del turno?</title><link>https://menululo.com/blog/por-que-no-cuadra-la-caja/</link><guid isPermaLink="true">https://menululo.com/blog/por-que-no-cuadra-la-caja/</guid><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate><description>Las causas más comunes de una caja que no cuadra en un restaurante, cuánto te cuesta al mes y qué hacer desde hoy para cerrar cada turno tranquilo.</description><category>Caja y cierre</category><category>cuadre-de-caja</category><category>caja</category><category>pyme</category><category>hora-pico</category><content:encoded><![CDATA[<p>Son las once de la noche. Ya se fue el último cliente, la cocina está limpia y tú estás con la calculadora frente a la caja. Cuentas una vez. Cuentas otra. Faltan $38.000. No es una fortuna, pero ayer faltaron $15.000 y un día de la semana pasada sobraron $10.000 que nadie supo explicar. Te vas a dormir pensando en quién fue, o si fuiste tú mismo el que se equivocó dando un vuelto.</p>
<p>Si esa escena te suena, no estás solo, y casi nunca se trata de un robo. La mayoría de las veces la caja no cuadra por desorden, no por mala fe. Y el desorden sí tiene arreglo.</p>
<h2>¿Por qué no cuadra la caja de un restaurante?</h2>
<p>Casi siempre por una de cinco causas: ventas que no se registraron, vueltos mal dados, salidas de efectivo sin anotar, transferencias mezcladas con el efectivo y turnos que se entregan sin contar. Rara vez es una sola; lo normal es que se sumen.</p>
<p>Míralas una por una:</p>
<ol>
<li><strong>Ventas que no se anotaron.</strong> En hora pico alguien cobra un jugo o una empanada “de pasada” y no lo registra. La plata entra, pero el cuaderno no sabe que existió. Aquí la caja <em>sobra</em>, y eso también es una señal de desorden.</li>
<li><strong>Vueltos mal dados.</strong> Con afán, un billete de $50.000 se confunde con uno de $20.000. Un solo error así borra la ganancia de varios platos.</li>
<li><strong>Salidas sin registrar.</strong> Se sacó para el gas, para el domiciliario, para el hielo que se acabó. “Luego lo anoto” es la frase más cara de un restaurante.</li>
<li><strong>Transferencias mezcladas con efectivo.</strong> El cliente pagó por transferencia, pero el pedido quedó como efectivo. Al contar billetes, falta justo ese valor.</li>
<li><strong>Turnos que se entregan sin contar.</strong> Si la caja pasa de una persona a otra sin conteo, cualquier diferencia queda huérfana: nadie responde por ella.</li>
</ol>
<h2>¿Cuánto le cuesta a tu restaurante una caja que no cuadra?</h2>
<p>Más de lo que parece, porque las diferencias pequeñas se repiten todos los días. Haz la cuenta con tus propios números: si en promedio se te pierden $20.000 por turno y abres 26 días al mes, son $520.000 mensuales que salen directo de tu ganancia, no de tus ventas.</p>
<p>Y en Colombia el efectivo sigue siendo protagonista. Según el <a href="https://www.banrep.gov.co/es/blog/efectivo-instrumento-pago-preferido-publico-comercio-colombia">Banco de la República</a>, cerca de ocho de cada diez pagos habituales se hacen en efectivo. En un negocio de comida, donde los tickets son bajos y la rotación es alta, eso significa muchos billetes pasando por muchas manos en muy pocas horas.</p>
<p>Pero el costo no es solo la plata perdida. Una caja sin control te deja sin saber si el mes fue bueno o malo, si puedes subirle el sueldo a alguien o si te alcanza para esa nevera que hace falta. Tomas decisiones a ciegas, y eso sale todavía más caro.</p>
<h2>¿Qué le hace a un dueño una caja que nunca cuadra?</h2>
<p>Te quita la confianza en tu equipo y la tranquilidad. Empiezas a sospechar de la persona que más te ayuda, a revisar todo tú mismo y a no poder tomarte ni una tarde libre, porque “si no estoy, se pierde plata”.</p>
<p>Ese es el costo que no aparece en ninguna cuenta: terminar trabajando más horas que nadie, cuidando una caja en lugar de hacer crecer el negocio. Y cuando la desconfianza se nota en el ambiente, la gente buena se cansa y se va.</p>
<h2>¿Cómo saber en qué turno se da la diferencia?</h2>
<p>Contando al abrir y al cerrar cada turno, no solo al final del día. Cuando cada entrega de caja tiene un conteo y una persona responsable, la diferencia deja de ser un misterio y se convierte en un dato con fecha, hora y nombre.</p>
<p>No se trata de vigilar a nadie. Se trata de que cada quien responda solo por lo que le tocó. Tu mejor cajero va a agradecerlo, porque deja de cargar con la sospecha por errores ajenos.</p>
<h2>¿Qué puedes hacer desde hoy para que la caja cuadre?</h2>
<p>Puedes empezar esta misma noche, con un cuaderno y una calculadora. Estos son los hábitos que más diferencia hacen en los primeros siete días:</p>
<ul>
<li><strong>Base fija al abrir.</strong> Define un monto de base en billetes y monedas y cuéntalo delante de quien recibe la caja.</li>
<li><strong>Todo pedido se anota antes de cobrarse.</strong> Sin excepciones, ni para el tinto del vecino.</li>
<li><strong>Una hoja para las salidas.</strong> Cada peso que sale de la caja lleva monto, motivo y firma. Si no hay recibo, al menos una foto.</li>
<li><strong>Separa por forma de pago.</strong> Al cerrar, anota por aparte el efectivo, las transferencias y cualquier otro medio. Así sabes si la diferencia está en los billetes o en un pago mal marcado.</li>
<li><strong>Conteo a cuatro manos en cada cambio de turno.</strong> Quien entrega y quien recibe cuentan juntos y firman.</li>
<li><strong>La plata del dueño va aparte.</strong> Si necesitas sacar para algo tuyo, anótalo como retiro. La caja del negocio no es tu billetera.</li>
<li><strong>Revisa la semana, no el día.</strong> Un faltante aislado puede ser un error; el mismo faltante en el mismo turno, tres veces, es un patrón que vale la pena conversar.</li>
</ul>
<p>Hay dos fugas más que suelen esconderse detrás de una caja descuadrada. La primera son los platos regalados sin registro: si te pasa, lee <a href="https://menululo.com/blog/registrar-cortesias-sin-perder-control/">cómo regalar cortesías sin perder el control</a>. La segunda empieza antes de cobrar, en pedidos que nunca llegaron bien a la cocina: la explicamos en <a href="https://menululo.com/blog/comandas-perdidas/">comandas perdidas, el error que no aparece en ningún reporte</a>.</p>
<h2>¿Cómo ayuda un sistema a cerrar la caja sin sorpresas?</h2>
<p>Vuelve automático lo que en papel depende de la disciplina de todos. Cada pedido queda registrado antes de cobrarse, cada turno se abre y se cierra con su conteo, y la diferencia aparece separada por forma de pago en el momento del cierre, no una semana después.</p>
<p>Así se vive con menululo: la caja se abre con su base, cada salida de efectivo lleva su motivo y su soporte, y al cerrar el turno ves de inmediato cuánto debería haber y cuánto hay, en efectivo y en cada medio de pago. Los cierres anteriores quedan guardados, así que puedes comparar semanas sin buscar cuadernos viejos. Si quieres ver el recorrido completo, está en <a href="https://menululo.com/como-funciona/caja-y-cierre/">cómo funciona la caja y el cierre</a>.</p>
<h2>¿Por dónde empiezo?</h2>
<p>Empieza por contar al abrir y al cerrar cada turno durante una semana. Con eso solo ya vas a saber si tu problema es de registro, de vueltos o de salidas.</p>
<p>Y si quieres que lo miremos juntos, escríbenos por WhatsApp. En la asesoría gratuita nos cuentas cómo cierras hoy la caja y te decimos, con tus números, por dónde se te está escapando la plata y qué cambiarías primero. Sin compromiso y sin tecnicismos.</p>]]></content:encoded></item>
</channel>
</rss>