Mauricio Illobre

Caso de estudio

Loja Rentável

Un sistema de gestión para tiendas físicas donde cada venta descuenta el stock, entra en la caja y aparece en el resultado del mes.

Fecha
Agosto 2026
Tipo
Producto propio, para Ilha Point
Idiomas de la app
Portugués y español
Estado
Activo
Ver sitio ↗
Pantalla de venta de Loja Rentável con productos, forma de pago y total

Contexto

Partió de una tienda real

Ilha Point necesitaba registrar ventas, caja y stock en un mismo lugar y saber cuánto ganaba cada mes. Con esas necesidades armé un producto que también sirve a otras tiendas parecidas.

Problema

Los números estaban separados

Cuando las ventas, la caja y el stock se anotan por separado, el dueño no sabe cuánto ganó hasta sentarse a hacer cuentas. La aplicación junta todo y muestra el resultado sin planillas.

Qué construí

La aplicación

  • Punto de venta con varios medios de pago, cuotas y vendedor asignado.
  • Caja con apertura, cierre e historial.
  • Stock con lector de código de barras, alertas de stock bajo, etiquetas e importación de productos.
  • Gastos y cuentas por pagar, con aviso de vencidas.
  • Metas del día y del mes, y métricas como ticket medio.
  • Clientes, proveedores, vendedores, presupuestos y cambios.
  • Registro de tiendas y acceso para empleados.

Cómo está hecho

Decisiones técnicas

  • Next.js y TypeScript, con Supabase para el login y los datos de cada tienda.
  • Deploy en Cloudflare Workers con OpenNext. Las fotos de producto se guardan en R2.
  • Webhook de Hotmart: cuando alguien compra el producto, se crea su tienda automáticamente.
  • Interfaz en portugués y español con next-intl.
  • Tests con Vitest.
  • Next.js
  • TypeScript
  • Supabase
  • Cloudflare Workers
  • Hotmart

Pantallas

Pantalla de caja de Loja Rentável
Caja
Pantalla de stock con totales, productos más vendidos y listado
Stock
Pantalla de metas de venta
Metas

Estado

Publicado y en uso

Se vende como producto en Hotmart y sigo sumando mejoras.

mauricioillobre@gmail.com · LinkedIn

Siguiente casoEn Cada Rincón →