How to add a feedback widget to a Django app
Where the Bopmigo line goes in a Django app (your base template, for example templates/base.html), with code you can copy, and how to test it locally.

Short answer: paste your Bopmigo line into the base template your pages extend, just before </body>. Deploy.


Add it to Django
- 1
Create your Bopmigo project
Sign up at bopmigo.com, choose Website, and add your Django address. Copy your line from Install snippet:
HTML<script src="https://bopmigo.com/widget.js" data-project="YOUR-PROJECT-ID" defer></script> - 2
Open it
Open the base template your pages extend.
- 3
Add your line
Add the line before
</body>.HTML{# templates/base.html #} <body> {% block content %}{% endblock %} <script src="https://bopmigo.com/widget.js" data-project="YOUR-PROJECT-ID" defer></script> </body> - 4
Go live
Deploy.
- 5
Send yourself a test
Open the live page, choose Feedback and send a short report. It arrives in your Bopmigo inbox (and by email, if you turned that on). Reply, then open Feedback again to see your answer.
Django tips
- The Django admin uses its own templates, so the button won’t appear there unless you add it.
- If you use
django-csp, allowhttps://bopmigo.comfor scripts. - Add your local address (
http://127.0.0.1:8000) to the project to test withrunserver.
Single-page apps and client-side routing
Load the script once in the root layout, not per page. Bopmigo notes the page people are on when they report, including after client-side navigation, so there’s nothing to re-run on route changes.
Testing locally
Add your local address (for example http://localhost:3000) to the project in Bopmigo, alongside your production address. Reports are only accepted from addresses you list.
What Django users tend to report
- Form errors that clear what people typed.
- Time zone mistakes in dates and bookings.
- Admin users who can’t find a setting.

Your first week
- 1
Day 1: test locally and in production
Send a report from localhost and from your live site, and check both arrive in the same inbox.
- 2
Days 2 to 5: identify signed-in users
Pass the user ID and any useful context, such as plan or account, so each report says who it came from.
- 3
Days 6 and 7: route reports to your tracker
Copy reports that need code changes into your issue tracker, and reply when the fix ships.
Questions
Does it need a pip package?
No. It runs in the browser.
Can I hide it for anonymous users?
Yes, wrap it in {% if user.is_authenticated %}.
Why doesn’t the button show?
Check that the address you’re on is listed in your Bopmigo project, that the change is live, and open a private window in case of caching. If your site has a Content Security Policy, allow https://bopmigo.com.
More: all install guides · website options · install with a coding agent