Leave feedback on any part of the app

Turn on feedback mode, click the ✎ on the thing that is wrong, and watch it land in the review backlog.

Owned by Member · 9 steps · about 6 minutes

Why this exists

Feedback on this platform is not collected in a form on a contact page. It is attached to the thing you are complaining about: a note carries the page path, the element it was left on, a text snippet of what that element said, and the viewport width you were using. So "this is confusing" arrives already answering "what is, and where".

Why it is a mode and not an always-on click target. Every page is full of real links, buttons and forms. If clicking an element left a note, the app would be unusable. So you switch on feedback mode, and while it is on each block you hover grows a dashed outline and a ✎ button pinned to its corner. The ✎ lives in an overlay layer, never inside the block, which is why links and forms keep working normally while the mode is on. You click the pencil, never the element.

Why other people's notes are visible to you. The point is a shared review list. A per-person silo would produce five copies of "this heading is wrong" and no discussion, so on any page you can already open you see every note left on it, and you can reply. Two carve-outs keep that safe: notes on staff-only path prefixes (/admin, /debug, /scanner) are readable by employees only, because a captured snippet from an admin grid can contain other members' data; and a single setting narrows every non-staff surface to "your own notes" if this instance ever holds real user data.

Anchors are allowed to go stale, on purpose. A note points at an element with a generated CSS selector. Redesign the page and the element may be gone — the note is then flagged unanchored and kept, never deleted, because "the thing I complained about no longer exists" is usually the signal that it was fixed. The same applies to notes pinned to a moment in a workflow clip: re-record the clip and the note re-anchors to the same numbered step, or is flagged as an orphan if the step is gone.

Before you start

  • A signed-in session — any role. The overlay is not rendered for anonymous visitors.
  • Nothing else. Feedback mode is available on every page of the app.

Practise with

PersonaEmailPasswordNote
membermember@club.test member123can leave feedback and see their own backlog
venue_managermanager@club.test manager123can triage and export the whole backlog

Steps 1–6 — Member

their manual →
  1. 1
    Open any page of the app. Find the ✎ Feedback pill at the bottom-right of the window — it is on every page while you are signed in. The number on it, when there is one, is how many notes already exist on this page.
    /events annotations
    Expected result A labelled pill in the bottom-right corner, plus a menu entry under Feedback in the site menu.
    Watch out for It steps above a page that owns the bottom of the window (the contract signing bar, for example) rather than covering it.
  2. 2
    Click the pill, then choose Start leaving feedback. The keyboard shortcut Shift+A does the same thing from anywhere. The pill turns solid and reads Feedback: ON.
    /api/annotations/mode POST annotations
    Expected result A one-time hint explains the gesture, and the mode sticks: it is stored per user, so it is still on when you open the next page.
    Watch out for It is a per-user preference, not a per-page one. Turn it off when you are done or every page keeps outlining blocks as you hover.
  3. 3
    Hover the thing you want to talk about — a heading, a card, a table, a form. It gets a dashed outline. Click the that appears in its top-right corner: the pencil, not the element.
    Expected result A small compose popover opens next to that block.
    Watch out for Clicking the block itself does what it always did — follows the link, submits the form. That is deliberate.
  4. 4
    Write what is wrong, missing or confusing. Pick a category (bug / copy / layout / feature / question) and a priority, then save. Ctrl or Cmd + Enter saves; Esc cancels.
    /api/annotations POST annotations
    Expected result A numbered marker appears on that block. The numbers are assigned server-side, so everyone reviewing the page sees the same ones.
    Watch out for Notes are shared, and on this demo deployment the admin login is published in the banner — do not put anything sensitive in a note.
  5. 5
    Watching a recorded workflow clip instead of using a page? Press n while it plays. The video pauses, the current frame is captured, and the note is pinned to that workflow step and millisecond.
    /clips/{workflow_slug} clips
    Expected result The backlog item carries the workflow, step label, timestamp and a thumbnail, and links back into the player at that moment.
  6. 6
    Review what you have said: open Feedback in the site menu. That page is your own slice — notes you wrote, notes assigned to you, and notes you replied to — filterable by status.
    /my/annotations annotations
    Expected result Your notes, newest activity first, with their status and replies.
    Watch out for This is not the whole backlog. Staff triage the shared queue elsewhere; you only ever see what you are involved in here.

Steps 7–9 — Venue Manager

their manual →

Triages what comes in: sets priority, category and assignee, and exports the build list.

  1. 7
    Open the shared review queue from Feedback Review in the site menu. Filter by page, status, priority, category, anchor health, author or free text; the page-counts table shows where the complaints cluster.
    /admin/annotations annotations
    Expected result Every non-deleted note in the app, in one triageable list.
    Watch out for A note whose page column is shown as plain text rather than a link is a clip note: that value is the route pattern the step was on, not a page you can open.
  2. 8
    Open one note. Change its status through the pipeline, set priority and category, assign it to somebody, and reply in the thread.
    /admin/annotations/{annotation_id} POST annotations
    Expected result Every change is written to an append-only audit trail shown on the same page.
    Watch out for You may triage someone's note but never rewrite its body — only the author or an admin can edit the words. Deleting across authors, and restoring, are admin-only.
  3. 9
    Export the current filter set as a Markdown checklist, CSV or JSON. The Markdown one is a build list you can paste straight into a tracker.
    Expected result A downloaded file covering exactly the rows your filters selected, and an export entry in the audit trail.
    Watch out for Exports are attachments with nosniff, and CSV cells that begin with = + - or @ are prefixed with an apostrophe — spreadsheet formula injection is a real risk with user-written text.