Octochangelog is an open-source web tool that compares GitHub changelogs across multiple releases in a single view, automatically parsing, normalizing, grouping, and sorting release notes so you can see all changes between two versions without paginating through GitHub's release pages.
What is Octochangelog?
Octochangelog is a web application that takes a GitHub repository, a base version, and a target version, and returns a single-page comparison of all release notes between them. You provide the repo and two tag names; the app retrieves every release description from the GitHub API, processes the Markdown, and renders a categorized list of changes. The project is hosted at octochangelog.com and is developed as an open-source repository, with sponsors including Netlify, Happo, Pirsch, Sentry, and Currents.
Key Features
- Breaking changes on top — Octochangelog detects breaking-change groups across all release notes and lists them before any other category, so you never miss a potentially breaking upgrade.
- Automatic grouping by change level — Changes are classified into major (breaking), minor (features), and patch (bug fixes) groups based on Semantic Versioning conventions, plus any extra categories the repository uses.
- Version labeling — Each change is labeled with the release version that introduced it, which is useful when you need to pinpoint when a behavior shifted.
- Shareable links — You can share a single comparison URL with your team so reviewers can see the exact set of changes between two versions of a dependency.
- Markdown-to-React pipeline — The tool uses unified.js to convert Markdown from GitHub releases into an abstract syntax tree (MDAST), then into HTML, and finally into React elements, avoiding
dangerouslySetInnerHTML.
- Normalization of wording — It normalizes variations like "bugfix" vs "BUG FIXES" so equivalent change types from different repos are grouped together.
- Priority sorting — Sorting places Breaking Changes first, then Features, then Bug Fixes, then any other groups, with low-priority groups like Credits, Thanks, and Artifacts placed last.
Who is it for?
- Dependency-upgrade developers — Quickly review the delta between two versions of a library before upgrading, focusing on breaking changes.
- Engineering teams — Share a single comparison link in a PR or Slack so multiple reviewers see the same normalized changelog without clicking through GitHub releases.
- Open-source maintainers — Verify how their own release notes parse and group, which can highlight inconsistent labeling.
What can you do with Octochangelog?
- Compare any public GitHub repo — Pick a repo (e.g.
eslint-plugin-testing-library), choose base and target versions, and get a grouped changelog in one screen.
- Check for breaking changes at a glance — The top section lists all breaking changes found in the range, which is the first thing you want when assessing an upgrade.
- Review release categories — See features and bug fixes separated, and any non-SemVer categories the repository created, so nothing is hidden.
How does Octochangelog work?
The workflow is: enter a repository URL and two version tags, then the app fetches all release descriptions from the GitHub API. It parses each Markdown description into an MDAST, normalizes the change headings, groups them by level, sorts the groups with breaking changes first, and renders the final React output. The page also applies extra formatting, such as highlighting GitHub references and code blocks.
