Site Feedback Available

What did they want to tell you?

Numbers and recordings tell you that something is wrong. Feedback is how a visitor tells you what, attached to the exact thing on the page they were looking at and waiting in one inbox when you get to it.

What you get

One question, in the corner, out of the way.

A long survey on arrival is the thing people close. Feedback asks once, where the visitor already is, and remembers that they answered.

A rating, a comment, or both

A five-point scale and an open comment. Either half on its own is enough to submit. Someone who only wants to leave a two should not be made to write an essay about it.

Pinned to an element, not just a URL

"Point at what you mean" starts a picking mode: an outline follows the cursor, a click selects, Escape backs out. You get the element they chose, with the text that was in it.

An inbox that has states

Everything arrives as new and moves to triaged, resolved or spam. It is a queue you can finish, not a spreadsheet that grows.

It asks once, then stops

After someone submits, the widget stays quiet on that browser for a day. Nobody is asked to rate the same page twice in an afternoon.

Open it from your own button

Call skomi.feedback.open() after a checkout, or skomi.feedback.pick() to start straight in picking mode from a "report a problem" link.

It cannot break your styling

The widget renders in a shadow root, so your CSS does not reach into it and its CSS does not leak out. It follows the visitor's light or dark preference on its own.

The part that is hard

The element still has to be there tomorrow.

Pinning feedback to a thing on the page is easy to demonstrate and easy to get wrong. A reference that resolved when the visitor clicked, and resolves to nothing when you open the submission a week later, is worse than no reference at all.

So every reference is built and then checked, run back against the page to confirm it points at exactly the element that was clicked. Ids that a framework generated are refused outright, because they change on your next deploy. If nothing stable can be found, the submission falls back to the page and says so.

Picking
A live outline follows the cursor; clicking selects, Escape cancels.
Links stay put
Picking a link does not navigate the page out from under the visitor.
Stored with it
The page, the element, its text, the viewport position, and the browser.
Not just pages
The target can be a page, an element, or a point in a video: the same submission, a different target.
Worth knowing

What it does not do.

One question, and the wording is ours for now

The five-point scale and its question ship as they are. Editing the wording, choosing a different scale and running more than one prompt per site are planned, not built.

No screenshot is attached

You get the element and the text that was in it, not a picture of the page. If you also run Behavior, the recording is where you go to see it.

It is not a help desk

There is no reply thread and no ticket assignment. A submission is something you read and act on, not a conversation.

Installation
None. It runs from the script you already have.
Where it renders
A shadow root, isolated from your page's CSS in both directions.
Comment length
Up to 4,000 characters.
Retention
Set per site.

Let the page ask.

Switch Feedback on for a site and the widget is there on the next page load.