Een changelog-tool voor bedrijven met dev tools en API's.
Een changelog die de cirkel rondmaakt.
Je gebruikers vragen iets. Je team levert het. Degene die het vroeg hoort ervan. Items worden opgesteld op basis van samengevoegde pull requests, wachten op jouw controle en worden gepubliceerd via een JSON-feed of een widget van twee regels in je product.
Gratis voor één repository. Geen creditcard nodig.
Donkere modus is er
Zet hem aan in Instellingen, of laat hem het systeemthema volgen.
Geplaatst bij issue #482, waar erom gevraagd werd
Webhooks worden 24 uur lang opnieuw geprobeerd
Mislukte leveringen worden opnieuw geprobeerd met backoff, en elke poging staat in het dashboard.
CSV-exports houden je tijdzone aan
Tijdstempels in een export komen nu overeen met die in de app.
Dit lezen je gebruikers. Opgesteld op basis van de samengevoegde pull request, gepubliceerd zodra jij hem goedkeurt.
- Publieke JSON-feed bij elk pakket
- Widget insluiten in twee regels
- Concepten wachten standaard op controle
- Gratis voor één repository, geen kaart
Je changelog, gerenderd door je eigen code
De feed is een gewoon publiek endpoint met CORS open voor elke oorsprong, dus je kunt het lezen vanaf een pagina, een build-stap of curl. Tien regels React en je changelog is deel van je product in plaats van een link verderop.
- Filter op repository, pagineer met een cursor, tot 50 items per aanroep
- Sterke ETag en 60 seconden Cache-Control, zodat een ongewijzigde feed 304 antwoordt
- Ook een roadmap-feed, in drie vaste kolommen: 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} />); }
Of sluit hem in met twee regels
Een custom element dat rendert in een shadow root, waardoor het je stijlen niet overneemt en er ook niet in lekt. Het heeft drie tabbladen: je nieuws, je roadmap en een veld waarin je gebruikers kunnen schrijven.
- Twee attributen, je feed-id en de oorsprong van de API
- Zet een versie vast en de bytes ervan veranderen nooit, of neem automatisch de nieuwste build
- Geen npm-pakket, geen build-stap, geen sleutel om te rouleren
Opgesteld bij het samenvoegen, bewaard voor een mens
Een pull request wordt samengevoegd in je standaardbranch. Changeloop leest de titel en beschrijving en schrijft een item voor de mensen die je product gebruiken. Je broncode maakt daar nooit deel van uit.
- Dependency-updates, CI-werk en refactors worden eruit gefilterd voordat er iets wordt opgesteld
- Concepten wachten in de controle-inbox, waar je de tekst bewerkt, goedkeurt of weggooit
- Automatisch publiceren bestaat per repository, uitgeschakeld tot je het aanzet
Donkere modus is er
Zet hem aan in Instellingen, of laat hem het systeemthema volgen.
Een verzoek komt binnen als issue en gaat naar buiten als item
Op GitHub opent het feedbackveld van de widget een gelabeld issue in je eigen repository, zodat het in de triage komt die je al doet. Voeg een pull request samen die zegt fixes #12, keur het item goed, en we reageren op dat issue met een link naar wat er is uitgeleverd.
- Drie labels op elk issue: bug of feature-request, een prioriteit en from-widget
- Het e-mailadres van de verzender bereikt nooit het issue of het model dat het classificeert
- Ze controleren de status zelf in de widget. We sturen hen nog geen e-mail.
Donkere modus, graag
Automatisch aangemaakt vanuit de feedbackwidget.
Uitgeleverd: opgeslagen weergaven in de inbox
Inbegrepen bij elk pakket
Changelog-JSON-feed
Gepubliceerde items, nieuwste eerst, te filteren op repository en gepagineerd met een ondoorzichtige cursor.
Roadmap-JSON-feed
Planned, building en shipped, altijd in die volgorde, aangestuurd door labels op je eigen GitHub-issues.
Insluitbare widget
Een custom element in een shadow root, met updates, roadmap en feedback in drie tabbladen.
Een gehoste pagina, als terugvaloptie
Een eenvoudige pagina voor je feed, voor zolang je je eigen nog niet hebt gebouwd en voor de links die we op issues achterlaten.
Opgesteld op basis van samengevoegde pull requests
De titel en beschrijving van een merge worden een item voor je klanten. De code niet.
Controle-inbox
Bewerk de tekst, keur goed of gooi weg. Een weggegooid concept kun je later herstellen.
Interne wijzigingen eruit gefilterd
Dependency-updates, CI-wijzigingen, refactors en typfoutcorrecties komen nooit in de wachtrij.
Feedback in je eigen GitHub-repository
Op GitHub openen inzendingen via de widget gelabelde issues in je repo, zonder het e-mailadres van de verzender. GitLab- en Bitbucket-projecten voeden alleen de changelog.
Vaste teamprijs
Eén prijs voor onbeperkt veel repositories met het Team-pakket. Geen toeslag per repository.
Vragen die een ontwikkelaar als eerste stelt
Kan ik de changelog in mijn eigen interface renderen?
Ja, en daar draait het juist om. Elk gepubliceerd item komt uit een publieke JSON-feed met CORS open voor elke oorsprong, zonder sleutel en zonder inloggen, dus tien regels React zijn genoeg om het in je eigen componenten te renderen. De documentatie voor ontwikkelaars beschrijft elk endpoint, veld en elke statuscode.
Wat heeft de widget van mij nodig?
Een script-tag en één element met twee attributen: je feed-id en de oorsprong van de API. Hij rendert in een shadow root, dus jouw CSS en die van de widget zitten elkaar nooit in de weg. Hij toont updates, de roadmap en een feedbackveld.
Wat leest Changeloop uit mijn repository?
Op GitHub de titel en beschrijving van pull requests die worden samengevoegd in je standaardbranch, plus repository-metadata. De GitHub App heeft geen toestemming om de bestanden in je repository te lezen, elke build van Changeloop wordt gecontroleerd om zeker te weten dat hij nooit om een diff vraagt, en alles wat op een secret lijkt, wordt verwijderd voordat er een concept wordt geschreven. Het werkt via kortstondige installatietokens in plaats van een personal access token. GitLab en Bitbucket sturen hetzelfde soort gegevens via een webhook die je toevoegt.
Wordt er iets gepubliceerd zonder mij?
Niet tenzij je daarom vraagt. Concepten wachten in de controle-inbox tot iemand ze goedkeurt, en automatisch publiceren is een schakelaar per repository die uit blijft tot je hem aanzet.
Wat gebeurt er met feedback die mijn gebruikers sturen?
Op GitHub opent het een gelabeld issue in je eigen repository, met bug of feature-request, een prioriteit en het label from-widget, zodat het terechtkomt in de triage die je al doet. Een GitLab- of Bitbucket-project voedt je changelog, maar dit niet: een issue aanmaken vereist een toegangstoken waar we bewust niet om vragen, en Bitbucket heeft zijn issuetracker in augustus 2026 geschrapt. Het e-mailadres van de verzender wordt verwijderd voordat het bericht dat issue bereikt, of het model dat het classificeert. Wanneer je het item goedkeurt waarmee het wordt uitgeleverd, plaatsen we een reactie op het issue met een link naar wat er is uitgeleverd, en de verzender kan de status zien in de widget. We sturen diegene geen e-mail, dat onderdeel is nog niet gebouwd.
Wat is gratis en wat is betaald?
Het Free-pakket dekt één repository met 20 AI-generaties per maand, inclusief de changelog-feed, de roadmap-feed, de widget en de gehoste pagina. Het Team-pakket is één vaste prijs voor onbeperkt veel repositories.
VANAF DE BLOG
Notities uit de praktijk
Release notes in de praktijk
Hoe schrijf je release notes die mensen echt lezen
API-wijzigingen
Wat is een breaking change, en hoe breng je hem uit
Feedbackloop
De feedback-loop sluiten vanuit de changelog
Zet je changelog in je product.
Maak een gratis account aan, koppel één repository en richt je eigen interface op de feed.


