PriceWatch

PriceWatch

Rastreador de bajadas de precio que revisa páginas de producto y avisa cuando el precio llega a tu objetivo.

Node.jsTypeScriptPostgreSQLBullMQPlaywrightResend
Ver en vivoVer repositorio

El problema

Se me pasaban las bajadas de precio en productos que quería porque revisar manualmente era tedioso, y la mayoría de rastreadores existentes eran extensiones de navegador pesadas en las que no confiaba con mis datos. Quería un servicio pequeño y autoalojado que solo vigilara una URL y me avisara.

Rol e impacto

Decisiones técnicas y desafíos

Cada tienda renderiza los precios distinto, y algunas requieren ejecutar JavaScript. Comparé peticiones HTTP simples con cheerio contra un navegador headless para cada job.

Terminé usando Playwright solo para los sitios que lo requieren, cayendo a un fetch HTTP ligero en los demás casos, porque correr un navegador completo en cada job habría hecho la cola de trabajo demasiado lenta y costosa en recursos.

Un scrape con fallos podía reportar un cambio de precio falso y saturar al usuario con alertas. Evalué notificar ante cualquier cambio contra requerir confirmación en dos lecturas consecutivas.

Elegí requerir dos lecturas consecutivas coincidentes antes de disparar una notificación, ya que eliminó casi todos los falsos positivos causados por problemas transitorios de renderizado.

Stack detallado

CapaTecnologíaPor qué
ScrapingPlaywright, cheerioManeja tanto páginas con mucho JS como páginas estáticas
ColaBullMQ (Redis)Reintento y backoff confiables para jobs de scraping a escala
AvisosResendCorreo transaccional simple para alertas de bajada de precio

Galería

Panel con productos rastreados y precios objetivoGráfico de historial de precio de un producto rastreado

Qué haría diferente

Agregaría rotación de proxies desde el inicio en vez de sumarla después. Algunas tiendas empezaron a limitar el scraper por IP cuando el número de URLs rastreadas superó cierto volumen, algo que el scraping con una sola IP no puede evitar.