Saltar al contenido

abr. 2022 – actualidad

Meniuz

Backend & DevOps Lead

SaaS multi-tenant para restaurantes en Ecuador. Iniciativa de Kevin Morales; Andrés se sumó y lideró la evolución técnica del MVP a producción.

TypeScriptNode.jsExpressGraphQLMySQLRedisDockerAWSNext.js

Contexto

Meniuz es un SaaS para la industria gastronómica en Ecuador. Es una iniciativa de Kevin Morales. Andrés se sumó en la etapa inicial, en paralelo a su trabajo principal, y lideró la evolución técnica: de una web de menús a un SaaS con más de 500 establecimientos activos. Su rol es Backend & DevOps Lead: backend, infraestructura, monitoreo, observabilidad y redes.

Problema

Había que pasar de una web inicial a un ecosistema web y móvil (iOS y Android) que sostuviera muchos restaurantes, menús, campañas y soporte, sin convertir el crecimiento en una carga de despliegue e infraestructura.

Decisiones

Las primeras versiones usaban REST. Al crecer los servicios hacían falta más campos, y la web y la app móvil tenían que hacer varias peticiones en algunas pantallas: la aplicación se volvía lenta. Se migró a GraphQL como capa de comunicación. El cliente elige qué campos trae, y la app móvil dejó de romperse por valores faltantes o por cambios inesperados en la API.

Los microservicios se descartaron por ahora: no eran necesarios en esta etapa. Es un monolito modular, pensado para poder partirse en servicios más adelante.

El alta de restaurantes se automatizó con web scraping integrado con Google Maps. El backoffice usa control de acceso por roles (RBAC) para menús, campañas y soporte.

Arquitectura

WEB NEXTAPP MOVILBACKOFFICEGRAPHQL APIMYSQLREDISQDRANT
Web y backoffice en Vercel. API GraphQL, MySQL, Redis y Qdrant en EC2.

El MVP estuvo en Railway. Con un producto más maduro y usuarios reales, el backend corre en AWS (EC2), con más capacidad de cómputo. El backoffice y el frontend web (Next.js) están en Vercel.

La API es GraphQL sobre Express: un monolito modular en EC2. En la misma instancia corren MySQL, Redis y Qdrant (Docker) para datos, caché y RAG + OCR. La web, el backoffice y la app móvil hablan con esa API.

Resultados

  • Más de 500 establecimientos activos.
  • Tiempos de despliegue reducidos un 60 % con pipelines de CI/CD (Docker, GitHub).
  • Costos de infraestructura optimizados un 25 %.
  • Sistema de fidelización gamificado (cartillas digitales, retos y recompensas escaneables) que aumentó la retención y el consumo recurrente en los locales.

Qué haría distinto

De momento no cambiaría muchas cosas. El monolito modular está listo para partirse en servicios cuando la escala lo pida.