Docs
Everything you need to integrate AceFeed into your project.
Install
One script tag is all it takes. Pick your framework below and paste the snippet. Your project slug is in your dashboard widget settings.
<!-- Add before </body> -->
<script src="https://www.acefeed.xyz/widget.js" data-project="YOUR_PROJECT_SLUG"></script>Replace YOUR_PROJECT_SLUG with your actual slug from the dashboard. The widget auto-configures itself from your saved settings.
JavaScript API
Open AceFeed programmatically from anywhere — your own buttons, keyboard shortcuts, game menus, command palettes, or HUD elements. The widget doesn't need to show a trigger button at all.
Open the feedback panel
// Open with default type
AceFeed.open();
// Open pre-selecting a type: "bug", "feature", or "feedback"
AceFeed.open("bug");Show the changelog
AceFeed.changelog();Close / Toggle
AceFeed.close();
AceFeed.toggle();Example: Custom button trigger
<button onclick="AceFeed.open('bug')">Report Bug</button>
<button onclick="AceFeed.open('feature')">Suggest Feature</button>
<button onclick="AceFeed.changelog()">What's New</button>Example: Keyboard shortcut
document.addEventListener("keydown", (e) => {
if (e.key === "F" && e.shiftKey && e.ctrlKey) {
AceFeed.open();
}
});Example: Game menu item
// In your game menu system
menuItems.push({
label: "Feedback",
onClick: () => AceFeed.open()
});To hide the default floating button, set the widget preset to "Custom (no UI)" in your dashboard. The JS API still works — you just provide your own trigger.
Configuration
All widget settings are managed from your dashboard. Changes apply instantly — no code changes needed.
| Setting | Options |
|---|---|
| Trigger Style | Pill, Bubble, Tab, Custom image, No UI |
| Position | Bottom-right, Bottom-left, Top-right, Top-left |
| Color | Any hex color |
| Feedback Types | Bug Report, Feature Request, General Feedback (toggle each) |
| Optional or required | |
| Changelog | Show/hide the What's New tab |
| Shadow | None, Small, Medium, Large, Glow |
| Spam Protection | Cloudflare Turnstile (automatic) |
Auto-captured Context
Every feedback submission automatically includes context so you can reproduce issues instantly.
Page URL
The exact page the user was on
Browser
Chrome, Firefox, Safari, Edge
Operating System
Windows, macOS, iOS, Android, Linux
Console Errors
Last 5 JS errors at time of submission
Screenshot
User-attached screenshot (one click)
Feedback Type
Bug, Feature, or General
Suggestions Board
A public page where your users can submit and vote on feature ideas. Lives at acefeed.xyz/feedback/YOUR_SLUG.
Changelog
Publish updates directly from your dashboard. Entries appear in the widget's "What's New" tab and on your public feedback page.
Integrations
Get notified where you already work.
Get notified for every new submission
Discord
Route feedback to a webhook channel
Slack
Route feedback to a webhook channel
Troubleshooting
Common issues and fixes.
Widget doesn't appear
- Open browser DevTools → Console. Look for
[AceFeed]messages. - Verify your
data-projectslug matches your dashboard exactly. - Check the Network tab for the
/api/widget-configrequest — it should return 200. - If your site uses a strict CSP, allow
https://acefeed.xyzin script-src and connect-src.
Widget shows in Vercel preview but not on my site
Vercel's screenshot bot runs JavaScript, so it renders the widget in previews even if there's an issue for real users. Usually this means a CORS or CSP issue on your host. Check the console for blocked requests.
Turnstile doesn't load
The Cloudflare Turnstile challenge loads lazily when the widget opens. If it doesn't appear, your site's CSP may be blocking challenges.cloudflare.com.