Drop one script tag into your app. Your users get a bell, a changelog, a bug report form, and a public roadmap. You get all the data — on your server, on your terms.
Product feedback tools are either expensive SaaS with per-seat pricing, or they force your users off-site to a public board. Ideabug is neither: it's a widget on your domain, a database you own, and code you can read.
One widget. Four jobs.
Announcements, bug reports, feature requests with voting, and a public roadmap — all from a single drop-in script.
Everything you need to close the loop between your product and your users
Publish product updates, ship changelogs, broadcast breaking changes. Per-user read tracking, per-user mute, and a bell badge that just works.
Users submit bugs from inside your app. Ideabug auto-attaches the current URL, viewport size, and user agent so you're not debugging blind.
Users suggest what they want. Other users vote. You prioritize based on actual demand instead of whoever emailed you last.
Now / Next / Shipped columns, available inside the widget and as a standalone shareable page. Transparency without the overhead of maintaining a Notion doc.
Pass segments (plan, region, role) in a signed JWT and target announcements to specific cohorts. Tell Pro users about Pro features, EU users about EU changes.
Users interact without signing up. When they later log into your app, their anonymous votes and read-state are atomically merged into their identified profile via JWT.
The user-facing widget lives in your app. The admin panel lives on your server.
What your users see
Rich changelog entries
Now / Next / Shipped — shareable standalone page
Draft, schedule, ship
Bugs + feature requests, triaged
Anonymous + identified users
Target announcements to cohorts
Two lines of HTML get you the default bell. Go deeper when you're ready.
Put a target div where you want the bell (usually your top nav), and load the script from your Ideabug host.
<div id="ideabug-feedback"></div>
<script
src="https://YOUR-IDEABUG-HOST/script.js"
data-ideabug-host="https://YOUR-IDEABUG-HOST"
data-ideabug-target="#ideabug-feedback"
defer
></script>
Standard Rails app — clone, set credentials, migrate, boot.
git clone https://github.com/humadroid-io/ideabug.git
cd ideabug
bundle install
bin/rails db:setup
bin/rails server
When a user logs into your app, sign an RS256 JWT in your backend and return it to the widget. Anonymous reads + votes are merged into the identified contact atomically.
window.IdeabugWidget.configure({
jwt: async () => fetch('/api/ideabug-token')
.then(r => r.text())
});
That's it. Your users have a feedback channel; you have the data.
View Full DocumentationAll MIT licensed. All battle-tested in Humadroid production. All free.
Ideabug is MIT licensed. Self-host it, fork it, rebrand it. No per-seat pricing, no feature gating, no dashboard-usage caps.
One of several open source projects from the team at Humadroid.
Running Ideabug in production? We'd love to hear about it. Share your story on GitHub or reach out to us.