Onboard new users. Hear from the ones who leave.
Two hosted pages, one tiny SDK — both independently optional. Install: welcome screen, "where did you hear about us?" microsurvey, optional setup steps. Uninstall: reason chips, free-form text, optional email opt-in. No new permissions. No trackers. Hashed IPs only.
Three lines of code. Two hosted pages. Zero new permissions.
From signup to first feedback row in under ten minutes.
Sign up
Email-based identifier; we generate a strong password and a one-time recovery code. We never send email.
Register your extension
Paste your Chrome Web Store ID. Configure copy, color, reason chips, and optional microsurvey from the dashboard.
Drop in the SDK
One ES module. Both pages are independently optional:
import { ExtensionFeedback }
from "./ef-sdk.js";
ExtensionFeedback.init({
apiKey: "ef_live_…",
install: true, // default false
uninstall: true, // default true
});
What we do, what we refuse to do.
We do
- Open hosted install & uninstall pages on your domain.
- Capture reason chips, free-form text, optional email opt-in.
- HMAC-hash the IP with a server-side secret. Cannot be reversed.
- Auto-NULL free-form text and email at 90 days.
- Show a one-click opt out link in every feedback page.
- Open-source the SDK (MIT). Audit it once and you're done.
We don't
- Ship third-party analytics (no GA, Plausible, Segment, Mixpanel).
- Run remote code from the SDK.
- Fingerprint or set cross-site tracking cookies.
- Sell, share, or license submission data.
- Send email — recovery is a code you save at signup.
- Require new manifest permissions.
storageis enough.
Open source. Single file. Zero dependencies.
Drop it in your extension folder, import it relatively, and you're done. No bundler, no npm install, nothing to evaluate at runtime.
Quick answers to common questions.
Does my extension need new permissions?
No. The SDK uses chrome.runtime.setUninstallURL() and chrome.runtime.onInstalled, both free, plus chrome.storage.local for a single 128-bit random ID — most extensions already have "storage".
Will the Chrome Web Store flag this?
An uninstall URL is an explicitly supported Chrome feature. You're not collecting anything you weren't entitled to. A short note in your privacy policy is good practice.
What does it cost?
Free during alpha. When pricing lands there will be a free tier and a paid tier; existing accounts get at least 30 days' notice and grace.
Where do I get the SDK?
Three options. Direct download from /sdk/ef-sdk.js; the public source at GitHub; or read it inline at /docs/sdk before downloading.
Can users opt out forever?
Yes — one click on /opt-out. We then drop every submission from that browser, for every extension on the platform, forever.