El problema
La recolección de basura tiene un problema de cotización. Los operadores tradicionales cotizan por teléfono, luego envían un equipo a inspeccionar y después mandan una cotización por escrito — un flujo que pierde trabajos contra competidores más rápidos y cotiza mal una parte considerable de lo que aparece. ScanJunk necesitaba una forma de dar precios honestos e instantáneos en el momento en que el cliente fotografía el montón en su garage, y hacerlo en toda un área metropolitana sin crecer un call center al mismo ritmo. La restricción desde el día uno: la plataforma tenía que sentirse familiar para un cliente que ha usado Uber y DoorDash, pero que nunca ha usado un servicio de recolección de basura en su vida. Sin llamadas. Sin "te llamamos de regreso". Fotografía, mira el precio, agenda una ventana.
La arquitectura
Construimos el motor de precios sobre el modelo GPT-4o Vision de OpenAI, calibrado contra un conjunto interno para que las cotizaciones sigan siendo precisas cuando cambian los costos de suministro y de desecho. El backend corre completamente en Cloudflare Workers — sin servidores que mantener, tiempos de respuesta menores a 50 ms en el edge, y capacidad que escala por solicitud en lugar de por VMs aprovisionadas. Los datos transaccionales viven en Cloudflare D1; fotos y firmas digitales en R2; Stripe maneja el checkout; Firebase Phone Authentication mantiene los registros sin fricción. En el frontend lanzamos cuatro clientes separados, cada uno construido a propósito en lugar de un envoltorio webview: una app web para clientes en Next.js, una app nativa iOS en SwiftUI, una app nativa Android en Kotlin y Jetpack Compose, y una app de operaciones para conductores en React Native (Expo) porque los equipos iteran más rápido con una base de código multiplataforma compartida. Cada capa se despliega de forma independiente.
Disciplina de ingeniería
Una plataforma así de amplia fracasa si la calidad vive solo en la cabeza de un desarrollador. Construimos más de 1,300 pruebas automatizadas a lo largo de la API en Workers, el cliente web y las apps móviles — cada flujo de reservación, cada caso límite de cotización, cada transición de estado de pago ejercitado en integración continua antes de que el código llegue a producción. El rastreo GPS y la captura de firmas digitales en la app del conductor se prueban de extremo a extremo contra un simulador. El panel administrativo, usado por el equipo de operaciones de ScanJunk para despachar equipos y reconciliar pagos, se trata como una aplicación de primera clase, no como una idea tardía. Nada de esto es glamoroso — pero es por eso que un lanzamiento de una sola región en el condado de San Joaquín puede expandirse con confianza a condados vecinos sin reescribir nada.
Dónde vive
ScanJunk está en vivo en scanjunkremoval.com, con las apps de iOS y Android en sus respectivas tiendas. La plataforma procesa trabajos cotizados por foto de extremo a extremo — cotización, reservación, pago, despacho, finalización, recibo — sin un humano en el ciclo hasta que el conductor llega. Tobala Labs sigue lanzando nuevas funciones cada mes: optimización de rutas, reglas de precios por temporada, reservaciones de servicios recurrentes, soporte multilingüe. Abordamos cada proyecto de la misma manera: construir la versión más pequeña correcta primero, lanzarla a usuarios reales, expandir lo que funciona. ScanJunk es la prueba. Con gusto repasamos cualquiera de estas decisiones técnicas en profundidad si estás evaluando un proyecto similar — escríbenos a [email protected] o usa el formulario de contacto abajo.