Proyecto personal, en producción · 2026

Mudarg

Buscá propiedades por tiempo de viaje

Extensión de navegador que dibuja isócronas de tiempo de viaje sobre el mapa de un portal inmobiliario y filtra las propiedades a las que de verdad llegás.

Rol

Desarrollador Único

Contexto

Proyecto personal, en producción

Año

2026

Enlaces

Tecnologías: Next.jsReactSvelteWXTLeafletoRPCDrizzlePostgreSQLbetter-authPolarTailwind

Resumen

Mudarg es una extensión de navegador que enriquece el portal inmobiliario ArgenProp con datos de tiempo de viaje. Elegís un punto (tu oficina, tu facultad), un tiempo máximo y un medio de transporte, y la zona a la que llegás en N minutos caminando, en bici, en auto o en transporte público se dibuja sobre el mapa que ya estás usando. Después te quedás solo con las propiedades que entran ahí.

Es la evolución en producción de relocate-app, el MVP en Flask y Leaflet que validó la idea del mapa de alcance para CABA.

Antes y después: el mapa del portal con una isócrona de Mudarg
Panel lateral más overlay sobre el mapa del portal

El problema

Buscar departamento no debería ser un trabajo de tiempo completo. Perdés horas abriendo cada propiedad en una pestaña nueva, copiando la dirección y preguntándole a Google Maps cuánto tardás al trabajo.

El obstáculo técnico era peor: no hay forma de tocar el mapa del portal desde una extensión. Los content scripts corren en un contexto JavaScript aislado, así que la instancia de Leaflet del portal, sus coordenadas y sus capas son una caja negra.

Decisiones

  • Espejar el mapa en vez de hackearlo: la extensión crea un segundo mapa Leaflet propio, totalmente invisible, superpuesto al del portal y sin pointer events. Lee lo único que el DOM sí expone, las URLs de los tiles, saca z/x/y de ahí y, con la posición de cada tile en pantalla, proyecta cualquier píxel de vuelta a latitud y longitud. El espejo se mantiene sincronizado en cada pan y zoom, y sobre él se dibujan las isócronas.
  • Los marcadores de propiedades sí son elementos del DOM, así que reciben la misma proyección inversa: cada uno se evalúa contra las zonas activas y se oculta o muestra con CSS. El mapa del portal nunca se modifica.
  • El panel vive en un Shadow DOM para que los estilos del sitio no lo rompan, y las llamadas a la API salen por el background script de la extensión como proxy RPC sobre un message port, lo que evita problemas de CORS y credenciales.
  • Monorepo con pnpm workspaces y Turborepo: una web en Next.js 16 (landing, auth, dashboard, webhooks) y una extensión en WXT más Svelte 5, compartiendo packages tipados para la API oRPC, el schema de Drizzle, better-auth y los clientes de TravelTime y Nominatim.
  • Tokens como ledger: cada cálculo consume un token por transporte, el saldo es la suma de las filas del usuario y el servidor lo verifica antes de llamar a TravelTime. Sin cobertura no se descuenta nada. Los packs se compran por Polar y se acreditan por webhook.
  • Cache local: cada GeoJSON se guarda en el navegador y se puede recargar sin gastar tokens.
Zona dibujada, todas las propiedades visibles
134 propiedades a 10 minutos en auto, el resto en gris
Solo las propiedades dentro de la zona

Resultado

Mudarg está online en mudarg.com con la extensión publicada gratis: hasta dos zonas simultáneas para comparar transportes, de 5 a 180 minutos, búsqueda por dirección con autocompletado, cuenta con email o Google, historial de cálculos y packs de tokens desde el dashboard.