Public roadmap and feedback board

A public board where users post requests, vote, and watch a roadmap, hosted at your own usero.io/b link or your domain.

Turn it on and you get a Canny-style board: anyone can submit a request and upvote without an account, you move items across roadmap columns, and you publish a changelog of what shipped. The board is the public-facing part of Usero, separate from the AI that opens your pull requests.

Telling users "we hear you" with no public place to prove it is how a roadmap turns into a black box. They ask twice, get no reply, and assume the request died, because nothing shows them otherwise.

Most teams keep their roadmap in a private tool and a Slack thread, so a user who asks for something has no way to see it was logged, no way to see anyone else wants it, and no way to learn when it ships. So the same request arrives five times, support re-answers it five times, and the user who asked first never finds out it is now live. The polished tools that solve this (Canny is the reference) dropped their free tier years ago and start near 79 dollars a month, which is a lot for a board you mostly want to stop re-answering the same question. What you want is plain: a page users can reach, post on, and vote on, that shows them the request is real, where it sits on the roadmap, and what already shipped.

How it works

Public roadmap and feedback board in Usero.

Disclosure: I build Usero, so weigh that, and let me be clear about what this is and is not. The board is the standalone, Canny-style part of Usero. You enable it in the project settings, Usero gives you a public board at usero.io/b/<slug>, and on a Pro or Team plan you can point your own domain at it. Anyone can submit a request and upvote it with no account (votes are deduped per browser), comment on a thread, and your team can post an official reply that is marked as the team. You run the board by moving each post through statuses you control: the defaults are Open, Under Review, Planned, In Progress, Complete, and Closed, and the three you flag as roadmap (Planned, In Progress, Complete) render as the public /roadmap columns. A separate changelog at /changelog is where you announce what shipped. Every public board post also lands in your Usero inbox as feedback, the same place your widget, Slack, forms, GitHub issues, and API feedback go. So a board post is classified, clustered with related reports, and on a connected repo can become a GitHub pull request you review and merge. The board stays the public face of your roadmap, and the same posts feed the code-fix pipeline behind it.

Submit and vote with no account

A visitor reaches usero.io/b/<slug>, posts a request with a title and description, and upvotes anything already there, all without signing up. Votes are deduped per browser, so the count reflects distinct people rather than one person clicking ten times. The lower the bar to vote, the more honest the count, which is the whole reason a public board beats a private list.

A roadmap users can actually see

You move each post through statuses you define. Flag a status as a roadmap column and it shows up on the public /roadmap view, so the defaults Planned, In Progress, and Complete become the three columns a user reads to see where their request sits. They stop asking "is this happening" because the answer is on the page.

Threads with an official team reply

Each post has a comment thread anyone can join, and a reply from your team is marked as official so it stands out from the crowd. That is how you answer "why not" once, in public, instead of re-typing it into five support tickets.

Awaiting reply, so nothing goes quiet

The board admin opens on an Awaiting reply list: public posts nobody on the team has replied to or moved to a status, most voted first, with how many days each has waited and a reply box on the row. Turn on the reminder and Usero emails the team once when a post has had no reply for 7 days (you pick the number). Internal notes do not count as a reply, and a post only shows up in one reminder.

Tell voters when, and tell them when it moves

Give a post a target month and voters see "Target Nov 2026" next to its status on the post, the board and the roadmap. If the month passes unshipped the chip says "running late" instead of quietly showing a stale date. Move it and the chip reads "Was Nov 2026, now Jan 2027", old month struck through, so the history is public. Your board admin lists every post past its target with a Move link to its row, and a per-post Public checkbox keeps a month private until you are ready to commit.

A changelog to close the loop

Publish what shipped to a /changelog on the same board. A user who voted for something gets a public record that it is done, which is the payoff that makes them vote next time. The changelog is authored by you, it is not auto-generated from posts you mark complete.

Vote on behalf of the people who asked elsewhere

Most requests arrive in a support ticket, a sales call or an email, never on the board. Add voter logs that person on the post with a priority (Nice to have, Important, Must have) and a private one-line note like "asked on the renewal call", from board settings, straight from the feedback item in your inbox, or from an agent through the MCP. When the post changes status, every voter gets one email with the old and new status and your note, so the person who asked in a ticket six weeks ago hears back without anyone remembering to tell them.

Votes by company

For a B2B product, twenty votes from one customer is not twenty customers. In your board admin every post reads "14 voters, 6 companies", the post list sorts by Most companies, and a post's voters are grouped by company with the people underneath, each company's must-have count and its MRR shown once. Companies come from the company traits you send with identify(), else the voter's work email domain; gmail and other free-mail addresses count as individuals. It is read live, so a customer who upgrades after voting shows today's MRR, and it never appears on the public board.

The demand travels with the ticket

Create a Linear, Jira or GitHub issue, or an AI pull request, from a post with 2 or more votes and the body gets a Demand section: "14 votes from 6 companies, $4k MRR", the must-have count, the top companies and two voter quotes, with the date it was written. A public GitHub repo gets the counts and a team-only link instead, so no customer is named in public, and no email address ever goes in.

Approve posts before they publish, on every plan

Turn on Hold new posts for review and new visitor posts and comments wait in a queue at the top of the board settings until you approve, reject, or mark them a duplicate. The submitter can still open their own held post under an awaiting-review banner; everyone else gets a 404. Approving publishes the post with its original submission time, emails the author that it is live, and sends it into your inbox like any other feedback. Two MCP tools, list_pending_board_posts and moderate_board_post, let an agent clear the queue from your editor. Featurebase sells this from $59 a seat a month and Sleekplan from $13 a month; here it is included on the free plan.

The honest objection

Does a public board just collect the loud 1 percent who bother to post, while the quiet majority is ignored?

That critique is real and I have written about it. Most users never post on a feedback board, so a board read on its own over-weights the vocal minority and the people angry enough to type. The honest answer is that the board is one input, not your whole signal. Treat the vote count as a tiebreaker among things you already suspect, not as your roadmap, and get the quiet majority from the channels they actually use: the widget mid-task, support, session replays, and reaching out to ten users directly. In Usero a board post also flows into the same inbox that clusters feedback and can open PRs, so the board is the public face of your roadmap and one input among several, not the whole source of truth for what to build. If you want a board purely to stop re-answering the same question and to show users their request is logged, it is a good fit. If you are hoping it tells you what to build, read it with that bias in mind.

FAQ

Quick answers about public roadmap and feedback board.

Do users need an account to post or vote on the board?

No. Anyone who reaches usero.io/b/<slug> can submit a request, upvote existing posts, and comment, all without signing up. Votes are deduped per browser so one person cannot inflate a count, and a request can include an optional email if the submitter wants a reply.

How does the roadmap work?

You move each post through statuses you control. The defaults are Open, Under Review, Planned, In Progress, Complete, and Closed. The statuses you flag as roadmap (Planned, In Progress, and Complete by default) appear as columns on the public /roadmap view, so users can see where a request sits. You can add, rename, or delete statuses.

Can I use my own domain for the board?

Yes, on the Pro and Team plans. By default the board lives at usero.io/b/<slug>; the paid tiers let you point a custom domain at it. The free board uses the usero.io URL. Confirm current plan details on the pricing page, these can change.

Does a voted-up post turn into a GitHub pull request?

Yes, when a GitHub repo is connected. A board post lands in your Usero inbox as feedback, clusters with related reports, and from the inbox or a cluster you click Create PR to open a pull request with a first pass at the fix. You review the diff and merge it yourself. Nothing auto-merges.

How is the changelog populated?

You write it. The changelog at /changelog on your board is authored by your team to announce what shipped (a feature, an improvement, a fix, or an announcement). Marking a post Complete does not automatically create a changelog entry; the two are separate so you control exactly what gets announced.

Can I add a vote for a user who asked in a support ticket or on a call?

Yes. On the Public Board settings page each post shows its voters; Add voter takes an email, an optional name, a priority (Nice to have, Important, Must have) and a private note. A feedback item in your inbox that has an email also has "Add as voter on a board post" in its Actions, and agents can do the same through the add_post_vote MCP tool. The person is not emailed when you add them. When the post changes status they get one email naming the board, the post, the old and new status and your note, with an unsubscribe link. Votes people cast on the board themselves cannot be removed by an admin, so the public count stays honest, and voters are never listed by name on the public post. There is no per-voter fee or tracked-user cap.

Can I see how many different companies want a feature, not just how many people?

Yes, with Votes by company. The board admin shows a company count next to every post's vote count, sorts posts by Most companies, and groups each post's voters by company with the people underneath, plus each company's must-have count and MRR (counted once per company). A voter's company comes from the company, companyName, company_name or organization trait you send with identify() (companyId keeps "Acme" and "Acme Inc" together), otherwise from their work email domain. Free-mail addresses such as gmail.com count as individuals, and board votes with no email as anonymous. Companies are only visible to your team, never on the public board, and the list_post_voters MCP tool returns the same grouping.

Turn that feedback into a pull request.

Free tier. No credit card. Two-minute install. The AI opens the PR, you merge it.

Get started free