Aller au contenu

En production

Choppy — alertes Vinted, leboncoin & eBay en temps réel

Surveille eBay, Vinted et leboncoin en continu et prévient sur le téléphone dans la minute où l'annonce sort. Architecture volontairement décentralisée : la surveillance de Vinted et leboncoin tourne dans le navigateur de l'utilisateur, avec sa propre session.

Nature
Produit en ligne
Statut
En production
Stack
Extension ChromeWebSocketNestJSNext.jsStripeTemps réelSaaS
Voir le site en ligne(nouvel onglet)

Sur les bonnes affaires, tout se joue dans les premières minutes. Les outils existants scrapent depuis leur cloud — coûteux en proxies, fragile face aux anti-bots, et juridiquement exposé. Choppy prend le problème par l'autre bout.

L'invariant qui tient tout

La session d'un client ne quitte jamais sa machine. eBay, qui a une API officielle (Browse), est interrogé depuis le cloud. Vinted et leboncoin, qui n'en ont pas, sont interrogés par une extension Chrome (Manifest V3) installée chez l'utilisateur, avec la session anonyme de son propre navigateur — celle que tout visiteur reçoit. Aucun identifiant stocké, aucune requête vers ces sites depuis nos serveurs, aucun code de contournement d'anti-bot : un captcha remonte à l'humain.

Architecture

  • apps/api — NestJS 11, Prisma 7, PostgreSQL : authentification, tenants, Stripe, quotas, scheduler qui décide quoi surveiller et quand, passerelle WebSocket vers les agents.
  • apps/extension — extension Chrome compilée avec esbuild, connectée au cloud par un WebSocket sortant (aucun port à ouvrir chez le client), contrat versionné en Zod dans packages/agent-protocol.
  • apps/web — Next.js 16, Tailwind, shadcn/ui, SWR : vitrine, tunnel d'inscription, dashboard, facturation, admin.
  • Notifications ntfy, email, Discord et web push ; filtres locaux précis : "phrase exacte", -exclusion, fourchette de prix, âge de l'annonce, avis vendeur.

Ce qui a été difficile

  • Une première version de l'agent (Node + Playwright, Chromium piloté par CDP) a été abandonnée : les protections anti-bot repèrent un navigateur automatisé bien plus vite qu'un vrai onglet ouvert par l'utilisateur. L'extension est la seule bonne réponse, et elle est distribuée sur le Chrome Web Store.
  • Le premier passage d'une recherche n'alerte jamais : il mémorise l'existant, sinon créer une recherche enverrait cinquante notifications d'un coup.

Exploitation

Isolation multi-tenant fail-closed, abonnement à 4,99 €/mois via Stripe avec quotas par plan, erreurs et métriques dans GlitchTip / Grafana / Loki. Compte de démonstration et pile Docker locale en une commande pour essayer sans rien configurer.

Installation sur votre infrastructure

Cette application peut être déployée sur votre propre serveur — VPS, cloud privé ou on-premise — en instance dédiée : votre nom de domaine, votre base de données, vos données chez vous. Je prends en charge l'installation, le durcissement du serveur, les sauvegardes, la supervision et la maintenance, ainsi que les adaptations fonctionnelles à votre métier.