Vai al contenuto

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.

acme.dev/changelog
  1. Aspetto

    Arriva la modalità scura

    Attivala nelle Impostazioni o lascia che segua il tema di sistema.

    Pubblicato sulla issue #482, dove era stata richiesta

  2. API

    Webhook ritentati per 24 ore

    Le consegne fallite vengono ritentate con backoff e ogni tentativo compare nella dashboard.

  3. Correzione

    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
FEED JSON

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
Ogni endpoint, campo e codice di stato è nella documentazione per sviluppatori
Changelog.tsx
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} />);
}
WIDGET

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
NovitàRoadmapFeedback
  1. Aspetto

    Arriva la modalità scura

  2. API

    Webhook ritentati per 24 ore

  3. Correzione

    Le esportazioni CSV mantengono il tuo fuso orario

index.html
<script src="https://api.changeloop.dev/widget.js"
        defer></script>

<changelogapp-widget
  data-public-id="YOUR_ID"
  data-api="https://api.changeloop.dev"
></changelogapp-widget>
BOZZA

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
yourteam/webapp
Pull request unita
Bozza scritta
In revisione
Pubblicata
feat(ui): add dark theme toggle (#517)
BOZZA · REVISIONE

Arriva la modalità scura

Attivala nelle Impostazioni o lascia che segua il tema di sistema.

ApprovaModificaSalta
FEEDBACK

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.
acme/web · issue #482

Modalità scura, per favore

feature-requestpriority:mediumfrom-widget

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.

Metti il tuo changelog dentro il tuo prodotto.

Crea un account gratuito, collega un repository e punta la tua interfaccia al feed.