We didn't set out to build a feedback tool. We set out to add a feedback button to a side project, and got frustrated enough by the options that we built our own instead.
The gap
The hosted feedback boards (Canny, Nolt, Upvoty) are great if a public roadmap page is what you want, but they pull users out of your product to submit anything. The enterprise platforms (UserVoice, Productboard) solve real problems for big teams, but they start at hundreds of dollars a month and want a sales call before you've collected a single vote.
What we actually wanted was simpler: a button inside our own app, feedback that lands in a dashboard we control, and votes that sort themselves. Nobody was selling that as a starting point, only as an add-on once you were already paying for something bigger.
What we shipped first
So the first version of Upstep was deliberately small: a React component, an API key, and a table in a database. Two lines of code to mount it, a free plan with no credit card, and a dashboard that just showed what came in, sorted by votes. No workflow builder, no onboarding call, nothing to configure before it worked.
- Embed directly in your product, no redirect to a hosted board
- Users vote once, deduplicated automatically
- A free plan that's actually usable, not a seven-day trial
- Nothing to host or maintain on your side
What's next
That starting point hasn't changed, but the product around it has grown. Fluid triage boards, a built-in MCP server so an AI agent can work the inbox alongside you, and a redesign that we're genuinely proud to look at. Same free plan, same two lines of code to get started.