Changelog
Chaque version de Residual Publish, depuis le lancement.
RAG contextuel pgvector — les articles similaires sont injectés dans le prompt LLM pour une cohérence éditoriale accrue
Lead scoring GoRules Zen — chaque lead capturé par Typebot est scoré en temps réel (champs : email, budget, secteur)
Webhook Typebot `/api/v1/webhook/typebot` — transmission automatique vers Residual Reach
Rapport PDF généré automatiquement après publication WordPress + audit (feature flag `pdfLeadMagnet`)
BYOK Mistral & Groq — branchez vos propres clés API, zéro markup sur le coût IA
Chiffrement AES-256-GCM de tous les credentials (WordPress App Password, OAuth tokens, clés BYOK)
Fallback automatique Mistral → Groq avec AbortController 15s
Slider ton de provocation dans `/generate` (0–100)
Twitter/X OAuth2 PKCE — publication en thread chaîné, tokens auto-rafraîchis
Publication LinkedIn semi-manuelle (copier–coller guidé avec texte formaté + CTA)
Scheduling Trigger.dev V3 — cron `daily-scheduler` à 09h00 UTC
Page `/schedule` avec timeline hebdomadaire des publications programmées
Publication WordPress via API REST v2 + Application Password (jamais le mot de passe principal)
Injection automatique du bloc Typebot lead capture dans chaque article WordPress
Intégration Residual Audit — import des métriques (score, CVW, failles) directement dans le prompt
Onboarding interactif — valeur démontrée avant toute configuration (audit live → streaming → connexion)
Streaming LLM temps réel via SSE — affichage token par token dans le split-pane `/generate`
Split-pane éditeur : source données (gauche) + article généré (droite)
Tiers `internal` — crédits illimités pour Zakaria, bypass complet du billing
100 crédits offerts à l'inscription (tier `user`)
MCP Server avec 4 outils : `generate_article`, `publish_article`, `schedule_article`, `article_stats`
Authentification magic link Supabase — pas de mot de passe
RLS Supabase sur toutes les tables — isolation stricte des données par `user_id`
Protection IDOR sur toutes les routes API (`user_id !== session.user.id → 403`)
Migration vers Next.js 15 App Router avec Server Components par défaut
Tailwind v4 CSS-first — tokens dans `globals.css` via `@theme inline`
Trigger.dev V3 — syntaxe `task()` (migration depuis v2 `defineJob`)
Anti-SSRF : DNS filter type:1 sur toutes les routes acceptant une URL externe
CRUD articles : création, édition, liste, suppression avec soft-delete
Page `/articles` avec filtres par statut (draft / published / scheduled)
Régénération d'article via `/api/v1/articles/:id/regenerate`
Statistiques de publication par article et par plateforme
Première version publique de Residual Publish
Génération d'articles data-driven à partir des données Residual Audit
Stack : Next.js 15 · Supabase · Trigger.dev V3 · Vercel · Mistral AI · Groq
Concepts clés : BYOK, data-driven, flywheel audit → contenu → leads → campagne