SVG Badge¶
The app serves a dynamic SVG badge that reflects the live status of any issue's checklist. Embed it anywhere Markdown is rendered.
Badge URL¶
Example:
Embedding in Markdown¶
With a link back to the checklist:
[](https://app.signed-off.dev/checklist/acme/backend/42)
Privacy¶
Badge availability depends on whether the repository is public or private:
| Repository | Default behaviour | To enable badges |
|---|---|---|
| Public | Badge served to anyone | Nothing to do |
| Private | Returns a checklist \| private placeholder |
Set "publicBadges": true in checklist-app.json |
Private repos return a neutral placeholder badge (grey, labelled "private") rather than a 404, so embedded images don't break. No checklist data is exposed.
If your org uses private repos internally and you want badges in dashboards or wikis, opt in explicitly:
Badge states¶
| Checklist status | Badge colour |
|---|---|
All items done or na |
Green |
Some items pending |
Blue |
Any item exception without approval |
Orange |
| No checklist found | Grey |
| Private repo (opt-out) | Grey — "private" |
Caching¶
The badge endpoint sets Cache-Control: s-maxage=60. Cloudflare edge nodes cache it for up to 60 seconds, keeping GitHub API usage well within rate limits even on busy repos.
If you need a fresh badge immediately after a state update, append a cache-busting query parameter: