Qué es
Vision es un sistema de gestión hecho desde cero para dueños de comercios y negocios chicos. En vez de Excel, planillas sueltas o libretas, todo el negocio en una sola app: clientes, productos, servicios, ventas, gastos, caja y comprobantes.
Está construida como una SPA (single-page app), corre en el navegador, funciona en el celular y sincroniza todo con una base de datos en la nube. Cero instalación.
Por qué lo hice
Los negocios chicos manejan su información con las peores herramientas del mundo: papeles, notas de voz, chats, planillas que se llenan de a pedazos. Vision nació para que un comerciante abra el celular y en dos toques sepa cuánto vendió, cuánto debe y qué comprobante le falta cobrar.
Módulos
- Contactos — clientes y proveedores con saldos y movimientos.
- Productos — inventario con stock, precios y categorías.
- Servicios — los servicios que ofrece el negocio.
- Movimientos — ingresos y gastos, el corazón de la caja.
- Comprobantes — facturas y recibos, exportables a PDF.
- Registro de precios — historial para saber cómo vienen los costos.
- Notas — apuntes rápidos del día.
- Logs — auditoría de todo lo que pasa en la cuenta.
- Dashboard — ventas en el tiempo, movimientos recientes y el dólar en vivo (porque en la Argentina ningún precio se entiende sin el dólar).
La magia: leer un ticket con la cámara
El módulo que más sorprende: sacás una foto a un ticket o factura y Vision lo lee solo. Usa OCR en el navegador (tesseract.js, sin mandar la imagen a ningún lado) y después un modelo de IA interpreta el texto para extraer:
- cada producto y su precio,
- el total,
- la fecha,
- y guarda todo como movimiento, comprobante o registro de precio.
// helpers/ocr.js (resumido)
const { data } = await Tesseract.recognize(image, 'spa');
const texto = data.text;
// helpers/ai-ticket.js
const ticket = await aiProxy.parseTicket(texto);
// → { proveedor, fecha, total, items: [{ nombre, precio }] }
De foto a asiento contable en segundos. Eso es IA aplicada a la vida real de un negocio.
Tecnología
- Vanilla JS modular (sin frameworks): la app carga solo lo que usa, con un
manifest.jsque ordena las dependencias. - Supabase como backend: base de datos PostgreSQL, autenticación y sesiones.
- Chart.js para el dashboard, html2pdf para los comprobantes.
- tesseract.js para OCR local + proxy de IA para entender el texto.
- PWA-ready: ícono, tema, y caché inteligente con versionado de assets.
Lo que aprendí
- Una SPA vanilla bien ordenada (servicios, componentes, router, store) compite sin problema con un framework.
- El OCR es la parte fácil: la IA que entiende el texto del ticket es la que cambia el juego.
- Un negocio real tiene cien casos borde: facturas a crédito, pagos parciales, devoluciones. El diseño de datos tiene que soportarlos todos.