AlgoLens est le premier SaaS de rétro-ingénierie algorithmique en temps réel. Il transforme les signaux cachés des plateformes en stratégies de contenu actionnables — en secondes.
Décrivez votre profil. Obtenez un plan de contenu sur 30 jours en 3 secondes.
📊 Dashboard Analytics — Surveillance cache temps réel
Le dashboard expose en live le ratio L1/L2/API miss, les économies générées et la distribution des requêtes par plateforme — avec auto-refresh toutes les 30 secondes.
🔍 Veille Algorithmique — Feed des changements détectés
Chaque lundi à 8h UTC, le cron collecteur conserve les newsrooms officielles comme sources de référence, normalise les signaux disponibles et publie les changements d'algo avec leur impact, leur niveau de confiance et leurs preuves.
🔐 Auth & Dashboard utilisateur — Magic links Supabase
Connexion sans mot de passe via magic link. Chaque utilisateur dispose de son historique de stratégies, son quota mensuel et son statut Pro.
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ USER REQUEST │
│ │ │
│ ▼ │
│ ┌─────────┐ HIT ┌──────────────────────┐ │
│ │ L1 │ ──────▶ │ Response < 1ms │ 66% of traffic │
│ │ RAM │ │ In-Memory Map │ │
│ └────┬────┘ └──────────────────────┘ │
│ │ MISS │
│ ▼ │
│ ┌─────────┐ HIT ┌──────────────────────┐ │
│ │ L2 │ ──────▶ │ Response ~50ms │ 27% of traffic │
│ │ DB │ │ Supabase Postgres │ │
│ └────┬────┘ └──────────────────────┘ │
│ │ MISS │
│ ▼ │
│ ┌─────────┐ ┌──────────────────────┐ │
│ │ Claude │ ──────▶ │ Response 2-5s │ 7% of traffic │
│ │ API │ │ Anthropic Sonnet │ │
│ └─────────┘ └──────────────────────┘ │
│ │
│ 💰 $35/mois estimé vs $500/mois sans cache → -93% de coût │
│ │
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
|
|
| Couche | Technologie | Rôle |
|---|---|---|
| Frontend | Next.js 14 App Router | Server Components + routing |
| Styling | Tailwind CSS + Chart.js | UI + visualisations |
| IA | Claude 3.5 Sonnet via SDK | Génération stratégies |
| Auth | Supabase Auth SSR | Magic links + sessions |
| Database | Supabase Postgres | Cache L2 + profils + updates |
| Cache L1 | In-Memory Map (Node.js) | <1ms — volatile |
| Paiements | Stripe | Webhooks + abonnements |
| Cron | Vercel Cron Jobs | Veille algo hebdomadaire |
| Déploiement | Vercel Serverless | Edge + serverless functions |
L’Algorithm Observatory est déployé sur l’instance de production. Le schéma historique d’algorithm_updates a été réconcilié avant l’application de la migration 008_algorithm_observatory.sql, sans supprimer de données existantes.
| Contrôle | Résultat vérifié |
|---|---|
| Exécution de production | Le cron /api/cron/weekly-scrape a terminé avec un statut HTTP 200. |
| Observations persistées | 53 lignes ont été enregistrées dans trend_observations lors du test de mise en service. |
| Répartition des preuves | 28 observations proviennent des newsrooms officielles ; 25 proviennent du flux SocialCrawl YouTube (trend_feed). |
| Cohérence des preuves | Pour les 53 lignes contrôlées, evidence_count est cohérent avec la taille du tableau JSON evidence. |
| Planification active | La veille est exécutée le lundi à 08:00 UTC ; le snapshot de cache est quotidien pour rester compatible avec Vercel Hobby. |
La première collecte SocialCrawl a validé l’accès, la normalisation et la persistance. Les 25 résultats YouTube de ce premier jeu de données n’exposent toutefois pas encore de titre ni de métriques exploitables dans le format normalisé : ils sont temporairement enregistrés sous la forme
youtube trending item N, avec un score de tendance de 18 et une confiance de 26. L’adaptateur doit être enrichi lorsque le schéma de contenu précis du fournisseur sera disponible afin de substituer ces libellés de secours par les métadonnées réelles.
L’analyse sémantique des articles officiels dépend également d’une clé Anthropic créditée. En l’absence de crédit, les erreurs d’analyse sont isolées et n’empêchent ni le cron ni la persistance des signaux SocialCrawl. Le détail de l’activation est conservé dans reports/production-activation-findings.md.
- Node.js 20+
- Compte Supabase
- Clé API Anthropic
- Compte Stripe (optionnel pour les paiements)
git clone https://github.com/ton-user/algolens.git
cd algolens
npm installcp .env.example .env.localRemplir .env.local :
# Supabase
NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
# Anthropic
ANTHROPIC_API_KEY=sk-ant-...
# Stripe
STRIPE_SECRET_KEY=sk_live_...
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
STRIPE_PRO_PRICE_ID=price_...
# App
NEXT_PUBLIC_SITE_URL=http://localhost:3000
VERCEL_CRON_SECRET=ton_secret_random
# Algorithm Observatory — SocialCrawl direct (facultatif)
# Clé serveur uniquement : ne jamais l’exposer côté navigateur.
SOCIALCRAWL_API_KEY=sc_...
SOCIALCRAWL_REGION=US
# Valeur initiale recommandée : youtube. Ajouter tiktok/instagram après validation du budget.
SOCIALCRAWL_SOURCES=youtube
# Algorithm Observatory — adaptateur externe alternatif (facultatif)
# Le flux doit répondre avec { "signals": SocialSignal[] }, voir ALGORITHM_OBSERVATORY.md
ALGOLENS_SIGNAL_FEED_URL=https://votre-adaptateur.example.com/signals
ALGOLENS_SIGNAL_FEED_TOKEN=optionnel_bearer_tokenDans Supabase Dashboard → SQL Editor, exécuter dans l'ordre :
supabase/migrations/002_strategy_cache.sql # Cache L2
supabase/migrations/003_algorithm_updates.sql # Veille algo
supabase/migrations/004_cache_stats_history.sql # Snapshots analytics
supabase/migrations/005_profiles.sql # Auth multi-user
supabase/migrations/006_billing_history_and_security.sql
supabase/migrations/007_b2b_workspaces_and_experiments.sql
supabase/migrations/008_algorithm_observatory.sql # Signaux, preuves et tendancesnpm run dev| URL | Description |
|---|---|
localhost:3000 |
Landing + sélection plateforme |
localhost:3000/dashboard/analytics |
Dashboard cache |
localhost:3000/updates |
Feed veille algorithmique |
localhost:3000/api/cache/stats |
Stats cache JSON |
algolens/
├── app/
│ ├── page.tsx # Landing
│ ├── login/page.tsx # Auth magic link
│ ├── auth/callback/route.ts # OAuth callback
│ ├── analyze/[platform]/page.tsx # Formulaire profil
│ ├── results/page.tsx # Stratégie générée
│ ├── updates/page.tsx # Feed veille algo
│ ├── history/page.tsx # Historique
│ ├── dashboard/
│ │ ├── layout.tsx # Layout protégé
│ │ └── analytics/page.tsx # Dashboard cache
│ └── api/
│ ├── analyze/route.ts # POST → stratégie
│ ├── cache/stats/route.ts # GET → stats cache
│ ├── cache/history/route.ts # GET → historique 24h
│ ├── stripe/route.ts # Webhook Stripe
│ └── cron/
│ ├── weekly-scrape/route.ts # Veille algo (lundi 8h)
│ └── cache-snapshot/route.ts # Snapshot stats (quotidien)
├── lib/
│ ├── anthropic.ts # SDK Claude + retry + fallback
│ ├── cache.ts # Cache hybride L1/L2
│ ├── scraper.ts # Web scraping natif
│ ├── algo-analyzer.ts # Analyse updates par Claude
│ ├── supabase/ # Clients Supabase
│ ├── supabase-server.ts # Helper SSR
│ ├── rate-limit.ts # Rate limiting 5 req/min
│ └── types.ts # Types TypeScript
├── supabase/migrations/ # 5 migrations SQL
├── middleware.ts # Protection routes
└── vercel.json # Cron jobs config
- Les clés Anthropic ne sont jamais exposées côté client — tous les appels passent par les API Routes Next.js
- Rate limiting : 5 requêtes/minute/IP (
lib/rate-limit.ts) - RLS Supabase sur toutes les tables — chaque user ne voit que ses données
- Cron protégé par header
Authorization: Bearer+ secret - Webhook Stripe vérifié par signature cryptographique
Avant cache : ~1 000 req/mois × $0.50/req = $500/mois
Après cache : ~70 req Claude (7%) × $0.50 = $35/mois
Économie : $465/mois · Réduction : 93%
| Métrique | Valeur |
|---|---|
| L1 Hit Rate | ~66% · <1ms |
| L2 Hit Rate | ~27% · ~50ms |
| API Miss Rate | ~7% · 2-5s |
| Fallback strategy | <10ms · score 65/100 |
- SDK Anthropic + Fallback strategy
- Cache hybride L1/L2
- Intégration Stripe + paywalls
- Veille algorithmique automatisée
- Dashboard analytics premium
- Auth multi-user Supabase
- Algorithm Observatory : modèle social unifié, preuves et score de tendance
- Activation de production : migration, cron et premier flux SocialCrawl vérifiés
- Enrichir le mapping SocialCrawl avec les titres, URLs et métriques réelles des tendances YouTube
- Adaptateurs dédiés pour les APIs sociales autorisées
- Mode comparaison 2 plateformes
- Streaming responses (progressive rendering)
- Smart TTL adaptatif
- API publique AlgoLens



