Saltar al contenido
SaaSEn producción2026

Vendaí

Ecosistema POS offline-first para pequeños comercios — escritorio con Electron, nube de sincronización y app Flutter

Electron 42React 19Vite 7 (electron-vite)Tailwind CSS v4Flutter / DartNode.js 22
Funciona enmacOSWindowsMicrosoft StoreAndroidiOS
usevendai.com.br
informes en 7 categorías
50+
apps: escritorio, nube y celular
3
de la operación funciona offline
100%
bancos con boleto y CNAB
7

01

Visión General

Vendaí nació dentro de una tienda de alimento para animales y se convirtió en un producto para cualquier pequeño comercio. Es un ecosistema de tres partes, todas construidas por mí: el POS de escritorio (Electron + React 19 + SQLite) que funciona en el mostrador y trabaja 100% offline; la API de sincronización (Node + Express + PostgreSQL en Railway), la 'nube premium' que recibe todo del escritorio y devuelve lo que se modificó en el celular; y la app Flutter (Android e iOS) para que el dueño siga la facturación, las ventas, el inventario y la caja desde donde esté. Cada registro tiene UUID, cola de sincronización e historial inmutable — las ventas y los movimientos nunca se borran, las cancelaciones generan nuevos eventos. El sistema se distribuye como instalador para macOS/Windows, a través de la Microsoft Store (MSIX) y de la Play Store, con actualización automática, telemetría con Sentry, un manual completo dentro de la app y una identidad visual propia (sistema de diseño, sitio web y materiales para las tiendas de aplicaciones).

Mi rol

Desarrollador full-stack en solitario — producto, arquitectura offline-first, escritorio con Electron/React/SQLite, API de sincronización con Node/PostgreSQL, app Flutter, integraciones con impresora térmica y balanza etiquetadora, branding, sitio web, publicación en las tiendas de aplicaciones y soporte a los comerciantes.


Categoría

SaaS

Año

2026

Estado

En producción

Plataformas

macOSWindowsMicrosoft StoreAndroidiOS

Tres aplicaciones, una sola tienda. El escritorio es el origen de los eventos, la nube es el punto de encuentro y el celular es la ventana del dueño.

POS de escritorio

Funciona en el mostrador, 100% offline

ElectronReact 19SQLite

Vendaí Nube

API de sincronización (premium)

NodeExpressPostgreSQLRailway

App de gestión

Android e iOS

FlutterRiverpodFCM

Sincronización: Sincronización bidireccional: el escritorio envía todo; el celular devuelve clientes y movimientos de inventario.


02

El Problema

Los pequeños comercios brasileños operan con un cuaderno de fiado, una caja que se cierra 'de cabeza', un inventario que se descubre justo cuando algo se acaba y boletos de proveedores desparramados en el cajón. Los sistemas POS del mercado o dependen de una internet estable — que en el interior y en los comercios de barrio se cae — o son caros y están hechos para cadenas. Y el dueño, cuando sale de la tienda, pierde por completo la visibilidad de lo que pasa en el mostrador.

03 — La Solución

Un POS de escritorio offline-first, rápido de operar en la hora pico (atajos F2–F9, lector USB, cambio en tiempo real), que se encarga de toda la operación — ventas, caja, inventario, clientes y fiado, proveedores, cuentas por pagar, PIX, boletos e informes — y se sincroniza con la nube cuando hay conexión. El dueño lo sigue todo desde el celular, el cajero solo ve lo que necesita y la tienda sigue vendiendo aunque no haya internet.


04

Por dentro del producto

El sistema en funcionamiento, grabado de la aplicación real con una tienda de demostración — ninguna pantalla es un mockup.

01

POS

Una venta en segundos, con el teclado o el lector

El producto pasa por el lector y entra directo al carrito. Cantidad, descuento, cliente y pago tienen su propia tecla — el operador no despega las manos del teclado. El cambio aparece mientras se digita el monto y la confirmación sale con el número de venta y el comprobante en la impresora térmica.

  • Atajos F2–F9 en la barra inferior todo el tiempo
  • Alerta del fiado pendiente al vincular al cliente
  • Pago dividido en varias formas, con el monto neto antes de finalizar
POS
02

Inventario

El inventario avisa antes de que se acabe

Ingreso de mercadería con proveedor, factura y costo — si la compra fue a plazo, las cuentas por pagar se crean solas. Cada ajuste tiene motivo y responsable, y la pantalla 'Hoy' muestra lo que hay que reponer antes que cualquier KPI.

  • Alertas de inventario mínimo y de vencimiento próximo
  • Historial completo de movimientos
  • Importación y exportación por CSV
Inventario
03

Finanzas

Boletos de proveedores leídos por el código de barras

La agenda de pagos organiza lo que venció, lo que vence hoy, en 7 días y en el mes. El código de barras del boleto (o de la cuenta de luz) se lee y se valida al instante, y reconoce cerca de 90 emisores. Pago parcial, en lote, con intereses y descuento, reversión y adjuntos.

  • Indicador de vencimientos en la barra lateral
  • 12 informes con exportación a CSV, Excel y PDF
  • Emisión de boletos con CNAB 400/240 para 7 bancos
Finanzas
04

Informes

Más de 50 análisis, sin salir del sistema

Flujo de caja con saldo acumulado, utilidad, curva ABC, rotación de inventario, horas pico, formas de pago con comisiones, ranking de clientes, vencimientos, auditoría. Búsqueda, filtros, KPIs arriba y gráfico solo donde la serie aporta algo.

  • Exportación a CSV, Excel y PDF, e impresión en A4
  • Historial de ventas con reimpresión y cancelación con reversión
  • Todo calculado localmente — funciona offline
Informes
05

Recepción Segura

Conteo ciego y un registro que nadie edita

La factura entra por XML o clave, pero no mueve el inventario. Quien descarga cuenta sin ver lo esperado; el sistema compara pedido × factura × físico ítem por ítem, muestra la discrepancia en dinero y lleva la decisión a quien tiene el nivel de aprobación — quien hizo el conteo no aprueba su propia diferencia.

  • Inventario en cuarentena y devolución al proveedor
  • Inventario y cuentas por pagar actualizados en una única transacción
  • Registro append-only firmado por dispositivo, con aprobación remota desde la app
Recepción Segura

05

9 flujos en video

Cada video muestra una tarea completa, de principio a fin. Haz clic para verlo con controles.


06

Funcionalidades Principales

01

POS de mostrador hecho para la hora pico

Búsqueda por nombre, código o lector de código de barras USB, descuentos por ítem y generales, pago dividido (efectivo, PIX, débito, crédito y fiado), cambio calculado mientras escribes, cliente vinculado con alerta de fiado y atajos F2–F9 siempre visibles.

02

100% offline, sincroniza cuando puede

El inicio de sesión, las ventas, el inventario, la caja, los informes y la impresión funcionan sin internet. Toda escritura va a una cola de sincronización con UUID y se envía a la nube con reintentos cuando vuelve la conexión — nada se pierde.

03

Inventario con ingreso de mercadería

Ingreso con proveedor, factura, costo y forma de pago — una compra a plazo genera las cuentas por pagar automáticamente. Salidas, ajustes con motivo y responsable, alertas de mínimo y de vencimiento, importación y exportación en CSV.

04

Finanzas: cuentas por pagar y boletos

Agenda de pagos (vencidas · hoy · 7 días · mes) con lectura y validación del código de barras de boletos (47 dígitos) y cuentas de servicios (48), pago parcial/en lote con intereses y descuento, adjuntos y 12 informes. Módulo de emisión de boletos con CNAB 400/240 y formatos de 7 bancos.

05

Centro con más de 50 informes

Finanzas, ventas, inventario, clientes, productos, caja y auditoría: flujo de caja, utilidad, curva ABC, rotación de inventario, horas pico, comisiones de tarjeta, proyección de cuentas por cobrar. KPIs arriba, gráficos donde la serie aporta algo y exportación a CSV, Excel y PDF.

06

Recepción Segura

Importación de NF-e por XML o clave, conteo ciego (quien cuenta no ve lo esperado), comparación triple pedido × factura × físico, discrepancias con nivel de aprobación, inventario en cuarentena y un registro append-only firmado por dispositivo.

07

App de gestión en el celular

Facturación, ventas, ticket promedio, inventario bajo, clientes y caja en Android e iOS — la misma tienda del escritorio, leída desde la nube. Vinculación por clave de licencia, notificaciones push y tema oscuro.

08

Hardware de tienda y distribución

Impresora térmica con cola de impresión confiable (nunca 'impreso' sin confirmación), balanza y etiquetadora (MGV 7), PIX estático con código QR en el mostrador, instaladores para macOS/Windows, Microsoft Store (MSIX) y actualización automática.


07

Pantallas del sistema

Capturas reales del producto, organizadas por módulo. Haz clic en cualquier pantalla para ampliarla.

Panel del día: atajos, pendientes accionables, facturación, ventas, ticket promedio e inventario bajo
Ventas por día del mes
Más vendidos con ingresos por producto
La misma pantalla en tema oscuro oscuro
Búsqueda global (F1): producto, cliente o venta
POS en reposo: búsqueda, atajos F2–F9 y vitrina de los más vendidos
Carrito con ítems, subtotal y total
Pago en efectivo con cambio calculado en tiempo real
Confirmación de la venta con número, total y cambio
Código QR PIX por el monto exacto, generado offline
POS en tema oscuro oscuro
Productos con categoría, marca, precio, inventario y estado

08

En el celular

La misma tienda del escritorio, en la palma de la mano: los números de la app coinciden con los del mostrador porque vienen de la misma base sincronizada.

Hoy
Ventas
Detalle de la venta
Inventario bajo
Producto
Clientes
Caja
Informes
Sincronización
Tema oscuro

09

Tecnologías

Front-end

Electron 42React 19Vite 7 (electron-vite)Tailwind CSS v4Flutter / Dart

Back-end

Node.js 22ExpressIPC + contextBridge

Base de datos

SQLite (better-sqlite3)PostgreSQLsqflite (app)

Despliegue

Railwayelectron-builder (DMG / NSIS)Microsoft Store (MSIX)Google PlayVercel (site)

Integraciones

StripeFirebase Cloud MessagingSentryImpressora térmicaBalança / etiquetadora (serialport)Amazon S3 (backups)

Bibliotecas

ZodRechartselectron-updaterbcryptjsPapaparseRiverpodgo_routerdiofl_chartVitest

10

Decisiones de Diseño

Interfaz pensada para el mostrador: áreas táctiles de 44 px (56 px en los botones del POS), atajos de teclado visibles todo el tiempo, números en fuente tabular para leer rápido y una pantalla 'Hoy' que muestra primero lo que requiere acción (inventario en el mínimo, cuentas vencidas) antes que los KPIs. Verde Vendaí (#059669) como único color de acción, Sora para títulos y números destacados, Inter para el cuerpo, tema oscuro nativo. El cajero ve un sistema simple; el administrador ve el sistema completo — la diferencia es el permiso, no otro producto. Manual completo integrado, offline, con un botón de Ayuda en todas las pantallas.

11

Desafíos Técnicos

El mayor desafío fue lograr que tres aplicaciones coincidieran sobre una tienda sin que ninguna fuera 'la correcta'. La solución fue tratar el escritorio como el origen de los eventos y la nube como el punto de encuentro: cada registro nace con un UUID, cada escritura entra en una cola con la operación (crear/actualizar/eliminar) y el payload, y el servicio de sincronización monitorea la conexión, envía por lotes, marca como synced y registra los fallos con un conteo de intentos — el celular lee un snapshot consolidado y devuelve solo lo que modificó (clientes, movimientos). Segundo desafío: la Recepción Segura necesitaba garantías que un CRUD común no ofrece — conteo ciego, separación de funciones (quien contó no aprueba su propia diferencia), inventario y cuentas por pagar actualizados en una única transacción y un registro append-only firmado por dispositivo, verificable por el propietario. Tercero: boletos y códigos de barras generados y validados 100% offline (línea digitable, código de barras, QR PIX híbrido, baja por archivo de retorno CNAB 400/240) para bancos con formatos distintos.


12

Resultados

  • Producto en producción en la versión 1.8, distribuido para macOS, Windows (instalador y Microsoft Store) y Android — con actualización automática y telemetría de errores
  • Tres aplicaciones, una sola tienda: escritorio, nube y celular comparten los mismos datos mediante sincronización bidireccional con cola y reintentos
  • Más de 50 informes, módulo financiero completo (cuentas por pagar, boletos CNAB, PIX) y Recepción Segura con registro de auditoría inmutable
  • Identidad visual propia de punta a punta: sistema de diseño con tokens, kit de logos, sitio web y materiales para la Play Store y Mercado Livre

13

Aprendizajes

  • El offline-first de verdad es una decisión de modelado, no de caché: UUID en todos los registros, campos sync_status/deleted_at, cola sync_queue con la operación y el payload, y eventos que nunca se borran — las cancelaciones se vuelven nuevos eventos, lo que hace posible la resolución de conflictos
  • Código puro compartido entre main y renderer (src/comum): el cálculo de totales del POS, comisiones y monto neto es un único módulo — el número que muestra la pantalla es exactamente el que guarda la base de datos
  • Seguridad en Electron sin atajos: React nunca toca la base de datos; toda llamada pasa por contextBridge → handler IPC (sesión + perfil + payload validado con Zod) → service. Contraseñas con bcrypt, sesión recordada cifrada con safeStorage
  • El hardware de tienda es donde el software se rompe: la impresión se volvió un job con estado (enviado, aceptado, fallido, tiempo agotado) e historial, para que el comprobante nunca desaparezca en silencio ni salga duplicado
  • Distribución multicanal: la versión de la Microsoft Store necesita su propia carpeta de datos y una importación única desde la versión tradicional; la Play Store exige política de privacidad, eliminación de cuenta y pantallas reales — todo eso se convierte en código y documentación
  • Una app Flutter que muestre los mismos números que el escritorio exige que la API sea la fuente de verdad del snapshot — y que la caché local (sqflite) sepa cuándo está desactualizada