Preview feedback

A feedback overlay injected into preview URLs at the proxy level. Stakeholders click any element and leave a note; notes are stored as agent-readable .md files per route.

Preview deployments carry a feedback overlay injected at the proxy level — no app changes required. Stakeholders visit a preview URL, click any element, and leave a note. Notes are stored per route as Markdown files, so a developer or an agent can read exactly what to fix.

How it works

  • A stakeholder opens a preview URL.
  • A small floating button appears (the overlay is injected before </body>).
  • They click any element and add a note.
  • The note is stored against that page/route as a Markdown file.

Overlay behavior

  • Injected by the relay proxy on all preview / test URLs.
  • Never injected on production.
  • Works on any framework — the proxy rewrites the HTML response, no app cooperation needed.
  • A per-request nonce is generated for CSP compatibility.

Agent-readable notes

Notes are grouped per route into .md files, for example notes/checkout.md. A developer or an AI agent reads the file and knows exactly what to fix — no ticket system required.

# /checkout — Feedback Notes

## [OPEN] Button label is confusing
- **Author:** Sarah (Tester)
- **Element:** `button#submit-order`
- **Note:** "Place Order" should say "Complete Purchase".

Working with notes

primdb notes                  # list all open notes across routes
primdb notes --route /checkout  # notes for a specific route
primdb notes resolve <id>     # mark a note resolved
primdb notes export           # download all notes as a .md zip archive

Over MCP, an agent reads and resolves the same notes with get_notes, list_note_routes, create_note, and resolve_note, so a comment becomes the next iteration. See MCP.

Local preview with the overlay

You do not need a full deploy to collect feedback. primdb dev opens a public tunnel to a local port with the overlay injected, so stakeholders can review work-in-progress running on your machine.

primdb dev --port 3000              # public tunnel + feedback overlay
primdb dev --port 3000 --no-overlay # tunnel only, no overlay

View as Markdown