Docs

Get started with FeedWix

Install the widget on your site in under a minute, or spin up a review project for images and videos. This page covers both, plus webhooks.

Install the widget

Paste this snippet just before the closing </body> tag on any site — plain HTML, Next.js, WordPress, Webflow, anything that renders a page. There are no other install steps.

HTML
<script async src="https://feedwix.outshade.com/widget.js" data-feedwix="YOUR_PROJECT_KEY"></script>

The script is tiny and loads lazily: reporters see a floating feedback button, and the screenshot and annotation code only downloads when someone actually opens it. The widget renders inside a Shadow DOM, so your site's CSS can't break it and its styles never leak onto your page.

Get your project key

Open your project in the dashboard and go to Project → Install. You'll find the ready-to-paste snippet with your key already filled in — replace YOUR_PROJECT_KEY above with it. The key only identifies which project feedback belongs to; it's designed to be public, so shipping it in your HTML is safe.

Domain allowlist

FeedWix only accepts submissions from domains you've allowlisted. Add your production and staging domains in Project → Install — requests from any other origin are rejected, so nobody can spam your inbox by copying your key onto another site.

What gets captured

Alongside the reporter's description, every widget submission automatically includes:

Annotated screenshot
Rendered in the reporter's browser via DOM rasterization — no external screenshot service ever sees your page.
Page URL
The exact page the reporter was on when they submitted.
Browser & OS
Browser name and version plus operating system, so you can reproduce reliably.
Viewport & screen size
Both the window size and the physical screen size — layout bugs love this.
Recent console errors
The last few JavaScript console errors (capped at 10), attached automatically.

If screenshot capture fails — for example, cross-origin images taint the canvas — the submission still goes through without it, and the failure is noted in the metadata.

Reporter privacy

The widget captures nothing until the reporter presses submit — no session recording, no keystroke logging, no tracking cookies on your site. Name and email are optional fields the reporter fills in themselves, and the screenshot is rendered entirely in their browser. Tell your users what's collected; this section is a good starting point.

Review projects: images & video

Not everything you ship is a website. For creatives and cut-downs, create a review project instead:

  1. Upload your assets — PNG, JPG, WebP, GIF and SVG images, or MP4 and WebM video.
  2. Copy the share link and send it to teammates or clients. Guests comment straight from the link — no account needed.
  3. Reviewers click the exact pixel to pin a comment on images, or drop comments anchored to timestamps on video. Everything lands in your inbox with statuses and assignees.

Webhooks

On Pro and Team plans, FeedWix can POST new feedback to any endpoint you register in workspace settings. Each delivery is signed with HMAC-SHA256 over the raw request body using your webhook secret, and the hex digest is sent in the X-FeedWix-Signature header. Always verify it before trusting a payload:

Node.js — verify the signature
import crypto from "node:crypto";

// rawBody: the exact request body string, before any JSON parsing
const expected = crypto
  .createHmac("sha256", process.env.FEEDWIX_WEBHOOK_SECRET)
  .update(rawBody)
  .digest("hex");

const received = request.headers.get("X-FeedWix-Signature");
const valid =
  received !== null &&
  crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(received));

Compute the HMAC over the raw body exactly as received — parsing and re-serializing JSON first will change the bytes and the check will fail.

Ready to try it on your site?

Create a project, grab your key, paste the snippet — feedback starts landing in your inbox.