Beautiful hosted changelogs for SaaS products. Open source.
- Go 57.1%
- templ 42.9%
| .forgejo/workflows | ||
| internal | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| README.md | ||
🔥 ChangeBeacon
Beautiful hosted changelogs for SaaS products. Keep your users in the loop with gorgeous release notes, RSS feeds, and embeddable widgets.
Features
- REST API — Create/update changelog entries programmatically
- Public Changelog Pages — Beautiful, dark-themed pages per project
- Entry Types — Feature, fix, improvement, breaking change with badges
- Markdown Support — Rich descriptions with full markdown
- Dashboard — Datastar-powered real-time management UI
- RSS Feeds — Auto-generated per project
- Embeddable Widget — JS snippet for in-app changelog overlay
- Multi-Project — Manage multiple products from one instance
- SQLite — Zero-config, single-file database
- Single Binary — Deploy anywhere
Quick Start
go build -o changebeacon .
./changebeacon
Server starts on http://localhost:8090. Set PORT and DB_PATH env vars to customize.
API
Create a Project
curl -X POST http://localhost:8090/v1/projects \
-H "Content-Type: application/json" \
-d '{"name":"My App","slug":"my-app"}'
Response includes your api_key — save it!
Create an Entry
curl -X POST http://localhost:8090/v1/entries \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Dark mode support",
"description": "We added a beautiful dark mode. Toggle it in settings.",
"type": "feature"
}'
Update an Entry
curl -X PATCH http://localhost:8090/v1/entries/ENTRY_ID \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Updated title"}'
Entry Types
| Type | Badge |
|---|---|
feature |
✨ Feature |
fix |
🐛 Fix |
improvement |
💎 Improvement |
breaking |
⚠️ Breaking |
Public Pages
- Changelog:
http://localhost:8090/changelog/{slug} - RSS Feed:
http://localhost:8090/changelog/{slug}/rss - Dashboard:
http://localhost:8090/dashboard
Embeddable Widget
Add this to your app:
<script src="http://localhost:8090/changelog/my-app/widget.js"></script>
Shows a floating widget with latest changelog entries.
Pricing
- Free — 1 project, 50 entries, ChangeBeacon branding
- Pro ($9/mo) — 5 projects, unlimited entries, custom branding, custom domain
- Business ($29/mo) — Unlimited projects, team access, API webhooks
Tech Stack
- Go (stdlib
net/http) - Datastar (SSE-based reactive UI)
- SQLite (via
go-sqlite3) - Single binary, zero dependencies
License
MIT