Title: Vifee Visual Feedback – Client Website Review &amp; Bug Reporting
Author: Grzegorz Puszka
Published: <strong>September 23, 2026</strong>
Last modified: September 24, 2026

---

Search plugins

![](https://ps.w.org/vifee-visual-feedback/assets/banner-772x250.png?rev=3709960)

![](https://ps.w.org/vifee-visual-feedback/assets/icon.svg?rev=3709960)

# Vifee Visual Feedback – Client Website Review & Bug Reporting

 By [Grzegorz Puszka](https://profiles.wordpress.org/grzegorzpuszka/)

[Download](https://downloads.wordpress.org/plugin/vifee-visual-feedback.1.0.5.zip)

 * [Details](https://wordpress.org/plugins/vifee-visual-feedback/#description)
 * [Reviews](https://wordpress.org/plugins/vifee-visual-feedback/#reviews)
 *  [Installation](https://wordpress.org/plugins/vifee-visual-feedback/#installation)
 * [Development](https://wordpress.org/plugins/vifee-visual-feedback/#developers)

 [Support](https://wordpress.org/support/plugin/vifee-visual-feedback/)

## Description

**Visual feedback and bug reporting, pinned right on the page**

Send a client or teammate a review link. They click around your site and pin comments
directly on the thing they mean — a headline, a button, a broken layout — with a
screenshot attached if it helps. No account for them to create, no browser extension
to install, no separate feedback tool to learn. “The button on the homepage looks
off” becomes a pin your team can act on, whether it’s a design note or a bug report.

#### Why teams pick Vifee for website feedback

**Pins that actually stay put**

Most website feedback tools lose track of where a comment belongs the moment the
page changes. Vifee anchors every pin with four fallback strategies — a CSS selector,
an XPath, an element offset, and a document-percentage position — so pins survive
a theme switch, a viewport resize, lazy-loaded content, and a full DOM rebuild. 
If the exact element is gone, the pin degrades gracefully instead of vanishing or
jumping to the wrong spot.

**Nothing leaves your server**

Feedback, screenshots, and reviewer details are stored in your own WordPress database
and a private, non-public uploads directory. Vifee makes no outbound requests, calls
no third-party API, and sends no telemetry. For agencies working with public-sector,
healthcare, or legal clients, “the data never leaves our server” is often a procurement
requirement, not a nice-to-have.

**A feedback widget, not a per-seat subscription**

There’s no per-user or per-project pricing here. You install the feedback widget
once and use it on as many review links, client sites, and reviewers as you need.

**How the visual feedback workflow works**

 * A manager creates a review link from the Vifee admin screen.
 * A reviewer who opens that link can leave pinned comments, screenshots and replies
   directly on the live site — no login required.
 * Managers triage client feedback from a kanban-style admin screen: status, priority,
   filters and a detail view with the full reply thread and activity history.

#### A paid add-on is planned

A separate PRO add-on is planned for agencies managing feedback across multiple 
client sites. It will be entirely optional — nothing described above is disabled,
watermarked, or held back in this free version to encourage an upgrade, and every
feature here stays free, forever.

#### Multisite

Vifee keeps separate feedback for every site of a network. When the plugin is active
on a site — individually or network-wide — that site gets its tables, keys, the `
manage_vifee_feedback` capability for administrators and its daily maintenance on
its first request, including sites added to the network later. Uninstalling honours
each site’s own “delete all data” setting.

### Privacy

Feedback may contain a display name, an optional private email address, technical
browser data, replies and screenshots. Optional email addresses are encrypted at
rest, using a dedicated encryption key generated on activation, and are never exposed
to other reviewers.

Feedback is retained indefinitely by default; there is no automatic expiry, and 
older feedback must be removed manually from the Vifee admin screen. Review sessions
expire automatically after 30 days.

Go to **Vifee  Settings** to opt in to deleting all Vifee feedback, attachments 
and reviewer data when the plugin is uninstalled. This is disabled by default, so
uninstalling the plugin normally leaves your feedback data in place.

This plugin supports the WordPress Tools  Export/Erase Personal Data screens. They
find guest reviewers by the email they left and signed-in authors by their WordPress
account, and cover the profile, submitted feedback, replies and attachments. Erasure
replaces the person’s text with a removal notice, clears browser details, deletes
their screenshots and ends their review sessions.

Screenshots are stored under random file names in a private uploads subdirectory
protected by `.htaccess` / `web.config`. On servers that ignore those files (nginx)
the random names keep them unguessable; to keep them out of the web root entirely,
define `VIFEE_PRIVATE_DIR` in `wp-config.php` with a directory outside it.

### Credits

**Bundled library**

The review widget bundles html2canvas (MIT licence, GPL-compatible: https://github.
com/niklasvh/html2canvas) to render the on-page screenshot capture entirely in the
reviewer’s browser. No image processing happens server-side and no third-party service
is involved.

## Screenshots

[⌊A pin left directly on the page it refers to — no separate tool, no screenshot
pasted into an email.⌉⌊A pin left directly on the page it refers to — no separate
tool, no screenshot pasted into an email.⌉[

A pin left directly on the page it refers to — no separate tool, no screenshot pasted
into an email.

[⌊The comment popover: priority, issue type, a reply, and a workflow status, all
without leaving the page.⌉⌊The comment popover: priority, issue type, a reply, and
a workflow status, all without leaving the page.⌉[

The comment popover: priority, issue type, a reply, and a workflow status, all without
leaving the page.

[⌊The full comment sidebar, with status/priority/issue-type filters and the reply
thread expanded.⌉⌊The full comment sidebar, with status/priority/issue-type filters
and the reply thread expanded.⌉[

The full comment sidebar, with status/priority/issue-type filters and the reply 
thread expanded.

[⌊The admin kanban board: every review link's feedback triaged by status, with priority
and issue-type badges.⌉⌊The admin kanban board: every review link's feedback triaged
by status, with priority and issue-type badges.⌉[

The admin kanban board: every review link’s feedback triaged by status, with priority
and issue-type badges.

## Installation

 1. Upload the plugin directory to `/wp-content/plugins/`.
 2. Activate Vifee Visual Feedback.
 3. Configure review access and data-retention preferences from the Vifee admin screens.

## FAQ

### Do reviewers need an account or a browser extension to leave feedback?

No. A reviewer opens the review link you send them and pins comments, screenshots
and replies straight on the live page — no WordPress account, no browser extension,
no separate app to install.

### Can I use Vifee to collect bug reports from clients, not just design feedback?

Yes. Every pin has an issue type — Task or Bug — plus a priority and a workflow 
status, so a client reporting “this form is broken” and a client suggesting “make
this button bigger” both land on the same triaged board instead of two different
inboxes.

### Can reviewers annotate a screenshot of the page instead of just leaving a comment?

Yes. A reviewer can attach a full-page or region screenshot to any pin and mark 
it up with shapes, arrows and a pixelation blur before sending — so a visual bug
report carries the exact picture the manager needs, not just a text description.

### Does the visual feedback widget work with Elementor, Divi, or any page builder?

Yes. The widget loads as a standard front-end script, independent of the theme or
page builder that rendered the page, so it works the same way on Elementor, Divi,
block-theme, or classic-theme sites.

### Can I use Vifee for client feedback across multiple websites?

Yes — install it on as many WordPress sites as you like at no extra cost; there’s
no per-site, per-user or per-project fee. Each installation keeps its own feedback
separate from every other one (see “Who can see feedback?” below for how that works
within a single site).

### Does Vifee send any data outside my WordPress installation?

No. Feedback, screenshots and reviewer data are stored in your own database and 
a private, non-public uploads subdirectory. The plugin does not call any third-party
service and does not send telemetry.

### Who can see feedback?

Only WordPress users with the `manage_vifee_feedback` capability (administrators,
by default) and guests who used a valid, unexpired review link can see and submit
feedback. The review widget is never shown to ordinary site visitors. Archived feedback
is visible only in the admin panel, never in the widget.

Note for agencies serving multiple clients on one installation: reviewers authenticated
through any valid review link share ONE feedback space per site — a reviewer for
Client A can read threads opened for Client B. Scope installations (or use WordPress
multisite) accordingly.

### What happens to feedback when I uninstall the plugin?

By default, nothing — your database tables and any stored attachments are left in
place so you can reinstall later without losing data. If you want uninstalling to
permanently delete everything, enable that under **Vifee  Settings** before you 
uninstall.

### Does Vifee require any particular PHP extensions?

Yes: the GD extension (for screenshot processing) and the Fileinfo extension (for
upload validation) are required in addition to PHP 8.1+. Most hosts enable both 
by default.

### Does Vifee work on WordPress multisite networks?

Vifee is activated and configured per site, not network-wide. Activating it on one
site in a network does not affect any other site, and network-activating it does
not automatically set up a new site added to the network afterward — activate it
individually on each site where you want it.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Vifee Visual Feedback – Client Website Review & Bug Reporting” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ Grzegorz Puszka ](https://profiles.wordpress.org/grzegorzpuszka/)

[Translate “Vifee Visual Feedback – Client Website Review & Bug Reporting” into your language.](https://translate.wordpress.org/projects/wp-plugins/vifee-visual-feedback)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/vifee-visual-feedback/),
check out the [SVN repository](https://plugins.svn.wordpress.org/vifee-visual-feedback/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/vifee-visual-feedback/)
by [RSS](https://plugins.trac.wordpress.org/log/vifee-visual-feedback/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.5

 * [Fixed] A screenshot of the visible part of the page shows what is on screen,
   not the top of the page, when the page is scrolled.
 * [Fixed] Screenshots place text exactly where it appears on the page, including
   on themes that display images as blocks, and centred layouts are no longer shifted
   sideways by half the scrollbar width.
 * [Feature] The WordPress admin bar shows feedback managers how many feedback items
   are open, with a link to the board.
 * [Feature] Compatible add-ons, such as the client portal in Vifee PRO, can let
   your client reply to feedback, move it between statuses and view its screenshots
   outside the widget, under the client’s own name.

#### 1.0.4

 * [Fixed] Archived feedback is visible only in the admin panel: the widget shows
   neither its pins nor its threads, and reviewers can no longer read, reply to,
   edit or download attachments from archived items.
 * [Feature] Reply to feedback from the details panel on the manager board (Markdown
   supported; Ctrl/Cmd+Enter sends). The thread author is notified as for replies
   from the widget.

#### 1.0.3

 * [Fixed] The widget shows every pin on a page instead of the newest 50.
 * [Fixed] The review-link screen lists every link instead of the newest 100, 50
   at a time with a “Show more” button.
 * [Fixed] Pages whose query parameters differ only in letter case no longer lose
   their pins.
 * [Fixed] Confirming an unsubscribe shows a page instead of raw JSON.
 * [Fixed] Reply notifications to guests no longer link to the admin board they 
   cannot open.
 * [Fixed] Impossible due dates such as 31 February are rejected instead of rolling
   into March.
 * [Fixed] A view-only review link no longer offers replying or editing that the
   server then refuses.
 * [Fixed] On multisite every site gets the capability, scheduled tasks and keys
   it needs; uninstalling cleans every site.
 * [Feature] Revoked review links can be deleted permanently.
 * [Changed] Review links expired for more than 90 days are deleted with their sessions
   by the daily maintenance.

#### 1.0.2

 * [Security] Attachment files are stored under a random name instead of their public
   identifier, so a server that ignores `.htaccess` (nginx) no longer serves a screenshot
   to anyone who has seen its id. Existing files are renamed in the background after
   the upgrade. The new `VIFEE_PRIVATE_DIR` constant moves storage outside the web
   root.
 * [Security] A reviewer can keep at most 10 unsent attachments at a time.
 * [Security] Failed review-link activations are limited per visitor, valid ones
   to 10 per 15 minutes per link, so reviewers behind one proxy or CDN address no
   longer lock each other out.
 * [Security] Personal-data export and erasure also cover feedback written by signed-
   in WordPress users; erasure clears browser details and ends the reviewer’s sessions.
 * [Performance] Notification e-mails are sent after the response, so posting feedback
   no longer waits for the mail server.
 * [Performance] One fewer database query on every page load, and cheaper reply 
   counts.

#### 1.0.1

 * [Security] REST endpoints no longer treat every signed-in WordPress account as
   a reviewer. Reading feedback, posting it, replying and uploading attachments 
   now require either the `manage_vifee_feedback` capability (administrators, by
   default) or an active review-link session. Before this release, on a site that
   lets visitors register, any signed-in account could read every feedback item 
   and screenshot and add its own — without a review link and without being a feedback
   manager. The widget never offered those actions to such an account, but the REST
   API accepted them.
 * [Fixed] A reviewer who happens to also be signed in to WordPress under an unrelated
   account is now served the widget and works as the guest their review link makes
   them, instead of being shut out.
 * [Fixed] Opening a review link with a name made only of spaces returned a server
   error instead of telling the reviewer the name is required.
 * [Fixed] Comment or reply text containing control characters could break the notification
   e-mail and turn a comment that had in fact been saved into an error response.
 * [Fixed] A notification or add-on listener that fails no longer turns a saved 
   comment into an error response.
 * [Fixed] Fresh installations no longer replay historical database migrations. 
   One of them re-created a column wide enough to exceed the database row limit,
   which could leave the schema incomplete on some hosts.
 * [Fixed] The request rate limiter no longer stops counting on object-cache backends
   without an atomic increment, and no longer writes a log line on every request
   there.
 * [Fixed] Two simultaneous first requests could each generate a different encryption
   key and the loser’s key was kept, permanently invalidating every review link 
   and stored reviewer address derived from it.
 * [Fixed] The daily retention sweep now clears its whole backlog instead of at 
   most 100 rows a day, so expired sessions and abandoned uploads can no longer 
   pile up faster than they are removed.
 * [Fixed] REST clients that authenticate with Application Passwords (rather than
   a browser session) can now write.
 * [Performance] The feedback list no longer runs three unindexed text comparisons
   per row when no search term is given, and the table gained an index for the default
   sort order.
 * [Performance] Editing or deleting a feedback item costs one database read instead
   of four, and the review-link screen no longer queries once per row.
 * [Performance] Private attachment storage is prepared only when a request actually
   reads or writes a file, instead of on every REST request the site serves.
 * [Feature] New `vifee_admin_feedback_filters` filter: an add-on can narrow the
   manager board by handing it a `uuidSource` descriptor, resolved as a SQL subquery
   against the add-on’s own table.
 * [Changed] Notification e-mails are now sent as HTML with a plain-text alternative:
   the comment sits in a quoted block, the page, priority and status are listed 
   as details, and a button opens the feedback board. Nothing in the message is 
   loaded from the network — no images, no web fonts, no tracking pixel — so reading
   one tells the sender nothing.
 * [Changed] The `uuidIn` / `uuidNotIn` request parameters on the manager feedback
   endpoint are gone, replaced by the filter above — they required shipping a list
   of identifiers over HTTP.
 * [Changed] Two tables created but never used by any release are dropped on upgrade.

#### 1.0.0

 * First public release.

## Meta

 *  Version **1.0.5**
 *  Last updated **2 minutes ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [bug report](https://wordpress.org/plugins/tags/bug-report/)[client feedback](https://wordpress.org/plugins/tags/client-feedback/)
   [screenshot](https://wordpress.org/plugins/tags/screenshot/)[visual feedback](https://wordpress.org/plugins/tags/visual-feedback/)
   [website feedback](https://wordpress.org/plugins/tags/website-feedback/)
 *  [Advanced View](https://wordpress.org/plugins/vifee-visual-feedback/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/vifee-visual-feedback/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/vifee-visual-feedback/reviews/)

## Contributors

 *   [ Grzegorz Puszka ](https://profiles.wordpress.org/grzegorzpuszka/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/vifee-visual-feedback/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://ko-fi.com/puszkadev)