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.

html
<!-- 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

javascript
// Open with default type
AceFeed.open();

// Open pre-selecting a type: "bug", "feature", or "feedback"
AceFeed.open("bug");

Show the changelog

javascript
AceFeed.changelog();

Close / Toggle

javascript
AceFeed.close();
AceFeed.toggle();

Example: Custom button trigger

html
<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

javascript
document.addEventListener("keydown", (e) => {
  if (e.key === "F" && e.shiftKey && e.ctrlKey) {
    AceFeed.open();
  }
});

Example: Game menu item

javascript
// 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.

SettingOptions
Trigger StylePill, Bubble, Tab, Custom image, No UI
PositionBottom-right, Bottom-left, Top-right, Top-left
ColorAny hex color
Feedback TypesBug Report, Feature Request, General Feedback (toggle each)
EmailOptional or required
ChangelogShow/hide the What's New tab
ShadowNone, Small, Medium, Large, Glow
Spam ProtectionCloudflare 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.

-Users submit feature ideas with title + description
-Anonymous upvoting (no login required)
-Status labels: Pending, Planned, In Progress, Done, Declined
-Filter by status, sort by votes or newest
-Spam-protected with Cloudflare Turnstile
-Link to it from your app, nav, or footer

Changelog

Publish updates directly from your dashboard. Entries appear in the widget's "What's New" tab and on your public feedback page.

-Entry types: New, Improved, Fixed, Removed
-Displays inside the widget (toggle "Show Changelog" on)
-Visible on your public /feedback/slug page
-Create and manage from the dashboard

Integrations

Get notified where you already work.

Email

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

  1. Open browser DevTools → Console. Look for [AceFeed] messages.
  2. Verify your data-project slug matches your dashboard exactly.
  3. Check the Network tab for the /api/widget-config request — it should return 200.
  4. If your site uses a strict CSP, allow https://acefeed.xyz in 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.