Show HN: He rastreado 25M productos de Shopify para construir un motor de búsqueda
Un proyecto paralelo que rastreó 25 millones de productos de unas 650.000 tiendas de Shopify para construir un motor de búsqueda independiente de productos despertó tanto curiosidad técnica como escepticismo sobre su viabilidad a largo plazo. Los comentaristas diseccionan cómo el creador obtuvo listas de tiendas, aprovechó endpoints JSON públicos y eligió un costoso stack basado en MongoDB, mientras sugieren alternativas más baratas y rápidas como Elasticsearch, Typesense, Meilisearch o Postgres para escalar y mejorar la relevancia. Muchos también cuestionan la diferenciación del producto frente a la app Shop de Shopify y Amazon, argumentando que el éxito dependerá menos de la escala del rastreo y más de la calidad de búsqueda, la curación, el filtrado de fraude y una propuesta de valor clara tanto para compradores como para comerciantes.
Enfoque de scraping y fuentes de datos
- Las tiendas de Shopify exponen endpoints JSON estandarizados (
/products.json,/meta.json), así que hacer scraping significa, en su mayor parte, descargarlos en lugar de HTML. - Varios comentaristas señalan que se puede “martillar”
/products.jsoncon muy poco rate limiting; los problemas anti-bot tradicionales (CAPTCHAs, bloqueos de IP) son mínimos aquí. - La lista inicial de tiendas provino de un dataset de pago de “BuiltWith” (~2M tiendas), luego filtrado por geografía e ingresos; otros mencionan patrones DNS, presencia de
products.jsono estructuras de URL específicas de Shopify como métodos de detección. - Algunos comentan
robots.txty sitemaps como mecanismos adicionales de descubrimiento, pero una persona cuestiona el uso de pistas de “no hacer scraping” como datos semilla.
Stack técnico, coste y rendimiento
- Stack actual: crawler en JavaScript, MongoDB Atlas (incluido Atlas Search), front-end en Next.js, infraestructura en AWS; coste alrededor de $2.2K/mes.
- Muchos creen que esto es excesivo para ~25M productos y sugieren opciones más baratas y mejor adaptadas: Elasticsearch/OpenSearch, Typesense, Meilisearch, Postgres (con full-text y vectores), o incluso una sola máquina bare-metal/Hetzner.
- Varios señalan que 25M documentos es modesto para la infraestructura de búsqueda moderna y que debería ser rápido y barato si se diseña bien.
Calidad de búsqueda y funciones
- Los usuarios consideran que los resultados para consultas genéricas como “red shoes” son débiles o ruidosos; las coincidencias de marca a veces superan la intención obvia.
- Sugerencias: búsqueda vectorial/semántica usando CLIP o similar, captioning denso de imágenes, detección de color y embeddings multimodales para mejorar la relevancia.
- Filtros deseados: precio, ubicación “ships to”/“ships from”, disponibilidad, filtrado NSFW, país de entrega, búsqueda por similitud y mostrar ofertas alternativas para el mismo producto.
Calidad de datos, curación y fraude
- Múltiples comentarios advierten que hay una larga cola de tiendas de Shopify de baja calidad, fraudulentas o de dropshipping.
- Proyectos anteriores informan de una curación manual y automatizada intensiva para eliminar basura, estafas y contenido sensible/NSFW; muchos ven la curación como crítica para la diferenciación.
Monetización, competencia y viabilidad
- El modelo actual son tarifas a comerciantes por listados “verificados” y promocionados; todavía no hay ingresos de afiliación.
- Varios apuntan a la propia app Shop de Shopify y a varios motores de comparación de precios como competencia directa o indirecta.
- Proyectos similares previos comparten que la ejecución técnica era manejable; la adquisición de usuarios y la monetización eran los verdaderos cuellos de botella.
UX y miscelánea
- Los comentarios destacan respuestas lentas, falta de indicadores de carga, problemas de scroll infinito, peculiaridades de navegación, errores de consultas Unicode y el deseo de poder “abrir en una nueva pestaña” fácilmente.
- Algunos cuestionan las implicaciones de los ToS de Shopify; otros descartan esta preocupación o argumentan que solo importa si ocurre una acción legal.