openheard
Feedback board, public roadmap and changelog for your product, in one Worker with D1, KV and R2
openheard public board with trending posts, vote counts and statuses, and board and roadmap counts in the sidebar
Customers post ideas and vote on them, the team moves requests across a roadmap, and shipped work lands in a changelog with RSS and email updates. Billed as an open source Canny alternative, openheard also has a help center, an embeddable widget and an MCP server, and deploys to your own Cloudflare account with Alchemy.
The public board takes posts with comments, reactions, images and a status timeline. Visitors can vote without an account, while posting can require sign-in or wait in an approval queue; people sign in with a password, a magic link or Google. In the dashboard the team works through an inbox, leaves internal notes, merges duplicates, pins posts and sets tags and ETAs, and custom statuses become the columns of the roadmap. Feedback can be imported from a CSV export of Canny or a similar tool and exported as JSON or CSV. Changelog entries link the shipped posts they announce. Voters and commenters get an email when a post changes status, and visitors can follow the changelog by email or RSS. A help center at /help holds searchable articles and suggests matching ones before someone files a new post. There is also a script-tag widget that embeds the board, roadmap and changelog in another app, an HTTP API with per-workspace keys, and an MCP server at /api/mcp so Claude, Cursor and other agents can read and triage feedback. The board has keyboard shortcuts for moving, voting, searching and posting. Branding can come from an existing website: openheard reads its accent color, logo and light or dark background. On Cloudflare the TanStack Start app runs as one Worker, with D1 for data, KV as a cache, R2 for uploaded images, rate-limit bindings on uploads and a nightly cron that removes orphaned images. Behind Cloudflare Access, people already signed in to Access land on the board without a second login. Setting ROOT_DOMAIN gives each workspace its own subdomain. A hosted version runs at openheard.com.
Built for: Founders and small product teams who want a public feedback board, roadmap and changelog running in their own Cloudflare account
What you can use it for
- Collect feature requests and votes from customers on a public board
- Publish a roadmap whose columns follow your own statuses
- Announce releases in a changelog with RSS and email subscriptions
- Show feedback, roadmap and changelog inside your app with a script-tag widget
- Let Claude or Cursor triage feedback through the MCP server
Deploy
CLI
Branch main
Set BETTER_AUTH_SECRET (openssl rand -base64 32) in packages/infra/.env and switch on R2 in the dashboard before running bun run deploy. Alchemy creates the Worker, D1, KV and R2 bucket, applies the migrations and prints the URL.
git clone https://github.com/Heilonng23/openheard cd openheard bun install cp packages/infra/.env.example packages/infra/.env cd packages/infra bunx alchemy login --configure cd ../.. bun run deploy
Optional settings for Google sign-in, Cloudflare Access, the email sender and workspace subdomains all go in the same packages/infra/.env file, followed by a redeploy.
What it needs to run
Also uses
- Google OAuth (optional): Adds Sign in with GoogleSource
Good to know
Email goes out through Cloudflare Email Sending from the address in EMAIL_FROM, which has to be on a domain onboarded for Email Sending. Left blank, EMAIL_FROM falls back to hello@openheard.com, which only works on openheard's own account. Magic links, password resets, status emails and changelog subscriptions then go undelivered; password and Google sign-in work either way. Switching on R2, which the deploy needs, asks for a payment method on the Cloudflare account. There is no Deploy to Cloudflare button; installing needs Bun and an Alchemy login. Young project: created in September 2026, with v0.1.0 as the first release on September 25, 2026. The first account to sign up becomes the admin, so register right after deploying. The widget, CLI and API client are planned as MIT packages; today the widget ships inside the AGPL-3.0 app and the CLI is not out yet.
Cost on Cloudflare
Likely fits the free plan
The README says everything fits in the free tier. The Worker, D1, KV, R2 and the nightly cron are covered by free allowances, with 10 GB of R2 storage included, but Cloudflare Email Sending to arbitrary recipients needs Workers Paid.
The estimate is based on Cloudflare’s documented limits and the app’s configuration. What you pay depends on your usage and plan.
Where this comes from
- Repositoryhttps://github.com/Heilonng23/openheard
- Demohttps://demo.openheard.com
- Documentationhttps://github.com/Heilonng23/openheard#self-host-on-cloudflare
- App websitehttps://openheard.com
An alternative to AnnounceKit, Beamer, Canny, Featurebase, FeatureOS, Frill, Headway, LaunchNotes, Nolt, Sleekplan, Upvoty, UserVoice.
Listing history
- Oct 3, 2026 · openheard listed
Similar apps
All Feedback Management apps
Self-hosted Canny alternative with voting boards, a public roadmap, changelogs and an in-app support widget
- Deploy
- One-click
- License
- MIT
- GitHub stars
- 168 stars
- Last commit