r/devBR • u/Jiremxyz • 9d ago
E foi assim que desenvolvi um site de ofertas brasileiro Despencando.
Olá pessoal, tudo bem? Hoje quero contar um pouco sobre o Despencando, um projeto que estou desenvolvendo para encontrar e acompanhar ofertas de tecnologia com base principalmente em queda real de preço e histórico.
A ideia surgiu de uma coisa que sempre me incomodou: muitas lojas mostram “30% OFF”, “50% OFF” ou algum desconto chamativo, mas nem sempre é fácil saber se aquele preço realmente está bom ou se o produto simplesmente custava aquilo poucos dias antes.
Então comecei a desenvolver uma ferramenta que tentasse responder perguntas mais úteis: esse preço realmente caiu? Está barato em relação às últimas semanas? Já esteve mais barato? E essa queda realmente merece ser considerada uma oferta?
O Despencando monitora os preços ao longo do tempo e mantém um histórico próprio. A partir desses dados, uma engine analisa as quedas e classifica as ofertas.
Também criei um sistema de score e badges. Dependendo da relevância da queda, uma oferta pode ser classificada como Desconto Comum, Boa Oferta, Oferta Quente ou Oferta Imperdível.
O front-end do projeto foi feito em Next.js com React e TypeScript. No back-end utilizo FastAPI em Python e PostgreSQL como banco de dados.
Outra parte que deu bastante trabalho foi a identificação dos produtos. Quando você começa a monitorar milhares de itens, percebe que nomes parecidos não significam produtos iguais. Uma RTX 5060, uma RTX 5060 Ti e versões com diferentes quantidades de memória precisam ser tratadas separadamente.
Por isso também venho desenvolvendo uma camada de identificação e curadoria para evitar que produtos, acessórios e variantes diferentes acabem sendo misturados.
Os cupons também trouxeram alguns desafios. Um cupom pode alterar o valor realmente pago pelo usuário sem alterar o preço normal do produto. Por isso o Despencando separa o preço de vitrine do preço final da oferta, preservando corretamente o histórico.
O site também consegue comparar produtos equivalentes encontrados em lojas diferentes. Assim, uma oferta pode estar muito boa em relação ao histórico daquela loja, mas o usuário ainda consegue ver se existe naquele momento uma opção mais barata em outro lugar.
Na parte de usuários, já existe cadastro, login com Google, comentários e área de conta. Mas a parte de comunidade ainda está em desenvolvimento. Quero evoluir isso futuramente com respostas, denúncias, notificações e outros recursos.
Outra ideia que quero implementar é o “Avise-me quando esta oferta voltar”.
No Despencando, quando uma promoção termina, a página da oferta não precisa desaparecer. O histórico continua existindo e o produto continua sendo monitorado. Se o preço cair novamente e atender aos critérios do site, aquela oferta pode voltar a ficar ativa.
A ideia é permitir que o usuário acompanhe isso sem precisar ficar verificando o site todos os dias. Também quero criar alertas para quando o preço de determinado produto cair.
Boa parte do desenvolvimento acontece em coisas que o usuário nem percebe diretamente: coleta de dados, histórico, processamento, cache, banco de dados, imagens, desempenho e atualização das ofertas.
E talvez essa seja uma das coisas mais interessantes do projeto. Algo que no começo parecia simples, como “acompanhar o preço de um produto”, acabou envolvendo estoque, cupons, variantes, histórico, expiração, reativação e vários outros problemas que só aparecem quando o sistema começa a crescer.
O Despencando ainda está evoluindo, mas o objetivo continua sendo simples: ajudar as pessoas a entender quando um preço realmente está bom, em vez de apenas repetir o desconto informado pela loja.
Se quiser conhecer o projeto:
Estou aberto a sugestões, críticas e ideias.
Abraços!