~/progetti/outpaced/README.md

COOKIES_ADVICE PRIVACY_POLICY.

~/progetti/outpaced/README.md

Outpaced

{ data: “2026-05-03”, stato: “in sviluppo”, moduli_stack: 7 }

Dependency monitoring senza attriti per progetti JavaScript e TypeScript

Outpaced è un SaaS pubblico che dà visibilità immediata sullo stato delle dipendenze npm: incolli un package.json e in pochi secondi ottieni una dashboard completa su aggiornamenti, vulnerabilità CVE, pacchetti deprecati e abbandonati. Nessun accesso al repository, nessuna configurazione, nessuna pull request automatica.

Il principio guida del prodotto è uno: dal signup al momento di valore in meno di due minuti. Un punto di controllo centralizzato pensato per chi gestisce più progetti in parallelo e vuole sapere in un colpo d'occhio quante dipendenze critiche ha, quali progetti sono più a rischio e cosa aggiornare per primo.

## Il problema

Il dependency monitoring oggi è dominato da due categorie di tool, entrambe con limiti chiari per chi cerca semplicemente visibilità:

·Bot da pull request (Dependabot, Renovate): richiedono accesso al repo, configurazione YAML per progetto e producono PR, non una dashboard aggregata
·Scanner di sicurezza enterprise (Snyk, Socket.dev, OWASP Dependency-Track): potenti ma pensati per team con esigenze di compliance, SBOM, reachability analysis

Il gap: nessuno offre il flusso "incolla package.json → vedi la dashboard". Outpaced si posiziona come strumento complementare, focalizzato su monitoraggio e visibilità, non automazione.

## La soluzione

Un flusso utente volutamente lineare:

·Sign-up con email e password
·Crea un Project, nessun wizard, atterraggio diretto
·Incolla il package.json e opzionalmente il lock file per un'analisi CVE precisa
·Analisi asincrona in background
·Dashboard con stato di ogni pacchetto: versione corrente, ultima disponibile, tipo di update, CVE, deprecazioni, abbandono
·Re-check manuale fino a 3 volte al giorno e check automatico notturno
·Notifiche email quando emergono nuovi alert critici

## Tipologie di alert

Quattro categorie di segnali distinte:

·Outdated — aggiornamento disponibile, severity da info (patch) a critical (major)
·Deprecated — pacchetto marcato deprecato su npm
·Vulnerability — CVE da npm Audit e OSV con severity basata sul CVSS
·Abandoned — più di 2 anni senza release combinato con calo download, doppio criterio per evitare falsi positivi su pacchetti maturi e stabili come mime-types o ms

## Stack tecnologico

Le scelte tecniche riflettono i requisiti di prodotto:

·Frontend: SvelteKit, TypeScript e Tailwind CSS, con SSR per le pagine pubbliche e SPA per la dashboard
·Backend: Go con stdlib e REST API, concorrenza idiomatica con goroutine e channel ideale per worker asincroni
·Database: PostgreSQL con relazioni strutturate e JSONB cifrato a riposo per i manifest
·Queue e cache: Redis + Asynq con code separate per analisi ed email, caching del registry e rate limiting giornaliero
·Auth: Better Auth con sessioni e JWT, base pronta per social login futuri
·Email transazionali via Resend o Postmark per deliverability e DX
·Fonti dati: npm Registry, npm Audit e OSV (Google) per metadata, CVE e futura espansione multi-ecosistema

## Architettura a due binari

HTTP server e worker sono due binari distinti che condividono lo stesso package di dominio Go: stesso codice, deploy e scaling indipendenti, resilienza operativa migliore. Un crash del worker non abbatte le API.

## Decisioni progettuali significative

Cinque scelte che caratterizzano il prodotto:

·Parsing lato client per privacy by design: package.json e lock file vengono parsati nel browser, al server arriva solo la struttura normalizzata, mai URL di registry privati o token incorporati
·Cifratura a riposo per workspace: JSONB cifrato a livello di colonna con chiave distinta per workspace, un dump del DB non espone dati leggibili
·Rate limit come scelta di prodotto: 3 check manuali al giorno proteggono l'infrastruttura, rispettano le API npm pubbliche e creano l'incentivo naturale a passare alla V2
·Contratto API esplicito invece di tipi condivisi: OpenAPI come fonte di verità tra TypeScript e Go
·GDPR-first: cancellazione account uguale eliminazione immediata e irreversibile, nessun periodo di retention

## Roadmap

Tre fasi progressive di valore:

·V1 — MVP "manifest paste": auth, projects, paste di package.json, analisi asincrona, alert center globale, rate limit con feedback UI, email di notifica, check notturni, status badge per README
·V2 — Integrazione Git: OAuth GitHub, GitLab e Bitbucket, webhook su push, supporto monorepo, workspace multi-utente per collaborazione
·V3 — Espansione ecosistema e monetizzazione: requirements.txt, go.mod, Gemfile, suggerimenti di fix e PR dal prodotto, tier a pagamento via Stripe, notifiche Slack e webhook custom

## Cosa ho imparato

Lezioni operative dal product scoping:

·Dire no a feature "ovvie" come PR automatiche o integrazione repo in V1 per proteggere il momento di valore
·Progettare confini netti tra server e worker fin dal day-one, condividendo il dominio senza duplicazioni
·Privacy come vincolo di design e non come checkbox: il parsing client-side ha guidato decisioni di UX, formato API e limiti dimensionali
·Roadmap V1/V2/V3 chiara per evitare di costruire cose di cui nessuno ha bisogno ora

Outpaced è un prodotto europeo con sede in Italia, attualmente in sviluppo. Stay ahead of your dependencies.

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