Lashiro's
Una tienda en línea para una distribuidora de insumos de pestañas. La diseñé y la programé de punta a punta: el catálogo con stock real, los pedidos por WhatsApp y el panel con el que el negocio lo administra todo.
- Cliente
- Distribuidora de insumos para lashistas en Barquisimeto
- Rol
- Diseño, desarrollo y despliegue
- Producto
- Tienda web y panel de administración
- Estado
- En producción desde 2026
El problema
El negocio vendía por Instagram y perdía ventas porque su vitrina no sabía decir si había o no había. Lashiro's muestra qué medida está disponible, arma el pedido y lo deja escrito en WhatsApp, donde ya se coordinaban los pagos.
Desde agosto de 2026: 133 commits, del primer catálogo al panel y las cuentas de clientas.
Del catálogo a WhatsApp
El recorrido de una clienta en el teléfono, capturado del sitio en producción.
En el escritorio
La matriz se acuesta: curvatura por filas y largos por columnas, con una leyenda para cada estado. Si una medida está agotada, la clienta la toca y pide que le avisen cuando vuelva.

El otro lado: el panel
El negocio administra el catálogo, el stock y las clientas desde un panel privado. Se pensó primero para el escritorio, pero sin nada que no funcione en el teléfono.
Stock por cantidad exacta
Se edita celda por celda. La tienda solo ve disponible, pocas o agotada: la cifra nunca sale del panel.
Sin diálogos de confirmación
Cada cambio se aplica al instante y se puede deshacer. Si algo se siente peligroso, la respuesta es mostrar mejor lo que pasó.
Clientas y avisos
Cada clienta se reconoce por su teléfono y se ve quién dejó de comprar. Quien encuentra una medida agotada puede pedir que le avisen cuando vuelva.
El panel guarda datos del negocio y de sus clientas, así que no lo muestro en capturas.
Decisiones
El stock no viaja en el build
La ficha de cada producto se congela al compilar porque cambia poco; las existencias se leen aparte, con revalidación corta. Si el stock viajara en el build, el sitio mentiría entre despliegues, y ese era justo el problema a resolver.
Sin pasarela de pago
En Venezuela se paga con Pago Móvil, dólares en efectivo, Zelle o Binance, y ninguna pasarela los integra fácil ni barato. El sitio arma la orden con número y la manda por WhatsApp: sin pasarela, sin PCI, sin conciliación ni disputas.
Dólar BCV y bolívares
Cada precio se convierte una vez en el servidor con la tasa oficial y se redondea al centavo, así que lo que suma la tienda cuadra con lo que ve la clienta. Si la tasa no llega, se muestra la moneda base; nunca una tasa escrita a mano.
Hecha para datos móviles lentos
Las clientas llegan desde Instagram, en el teléfono y con mala conexión. Por eso hay CSS a mano en vez de una librería de componentes, fuentes servidas desde el propio dominio, imágenes en AVIF y el trabajo pesado en el servidor.
Cada lectura cuenta
El proyecto vive en el plan gratuito de Firestore, con 50.000 lecturas al día compartidas entre la tienda, el panel y las pruebas. Una carga cuesta una lectura por producto y el stock entero, una sola; guardar en el panel no cuesta nada, y hay alertas antes de llegar al límite.
La seguridad vive en las reglas
Las reglas de Firestore son la frontera real, no la pantalla de login: escribir el catálogo se autoriza contra la lista de administradores, nunca contra estar autenticado. Las rutas del servidor revisan el token antes que nada, y las reglas tienen pruebas propias.
El login nunca va antes del carrito
Se compra siempre como invitada. Las cuentas son opcionales, nadie se identifica con su teléfono sin un código y, al eliminar una cuenta, sus pedidos quedan anónimos.
Con qué está hecha
- Web
- Next.js 16 con Server Components, React 19, TypeScript, CSS Modules
- Datos
- Firestore, Firebase Auth y una cuenta de servicio que solo usa el servidor
- Despliegue
- Vercel, previews por rama y cabeceras de seguridad
- Integraciones
- Tasas oficiales del BCV y pedidos por WhatsApp
Contacto
Para conversar sobre un proyecto, una oportunidad o algo que viste aquí.





