Maderera Juan B. Justo
Una sola plataforma para una maderera: sitio, tienda, mostrador, aserradero, facturación y portales de clientes.

Maderera Juan B. Justo vende madera en Mar del Plata desde 1981, con dos sucursales. Ventas, stock, cortes y facturas tenían que vivir en un solo lugar. El mostrador, el aserradero y la tienda online tocan el mismo stock. Clientes y profesionales necesitan cada uno su propia vista de precios y cuenta corriente.
Tres decisiones que lo definieron.
- 01
Cada integración tiene un proveedor de demostración
Por qué. ARCA, Mercado Pago, WhatsApp y el correo dependen de credenciales que tramita el cliente. Sin ellas, cada módulo usa un proveedor de demostración detrás de la misma interfaz. El circuito completo anda y la pantalla lo avisa.
El costo. Dos implementaciones por integración para mantener alineadas. La demo puede separarse de la API real sin que nadie lo note.
- 02
Sin RLS: una sola capa de datos en el servidor
Por qué. La credencial de la base nunca llega al navegador. Toda lectura pasa por el DAL y filtra por el usuario de la sesión. Toda escritura es una Server Action que valida la sesión y después el input con Zod.
El costo. El DAL es la única línea de defensa. Una query suelta en un componente lo saltearía, y eso solo lo frena la revisión de código.
- 03
El mostrador vende sin internet
Por qué. Que se corte internet no puede frenar una venta en el mostrador. El mostrador guarda una copia local del catálogo y encola las ventas en IndexedDB. Cada venta lleva un número provisorio por caja y se sube cuando vuelve la conexión.
El costo. Los precios locales pueden quedar viejos y los números provisorios hay que conciliarlos. El turno no cierra con ventas pendientes.


Maderera Juan B. Justo
Una sola plataforma para una maderera: sitio, tienda, mostrador, aserradero, facturación y portales de clientes.
- Rol
- Diseño y desarrollo full-stack
- Stack
- Next.js 16 (App Router), React 19, TypeScript, Postgres + Drizzle ORM, Better Auth, Tailwind CSS 4
- En vivo
- mjbj.vercel.app ↗

Maderera Juan B. Justo vende madera en Mar del Plata desde 1981, con dos sucursales. Ventas, stock, cortes y facturas tenían que vivir en un solo lugar. El mostrador, el aserradero y la tienda online tocan el mismo stock. Clientes y profesionales necesitan cada uno su propia vista de precios y cuenta corriente.
Tres decisiones que lo definieron.
Cada integración tiene un proveedor de demostración
Por qué. ARCA, Mercado Pago, WhatsApp y el correo dependen de credenciales que tramita el cliente. Sin ellas, cada módulo usa un proveedor de demostración detrás de la misma interfaz. El circuito completo anda y la pantalla lo avisa.
El costo. Dos implementaciones por integración para mantener alineadas. La demo puede separarse de la API real sin que nadie lo note.
Sin RLS: una sola capa de datos en el servidor
Por qué. La credencial de la base nunca llega al navegador. Toda lectura pasa por el DAL y filtra por el usuario de la sesión. Toda escritura es una Server Action que valida la sesión y después el input con Zod.
El costo. El DAL es la única línea de defensa. Una query suelta en un componente lo saltearía, y eso solo lo frena la revisión de código.
El mostrador vende sin internet
Por qué. Que se corte internet no puede frenar una venta en el mostrador. El mostrador guarda una copia local del catálogo y encola las ventas en IndexedDB. Cada venta lleva un número provisorio por caja y se sube cuando vuelve la conexión.
El costo. Los precios locales pueden quedar viejos y los números provisorios hay que conciliarlos. El turno no cierra con ventas pendientes.

