~/progetti/outpaced/README.md

COOKIES_ADVICE PRIVACY_POLICY.

~/progetti/outpaced/README.md

Outpaced

{ date: “2026-05-03”, statut: “en développement”, modules_stack: 7 }

Surveillance des dépendances sans friction pour les projets JavaScript et TypeScript

Outpaced est un SaaS public qui offre une visibilité immédiate sur l'état des dépendances npm : on colle un package.json et en quelques secondes on obtient un tableau de bord complet sur les mises à jour, vulnérabilités CVE, paquets dépréciés et abandonnés. Aucun accès au dépôt, aucune configuration, aucune pull request automatique.

Le principe directeur du produit est unique : du sign-up au moment de valeur en moins de deux minutes. Un point de contrôle centralisé pensé pour ceux qui gèrent plusieurs projets en parallèle et veulent savoir d'un coup d'œil combien de dépendances critiques ils ont, quels projets sont les plus à risque et quoi mettre à jour en premier.

## Le problème

La surveillance des dépendances aujourd'hui est dominée par deux catégories d'outils, toutes deux avec des limites claires pour qui cherche simplement de la visibilité :

·Bots de pull request (Dependabot, Renovate) : nécessitent l'accès au dépôt, une configuration YAML par projet et produisent des PRs, pas un tableau de bord agrégé
·Scanners de sécurité enterprise (Snyk, Socket.dev, OWASP Dependency-Track) : puissants mais conçus pour des équipes avec besoins de conformité, SBOM, reachability analysis

L'écart : personne n'offre le flow « collez package.json → voyez le tableau de bord ». Outpaced se positionne comme un outil complémentaire, axé sur la surveillance et la visibilité, pas sur l'automatisation.

## La solution

Un flow utilisateur volontairement linéaire :

·Inscription avec email et mot de passe
·Créez un Project, sans assistant, atterrissage direct
·Collez le package.json et optionnellement le lock file pour une analyse CVE précise
·Analyse asynchrone en arrière-plan
·Tableau de bord avec l'état de chaque paquet : version actuelle, dernière disponible, type de mise à jour, CVE, dépréciations, abandon
·Re-check manuel jusqu'à 3 fois par jour et check automatique nocturne
·Notifications email lorsque de nouvelles alertes critiques apparaissent

## Types d'alerte

Quatre catégories de signaux distinctes :

·Outdated — mise à jour disponible, sévérité de info (patch) à critical (major)
·Deprecated — paquet marqué comme déprécié sur npm
·Vulnerability — CVE de npm Audit et OSV avec sévérité basée sur CVSS
·Abandoned — plus de 2 ans sans release combiné à une baisse des téléchargements ; le double critère évite les faux positifs sur des paquets matures et stables

## Stack technologique

Les choix techniques reflètent les exigences du produit :

·Frontend : SvelteKit, TypeScript et Tailwind CSS, SSR pour les pages publiques et SPA pour le tableau de bord
·Backend : Go avec stdlib et REST API, concurrence idiomatique avec goroutines et channels
·Base de données : PostgreSQL avec relations structurées et JSONB chiffré au repos
·File d'attente et cache : Redis + Asynq avec files séparées pour l'analyse et l'email
·Auth : Better Auth avec sessions et JWT, prête pour de futurs social logins
·Email transactionnel via Resend ou Postmark
·Sources de données : npm Registry, npm Audit et OSV (Google) pour les métadonnées, CVE et future expansion multi-écosystèmes

## Architecture à deux binaires

Serveur HTTP et worker sont deux binaires distincts qui partagent le même package de domaine Go : même code, déploiement et scaling indépendants, meilleure résilience opérationnelle. Un crash du worker n'abat pas l'API.

## Décisions de conception significatives

Cinq choix qui caractérisent le produit :

·Parsing côté client pour privacy by design : package.json et lock file sont parsés dans le navigateur, seule la structure normalisée arrive au serveur
·Chiffrement au repos par workspace : JSONB chiffré au niveau colonne avec une clé distincte par workspace
·Rate limit comme choix produit : 3 checks manuels par jour protègent l'infrastructure et respectent les APIs publiques de npm
·Contrat API explicite plutôt que types partagés : OpenAPI comme source de vérité entre TypeScript et Go
·GDPR-first : suppression de compte égale élimination immédiate et irréversible, aucune période de rétention

## Roadmap

Trois phases progressives de valeur :

·V1 — MVP « manifest paste » : auth, projects, paste de package.json, analyse asynchrone, alert center global, rate limit avec feedback UI, emails, checks nocturnes, badge pour README
·V2 — Intégration Git : OAuth GitHub, GitLab et Bitbucket, webhooks push, support monorepo, workspaces multi-utilisateurs
·V3 — Expansion d'écosystème et monétisation : requirements.txt, go.mod, Gemfile, suggestions de fix et PRs depuis le produit, tiers payants via Stripe, notifications Slack et webhooks

## Ce que j'apprends

Leçons opérationnelles d'un product scoping rigoureux :

·Dire non aux features « évidentes » (PRs automatiques, intégration repo en V1) pour protéger le time-to-value
·Concevoir des frontières nettes entre serveur et worker dès le premier jour
·Privacy comme contrainte de conception et non comme checkbox : le parsing côté client a guidé les décisions d'UX, de format API et de limites de taille
·Roadmap V1/V2/V3 claire pour éviter de construire des choses dont personne n'a besoin maintenant

Outpaced est un produit européen basé en Italie, actuellement en développement. Stay ahead of your dependencies.

// stack
[sveltekit”, go”, postgres”, redis”, saas”, devtools”, dependency-monitoring”, ]