0A-004 · APLICACIÓN WEB · 2026
JunkZipp: un marketplace de recolección de escombros bajo demanda que construimos y operamos nosotros mismos
Reserva recolección de basura en línea en Miami-Dade: precio fijo por adelantado y recolectores locales verificados. Construido y operado por 0ARCH.
- cliente
- 0ARCH (producto propio)
- industria
- Marketplace
- entregado
- ago 2026
- estado
- Live

Por qué lo construimos
La mayoría de las búsquedas de "recolección de basura cerca de mí" terminan en un intermediario nacional de leads que vende tu número de teléfono a cinco empresas a la vez, y ahí empieza el ping-pong de llamadas y el regateo. Construimos la versión que los clientes realmente quieren: eliges el tamaño de tu carga, ves el precio exacto por adelantado, reservas, y un recolector local verificado se presenta. Sin llamadas para comparar estimados, sin reventa de leads, sin sorpresas en el precio.
JunkZipp empezó como un directorio de pago. Operarlo nos enseñó que el modelo de directorio seguía dejando todo el trabajo en manos del cliente, así que lo reconstruimos como un marketplace completo: JunkZipp pone el precio del trabajo, lo despacha y maneja el dinero de principio a fin.
Lo que construimos
Precio instantáneo por adelantado. Un formulario de reserva de cuatro pasos calcula el precio a partir de una tabla fija por tamaño de carga más recargos detallados (electrodomésticos, colchones, escaleras). Una sola función de precios es el único lugar donde se calcula un total, así que el formulario de reserva, la toma de pedidos por teléfono del administrador y los cambios de precio de los recolectores nunca pueden estar en desacuerdo.
Una retención en la tarjeta, no un cargo. La tarjeta del cliente queda en garantía al reservar a través de Stripe Checkout y solo se cobra cuando el trabajo termina. Si un recolector encuentra más escombros de los reservados, propone una orden de cambio, el cliente la aprueba desde un enlace, y solo entonces cambia el precio.
Un despacho que compite. El trabajo se ofrece a todos los recolectores elegibles a la vez; el primero en tocar aceptar gana, y la carrera se decide con una sola actualización condicional en la base de datos, así que dos recolectores nunca pueden ganar el mismo trabajo. Si nadie lo toma, el sistema escala automáticamente: se agrega un bono, luego se amplía el radio de búsqueda, y si aun así no puede colocar el trabajo, se libera la retención y se le dice al cliente con honestidad.
Los recolectores se unen gratis y se quedan con el 75%. El proceso de alta revisa los documentos de licencia y seguro, y cada trabajo completado genera un pago para el recolector a través de Stripe Connect, con reintentos manejados por un barrido en segundo plano.
Una consola de operador. Un tablero de despacho en vivo, toma de pedidos por teléfono para clientes que prefieren llamar (reciben un enlace de pago por texto, ninguna tarjeta se dicta por teléfono) y un registro de auditoría completo en cada trabajo.
Cómo está construido
Next.js sobre el App Router, desplegado en Cloudflare Workers a través de OpenNext, con una base de datos D1 (SQLite), R2 para documentos y fotos, y un cron por minuto que maneja la expiración de ofertas, la escalación y los reintentos de pago. Los pagos son Stripe Checkout con captura manual más Stripe Connect para los pagos a recolectores, con claves de idempotencia y restricciones en la base de datos que hacen imposible un doble pago. Antes del lanzamiento corrimos el flujo entero contra producción de verdad: reserva, escalación forzada, la carrera de aceptación, un cambio de precio a mitad de trabajo y la finalización.
Por qué está en el portafolio
JunkZipp no es trabajo para un cliente, y ese es el punto. Es un marketplace de dos lados que diseñamos, construimos y operamos nosotros mismos: movimiento real de dinero, una carrera de despacho, pagos a terceros y una consola de administración que un operador no técnico puede manejar. Cuando decimos que construimos software que aguanta en producción, este es uno que nosotros mismos operamos en producción.
El stack
- Framework: Next.js (App Router) en Cloudflare Workers vía OpenNext
- Base de datos: Cloudflare D1 (SQLite) con Prisma
- Almacenamiento: Cloudflare R2 (documentos y fotos de trabajos)
- Pagos: Stripe Checkout (retención al reservar, captura al completar) + pagos vía Stripe Connect
- Despacho: ofertas en ráfaga, aceptación sin condiciones de carrera, escalación temporizada vía cron
- Correo + SMS: notificaciones transaccionales con IDs de referencia de soporte
- Dominio: junkzipp.com
fin del archivo · 0A-004
Iniciar un proyecto similar