Executando verificação de segurança...
7

PITCH: Criei uma API open source que rastreia creatinas do mercado e compara preço por grama em tempo real

Faz alguns dias, queria aprender scraping de verdade, eu já sabia o básico ali mas nunca me aprofundei tanto. Então pensei: por que não construir algo útil enquanto aprendo?

Comecei analisando lojas de suplemento, observando como elas estruturam o HTML, se usavam JSON-LD, sitemap, paginação. Antes de escrever uma linha de scraper ( E VibeCodar grande partes complexas com Claude Code), passei dias só estudando a arquitetura que iria precisar.

O resultado foi o PoteBarato um sistema que:

🔍 Rastreia automaticamente lojas de suplemento a cada 6 horas via Playwright (Chromium headless)
💡 Extrai dados via JSON-LD (Schema.org) o mesmo dado que o Google usa para SEO, eu uso para capturar preço, marca e disponibilidade sem depender de seletores frágeis
⚖️ Calcula o preço por grama de cada produto, então dá pra comparar creatina de 250g com a de 1kg de forma justa
🚀 Expõe tudo via API REST documentada com OpenAPI/Scalar, com autenticação por API key, rate limiting e WebSocket para atualizações em tempo real


O que aprendi construindo isso:

O crawling é a parte mais interessante e menos falada. O pipeline começa lendo o robots.txt, expande sitemaps (incluindo sitemap index), filtra URLs que contenham "creatin" no path, valida via HEAD em paralelo (10 conexões simultâneas) e só então passa pro scraper. Isso evita processar páginas desnecessárias.

A estratégia de JSON-LD foi um divisor de águas. Em vez de ficar ajustando seletores CSS toda vez que a loja muda o layout, o <script type="application/ld+json"> está ali, estruturado, esperando ser lido. Quando não existe, uso fallback em CSS mas na maioria das vezes o JSON-LD resolve.

O processo filho com Bun.spawn() foi outra decisão importante: o scraper roda isolado, então se ele travar ou lançar erro, o servidor HTTP continua respondendo normalmente.

Stack utilizada:
Bun · Hono · Playwright · Drizzle ORM · PostgreSQL · React 19 · Tailwind CSS 4 · Better Auth · Zod · OpenAPI/Scalar

O projeto é 100% open source, com toda a arquitetura documentada desde o modelo de dados até o fluxo do scraper. A ideia nunca foi monetizar, e sim pra estudar coisas que só aparecem em produção: concorrência, retry com backoff, deduplicação por URL, upsert no banco, WebSocket de rate limit.
Se você também quer aprender scraping ou montar uma stack moderna com Bun, talvez valha uma olhada.

🔗 GitHub: https://github.com/GXDEVS/potebarato
🔗 PoteBarato: https://potebarato.gxserver.shop/

Qualquer feedback é bem-vindo especialmente sobre a estratégia de extração ou a arquitetura do crawler.

Carregando publicação patrocinada...
0
1

Fala meu caro, o projeto e opensource fique vontade para estudar. caso queira algo mais personalizado e com apoio profissional entra em contato comigo.

0
1
0
1

Muito obrigado sinvalfelisberto, essa e intenção fique a vontade para ver o código, se quiser contribuir com o projeto também será bem-vindo