If you use Canny mostly for its changelog, moving it to Fizlog is one command: the importer pulls every published entry from Canny's API, with its Markdown, type and original date.
About 30 minutes · keeps your entries and their original dates · no credit card
Full side-by-side: Fizlog vs Canny.
Sign up (free for one project), create a project and open it. You need two values from the project page: the public key used in the embed snippet and the API key under "API access".
Canny's API lists every changelog entry with its Markdown content, publish date and types (new / improved / fixed — the same three types Fizlog uses). Copy your secret API key from Canny's API & Webhooks settings page. The importer pages through all entries and skips drafts.
php fizlog-import.php canny YOUR_CANNY_API_KEY
Only the changelog moves. Feedback posts, votes and roadmap items stay in Canny — Fizlog has no boards or voting.
Run the importer with --dry-run first to see every entry it found, then run it again without the flag. Entries keep their original dates and are imported silently, so no webhook or subscriber email fires for old posts.
The importer is a single PHP file with no dependencies — download fizlog-import.php or read it on the guides page.
export FIZLOG_API_KEY=your_project_api_key
php fizlog-import.php canny YOUR_CANNY_API_KEY --dry-run
php fizlog-import.php canny YOUR_CANNY_API_KEY
Replace the Canny widget code in your app with the Fizlog script tag. Without data-selector the widget shows as a small button in the corner; with it, the bell renders inside an element you choose.
<!-- Canny SDK loader (sdk.canny.io/sdk.js) -->
<script>!function(w,d,i,s){ /* ... */ }(window,document,"canny-jssdk","script");</script>
<script>
Canny('initChangelog', { appID: 'YOUR_APP_ID', position: 'bottom', align: 'left' });
</script>
<button data-canny-changelog>What's new</button>
<script src="https://fizlog.com/widget/widget.js"
data-project="YOUR_PUBLIC_KEY"
data-selector="#whats-new" async></script>
Canny's changelog lives on your Canny subdomain (or custom domain). Redirect that link to your Fizlog public page (fizlog.com/p.php?key=YOUR_PUBLIC_KEY — Fizlog doesn't host custom domains) and update links in your app. If you keep Canny for feedback, just remove its changelog link.
Open your app and the public page, confirm the entries look right, and only then cancel your Canny subscription.
Yes. Canny and Fizlog both use New, Improved and Fixed; the importer uses the first type of each entry.
Mostly. The importer sends Canny's Markdown as-is; Fizlog renders bold, italics, links, code and lists. Images and embeds are not shown.
No. Imported entries are silent — no webhook, no subscriber email.
Yes. The two widgets use different elements; just remove data-canny-changelog from your button and add the Fizlog script.
Export options per Canny's own documentation, checked September 2026: Canny API — list entries, Canny changelog widget. Vendors change their products — if a step no longer matches, check your plan's export options.
Free for one project, $0.99/mo flat for unlimited.
Start free on Fizlog — no credit card