El cuello de botella operativo del agente independiente
Nuestro stakeholder, “Gonzalo”, gestionaba un portafolio de 120 propiedades utilizando solo hojas de cálculo de Excel y WhatsApp. Este flujo de trabajo manual limitaba su capacidad a aproximadamente dos cierres por mes. Cada lead requería que él buscara manualmente en tres hojas de cálculo diferentes para verificar disponibilidad, resultando en un tiempo de respuesta promedio de 4 horas —a menudo demasiado tarde para captar clientes potenciales.
Necesitábamos construir Redprop no solo como un “catálogo”, sino como un centro de comando operativo que redujera esta carga administrativa. El objetivo era específico: llevar el tiempo de respuesta a leads a menos de 10 minutos y eliminar la redundancia de datos.
Decisiones de arquitectura técnica
Como Líder frontend, prioricé la mantenibilidad y la “compartibilidad” sobre la optimización prematura. Los enlaces inmobiliarios viajan por WhatsApp, por lo que la URL tenía que ser la única fuente de verdad.
Estrategia de gestión de estado en URL
Inicialmente gestionamos el estado de los filtros (precio, ubicación) en un contexto de React. Esto falló durante las pruebas de usuario; los agentes no podían compartir resultados de búsqueda específicos con los clientes.
Refactoricé esto usando Nuqs para elevar todo el estado a los parámetros de consulta de la URL. Esta decisión tuvo dos impactos:
- Compartibilidad: Los agentes podían enviar un enlace preciso (ej:
?min_price=50k&zone=palermo) a un cliente, reduciendo el ida y vuelta de mensajes. - Rendimiento: Desacoplamos la lógica de filtrado del árbol de componentes, reduciendo re-renders innecesarios en aproximadamente un 30% en la página principal de listados.
Manejo de consistencia de datos asíncronos
El fetching estándar con useEffect creaba condiciones de carrera cuando los filtros cambiaban rápidamente. Implementamos TanStack Query para manejar el caché en segundo plano. Esto fue crucial para la vista de “Admin” —si un agente actualizaba el precio de una propiedad en el dashboard, la estrategia de invalidación de caché aseguraba que la vista pública reflejara este cambio inmediatamente sin una recarga forzada.
Metodología y entrega
No solo “usamos Scrum”; simulamos un entorno de agencia de alta presión. Con solo tres semanas para el MVP, tuvimos que recortar el alcance despiadadamente.
Reemplazamos el stack estándar de ESLint/Prettier con Biome. En un pipeline de CI que corría docenas de chequeos por día, la velocidad de Biome (linting en ~300ms vs 3-4s para ESLint) nos ahorró horas acumuladas de tiempo de espera durante las revisiones de Pull Requests. Esta eficiencia nos permitió mantener una política estricta de “Cero Advertencias” sin ralentizar la velocidad de desarrollo.
Resultados
El proyecto ganó el 1er Lugar en el Foo Talent Demo Day, pero la métrica real fue operativa. El MVP redujo el tiempo requerido para subir una nueva propiedad de 15 minutos (catalogación manual) a 3 minutos.
Actualmente, estoy refactorizando Redprop hacia la v2.0, pasando de una estructura MVP rígida a un enfoque de Clean Architecture. El foco ahora está en la escalabilidad: implementando unit testing con Vitest o Playwright para asegurar cero regresiones mientras agregamos funcionalidades complejas como modelos de valoración automatizados (AVM).