Uno strumento di changelog per aziende di dev tool e API.
Un changelog che chiude il cerchio.
I tuoi utenti chiedono qualcosa. Il tuo team lo rilascia. Chi lo ha chiesto lo viene a sapere. Le voci vengono redatte dalle pull request unite, restano in attesa della tua revisione e vengono pubblicate su un feed JSON o in un widget di due righe dentro il tuo prodotto.
Gratis per un repository. Nessuna carta richiesta.
Arriva la modalità scura
Attivala nelle Impostazioni o lascia che segua il tema di sistema.
Pubblicato sulla issue #482, dove era stata richiesta
Webhook ritentati per 24 ore
Le consegne fallite vengono ritentate con backoff e ogni tentativo compare nella dashboard.
Le esportazioni CSV mantengono il tuo fuso orario
I timestamp di un'esportazione ora corrispondono a quelli dell'app.
Ciò che leggono i tuoi utenti. Redatto dalla pull request unita, pubblicato quando lo approvi.
- Feed JSON pubblico su tutti i piani
- Widget incorporabile in due righe
- Le bozze aspettano la revisione per impostazione predefinita
- Gratis per un repository, nessuna carta
Il tuo changelog, renderizzato dal tuo codice
Il feed è un endpoint pubblico semplice con CORS aperto a qualsiasi origine, quindi puoi leggerlo da una pagina, da uno step di build o con curl. Dieci righe di React e il tuo changelog fa parte del tuo prodotto invece di essere a un link di distanza.
- Filtra per repository, pagina con un cursore, fino a 50 voci per chiamata
- ETag forte e Cache-Control di 60 secondi, così un feed invariato risponde 304
- Anche un feed di roadmap, in tre colonne fisse: planned, building, shipped
const ID = 'YOUR_ID'; const API = 'https://api.changeloop.dev'; export function Changelog() { const [entries, setEntries] = useState([]); useEffect(() => { fetch(`${API}/v1/public/${ID}/changelog.json`) .then((r) => r.json()) .then((feed) => setEntries(feed.data)); }, []); return entries.map((e) => <Entry key={e.id} {...e} />); }
Oppure incorporalo in due righe
Un custom element che renderizza in uno shadow root, così non eredita i tuoi stili né vi si infiltra. Ha tre schede: le tue novità, la tua roadmap e un campo in cui i tuoi utenti possono scrivere.
- Due attributi, il tuo id feed e l'origine dell'API
- Fissa una versione e i suoi byte non cambiano mai, oppure prendi automaticamente l'ultima build
- Nessun pacchetto npm, nessuno step di build, nessuna chiave da ruotare
Redatto all'unione, trattenuto per una persona
Una pull request viene unita nel tuo branch predefinito. Changeloop ne legge titolo e descrizione e scrive una voce per le persone che usano il tuo prodotto. Il tuo codice sorgente non ne fa mai parte.
- Aggiornamenti di dipendenze, lavoro di CI e refactor vengono filtrati prima ancora di redigere qualcosa
- Le bozze restano nella casella di revisione, dove modifichi il testo, approvi o scarti
- La pubblicazione automatica esiste per repository, disattivata finché non la attivi
Arriva la modalità scura
Attivala nelle Impostazioni o lascia che segua il tema di sistema.
Una richiesta arriva come issue ed esce come voce
Su GitHub, il campo di feedback del widget apre una issue etichettata nel tuo repository, quindi entra nel triage che fai già. Unisci una pull request che dice fixes #12, approva la voce, e commentiamo quella issue con un link a ciò che è stato rilasciato.
- Tre etichette su ogni issue: bug o feature-request, una priorità e from-widget
- L'indirizzo email di chi invia non arriva mai alla issue né al modello che la classifica
- Verificano da soli lo stato nel widget. Non inviamo ancora loro un'email.
Modalità scura, per favore
Registrata automaticamente dal widget di feedback.
Rilasciato: viste salvate nella casella
Incluso in tutti i piani
Feed JSON del changelog
Voci pubblicate, dalla più recente, filtrabili per repository e paginate con un cursore opaco.
Feed JSON della roadmap
Planned, building e shipped, sempre in quest'ordine, guidati dalle etichette sulle tue issue di GitHub.
Widget incorporabile
Un custom element in uno shadow root, con novità, roadmap e feedback in tre schede.
Una pagina ospitata, come alternativa
Una pagina semplice per il tuo feed, per quando non hai ancora costruito la tua e per i link che lasciamo sulle issue.
Redatte dalle pull request unite
Titolo e descrizione di un merge diventano una voce rivolta ai clienti. Il codice no.
Casella di revisione
Modifica il testo, approva o scarta. Una bozza scartata si può ripristinare in seguito.
Modifiche interne filtrate
Aggiornamenti di dipendenze, modifiche alla CI, refactor e correzioni di refusi non arrivano mai in coda.
Feedback nel tuo repository GitHub
Su GitHub, gli invii dal widget aprono issue etichettate nel tuo repo, senza l'indirizzo email di chi invia. I progetti GitLab e Bitbucket alimentano solo il changelog.
Prezzo fisso per il team
Un solo prezzo per repository illimitati con il piano Team. Nessun sovrapprezzo per repository.
Le domande che si fa per prima uno sviluppatore
Posso renderizzare il changelog nella mia interfaccia?
Sì, ed è proprio questo il punto. Ogni voce pubblicata è servita da un feed JSON pubblico con CORS aperto a qualsiasi origine, senza chiave e senza login, quindi bastano dieci righe di React per renderizzarlo nei tuoi componenti. La documentazione per sviluppatori riporta ogni endpoint, campo e codice di stato.
Cosa serve al widget da parte mia?
Un tag script e un elemento con due attributi, il tuo id feed e l'origine dell'API. Si renderizza in uno shadow root, così il tuo CSS e il suo non si incontrano mai. Mostra novità, roadmap e un campo di feedback.
Cosa legge Changeloop dal mio repository?
Su GitHub, il titolo e la descrizione delle pull request unite nel tuo branch predefinito, oltre ai metadati del repository. La GitHub App non ha alcun permesso di leggere i file del tuo repository, ogni build di Changeloop viene controllata per assicurarsi che non richieda mai un diff, e tutto ciò che sembra un segreto viene rimosso prima che venga scritta la bozza. Lavora con token di installazione di breve durata invece che con un token di accesso personale. GitLab e Bitbucket inviano lo stesso tipo di dati tramite un webhook che aggiungi tu.
Viene pubblicato qualcosa senza di me?
No, a meno che tu non lo chieda. Le bozze restano nella casella di revisione finché qualcuno non le approva, e la pubblicazione automatica è un interruttore per repository che resta spento finché non lo attivi.
Che fine fa il feedback inviato dai miei utenti?
Su GitHub, apre una issue etichettata nel tuo repository, marcata come bug o feature-request, con una priorità e l'etichetta from-widget, così entra nel triage che fai già. Un progetto GitLab o Bitbucket alimenta il tuo changelog, ma non questo. Aprire una issue richiede un token di accesso che di proposito non chiediamo, e Bitbucket ha rimosso il suo issue tracker ad agosto 2026. L'indirizzo email di chi invia viene rimosso prima che il messaggio arrivi alla issue o al modello che la classifica. Quando approvi la voce che la rilascia, commentiamo sulla issue con un link a ciò che è stato rilasciato, e chi l'ha inviata può vedere lo stato nel widget. Non gli inviamo un'email, quella parte non è ancora stata realizzata.
Cosa è gratis e cosa è a pagamento?
Il piano Free copre un repository con 20 generazioni IA al mese e include il feed changelog, il feed roadmap, il widget e la pagina ospitata. Il piano Team è un prezzo fisso per repository illimitati.
DAL BLOG
Note sulla pratica
Release notes in pratica
Come scrivere release notes che la gente legge davvero
Modifiche alle API
Cos'è un cambiamento che rompe qualcosa, e come rilasciarlo
Ciclo di feedback
Chiudere il ciclo di feedback dal changelog
Metti il tuo changelog dentro il tuo prodotto.
Crea un account gratuito, collega un repository e punta la tua interfaccia al feed.


