The open source Canny alternative

Users post and vote. Your agents read the top requests, move the roadmap and draft the changelog. Self-host on your own Cloudflare account, or use the cloud.

Works withClaude CodeCursorCodexChatGPTGemini CLI
feedback.acme.com
The openheard public board: a list of feature requests with vote counts

Run it through the agent you already use.

An MCP server and an HTTP API ship with it. Connect Claude Code, Cursor or Codex from the API keys page, then triage feedback, update the roadmap and draft the changelog from where you already work.

Ask in plain English
“What are the five most-voted requests that are still open?”
Act, not just read
Move a post to Planned, merge duplicates, reply to a voter.
Draft the changelog
Closed posts become a ready-to-edit entry. Followers get an email on publish.
Your keys, your scope
One key reaches every workspace you administer, or limit it to one. Hashed, shown once, revoke any time.
claude — openheard-mcp
● I'll pull this week's shipped posts, draft an entry and show it before publishing.
● Draft: “Dark mode for the widget, merge without losing votes, Slack status alerts.”
└ openheard.publish_changelog → published, 128 followers emailed
● Done. Live at acme.openheard.com/changelog/this-week

Post. Vote. Ship. Tell them.

Four screens. Each one does its job and stays out of the way.

A board users actually use.

Post, vote, comment. Duplicates merge without losing votes. Keyboard first, one accent colour, no clutter.

  • Several boards, posts held for approval if you want
  • One vote per user, anonymous voting optional
  • Tags, search, trending and top sorts
Public feedback board showing feature requests ranked by votes

A roadmap that stays honest.

Statuses are data. Drag a card in the dashboard and the public roadmap, the board and the changelog all agree.

  • Columns come from your statuses
  • Vote counts on every card
  • Hide it until you are ready
Dashboard roadmap view with kanban columns for Planned, In Progress and Shipped

Close the loop.

Write what shipped, link the posts, publish. People who voted or commented get an email. RSS for the rest.

  • Entries link back to the requests
  • Followers emailed on publish
  • RSS feed, version tags, drafts
Changelog page with published entries linked to shipped requests

An inbox, not a CRM.

Every post in one list with status, board, tags and votes. Filter, pin, merge, add an internal note, move on.

  • Quick filters by status, board and tag
  • Internal notes and reactions
  • CSV import and export
Dashboard inbox showing all posts with status filters and vote counts

Put the board inside your app.

A widget for feedback, the roadmap and what's new, plus a help center that answers questions before they become posts.

Feedback without leaving your product.

Users vote, post and read the changelog from a panel in the corner. A dot on the launcher tells them something new shipped.

  • One script tag, about 6 KB, works on any site
  • Theme, accent, launcher, position, corners and tabs
  • Limit it to your own sites, sign-in tokens expire in 12 hours
openheard widget open over a web app, showing the Feedback tab with posts ranked by votes
Let people vote more than once
From the help center
How voting works
Post your first idea

Answer it once.

Write guides in markdown and publish them at /help.

  • Collections with icons, search, popular and related
  • Readers mark an article helpful or not
  • Matching articles show up before someone posts

The export button is cut off on small screens, see the second one.

Paste or drop images2 of 4

Show, don't describe.

Screenshots on posts and comments, from the board or the dashboard.

  • Paste, drop or pick up to four images
  • PNG, JPEG, GIF or WebP, 5 MB each
  • Click any image to open it full size

Small tool. Whole loop.

Four things a feedback board has to get right. Nothing else.

Dark mode for the embedded widget
In progress · Mara Lindqvist · 2d

Votes that rank the inbox

One vote per user, no anonymous pile-ons unless you allow it. The board sorts itself.

This week: widget dark mode, merge, Slack alerts

Three shipped requests, 268 votes between them. Linked below.

Dark modeMergeSlack
Published · 128 followers emailed

Close the loop

Publish what shipped, link the posts, and the people who asked get an email. That is the whole point.

Planned
GitHub sync
▲ 77
SAML sign-in
▲ 84
In progress
Merge duplicates
▲ 112
Shipped
Dark mode widget
▲ 112

A roadmap that stays honest

Statuses are data. Drag a card and the board, the roadmap and the changelog agree.

claude
● 1. Dark mode for the widget · 128
● 2. Merge duplicates · 86
● 3. GitHub issue sync · 47

Ask it from Claude or Cursor

API keys, an HTTP API and an MCP server. Your agent reads the top requests before you plan a sprint.

Feedback tools go quiet after collection.

A user writes an idea, it lands in a dashboard, and that is the last they hear. openheard treats every post as the start of a loop, not the end of one.

Post, vote or comment and you follow the request. When it moves to Planned, you get an email. When it ships, you get the changelog entry that says so, with your request linked. One click unsubscribes.

Status emails are on by default for verified accounts. Turn the board on and the loop runs the same day.

01

Post

Whoever posts follows the request from the first minute.

02

Vote

Voting or commenting follows it too. Status changes reach all of them.

03

Ship

The changelog entry links the request. Followers get the email.

04

Return

Changelog subscribers and the RSS feed hear about every release.

It tells people, so you don't have to.

Your team hears about new posts. Your users hear when their idea moves.

product-feedback
o
openheard10:42

Status changed · by Mara Lindqvist · Planned → In progress · 128 votes

SlackDiscordWebhook
x-openheard-signature: t=1767225600,v1=9f2c…

Alerts in Slack and Discord

New posts, comments, status changes and changelog entries, filtered by board. Or a signed webhook to anything else.

Acme feedbackDark mode for the embedded widget is now shipped

An update from Acme on a post you follow

Dark mode for the embedded widget

In progressShipped
Stop emails about posts you follow

Emails when an idea moves

Verified accounts that voted, commented or posted hear when the idea changes status and when it ships. Every email has a one-click unsubscribe.

acme.comFound
LogoA
NameAcme
Accent
FontFraunces, for reference

Your brand, from your website

Paste your homepage. openheard reads its logo, name, colours and font, and applies the ones you tick.

Self-host is not a trial. It is the full product, forever.

zsh — ~/openheard
✓ Worker, KV and R2 bucket created
✓ D1 database migrated (28 tables)
# The first account to sign up becomes the admin.

Unlimited users. Every plan.

Every feature is on Free. Pro adds workspaces and support, never seats.

Free

$0/month

The whole product. Every feature, no seat limits.


Included

  • Unlimited users and votes
  • 2 workspaces
  • Board, roadmap, changelog, help center, widget
  • Email updates, Slack, Discord, webhooks
  • API and MCP server
  • CSV import and export

ProPopular

$19/month

For teams running more than one product.


Everything in Free, plus

  • 5 workspaces
  • Priority support

Self-hosting is free forever, no tier, no limits. AGPL-3. Deploy on your own Cloudflare account.

Frequently asked, plainly answered.

Everything else is in the docs and the README.

Yes. AGPL-3 means the code is free to use, modify and deploy. Running it on your own infrastructure for your own users is always free. If you change the code and let others use it, by download or over the network, you share your changes under the same licence.

Your users have opinions.

Start for freeOr self-host on your own Cloudflare account