Connect once. Publish forever.
A public changelog and release notes manager for WordPress plugins and themes. Connect your WordPress.org plugin slug or GitHub repository once and PatchNotes automatically syncs your changelog entries, publishes a beautiful public changelog page, generates an RSS feed, and notifies subscribers of new releases — all without any manual data entry.
- WordPress.org Auto-Sync — Enter your plugin or theme slug once; PatchNotes fetches and parses the changelog from the WordPress.org API automatically.
- GitHub Releases Auto-Sync — Connect any public or private GitHub repository; releases sync on a schedule you control.
- Manual Entry — Markdown editor with live preview and semantic version validation for entries not covered by auto-sync.
- Beautiful Public Changelog — Add
[patchnotes project="slug"]to any page for a timeline-style changelog with version badges, release type filters, and real-time search. - RSS Feed — Auto-generated RSS 2.0 feed per project at
/feed/patchnotes/{slug}/. - Email Notifications — Double opt-in subscriber system with batched delivery and one-click unsubscribe.
- REST API — Public and authenticated endpoints at
/wp-json/patchnotes/v1/. - Dashboard Widget — Recent releases across all projects, visible from wp-admin.
| Requirement | Version |
|---|---|
| WordPress | 6.3 or higher |
| PHP | 8.0 or higher |
| MySQL / MariaDB | WordPress minimum |
# From the WordPress plugins directory
wp plugin install patchnotes --activate
# Or manually
git clone https://github.com/KunalPareek21/patchnotes.git wp-content/plugins/patchnotes
wp plugin activate patchnotes- Activate the plugin.
- Go to Settings → PatchNotes → Projects → Add New Project.
- Choose a source: WordPress.org slug, GitHub repository, or Manual.
- Set sync frequency and save.
- Create a WordPress page and add the shortcode:
[patchnotes project="your-project-slug"]
| Document | Description |
|---|---|
| Setup Guide | Installation walkthrough and first project configuration |
| Architecture | Class responsibilities, database design, and technical decisions |
| Sync Sources | How WordPress.org and GitHub sync work in detail |
| Customization | Styling, template overrides, hooks, and filters |
| Shortcodes | Complete shortcode reference |
| REST API | All API endpoints with request/response examples |
| Notifications | Subscriber confirmation and release notification flow |
| Accessibility | WCAG 2.1 AA compliance details |
| Performance | Caching strategy and performance considerations |
| Contribution Guide | Development setup and contribution process |
| WordPress.org Submission | Submission checklist and Plugin Check results |
[patchnotes project="my-plugin"]
[patchnotes project="my-plugin" limit="10"]
[patchnotes project="my-plugin" type="security"]
[patchnotes project="my-plugin" show_subscribe="false"]
[patchnotes project="my-plugin" theme="dark"]
GET /wp-json/patchnotes/v1/changelog/{project_slug}
GET /wp-json/patchnotes/v1/changelog/{project_slug}/latest
POST /wp-json/patchnotes/v1/subscribe/{project_slug}
GET /wp-json/patchnotes/v1/confirm/{token}
GET /wp-json/patchnotes/v1/unsubscribe/{token}
Authenticated endpoints require WordPress authentication and manage_options capability. See docs/rest-api.md for complete reference.
- All inputs sanitized, all outputs escaped using the correct WordPress functions.
- Nonce verification on all forms and AJAX calls.
- Capability checks on all privileged operations.
- All database queries use
$wpdb->prepare(). - GitHub Personal Access Tokens stored AES-256-CBC encrypted.
- No data sent to any external service other than WordPress.org API and GitHub API, and only when you have explicitly configured a source of that type.
See docs/contribution-guide.md for development setup, coding standards, and the pull request process.
PatchNotes is open-source software licensed under the GNU General Public License v2 or later.
Kunal Pareek
- Website: kunalpareek.in
- Plugin page: kunalpareek.in/patchnotes
- GitHub: @KunalPareek21