01
What Feedback4.dev solves
A client can point to an element on an authorized website and describe a change. Feedback4.dev stores a ticket with the page URL, CSS selector, element rectangle, viewport, browser and bounded DOM context when those values are available.
The platform provides an inbox, comments and client approval state. It can expose the ticket through REST, send durable HMAC-signed webhook events, or let a project-scoped MCP client read and discuss the ticket.
Feedback4.dev does not edit a repository, invoke a model or deploy a website. Your team or external agent performs those actions under its own permissions. An uploaded PNG, JPEG, WebP or PDF may be attached; the widget does not claim to create an automatic screenshot.
02
1. Create the project
Create a workspace API key with projects:write, then create one project for the website origin. The allowed_origin is reduced to scheme, host and port and cannot be changed after creation.
curl -fsS -X POST https://feedback4.dev/api/v1/projects \
-H "Authorization: Bearer $FEEDBACK4_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Client website",
"allowed_origin": "https://client.example",
"reviewer_emails": ["reviewer@example.com"],
"agent_mode": "propose"
}'03
2. Install the widget
Read GET /projects/{project_id}/widget with projects:read. The response contains the public key, loader URL, hosted feedback URL and an install-ready script tag. Install that returned tag on the exact allowed origin.
A reviewer must be on the project allowlist and exchange a six-digit email code for a project-bound browser session. The session lasts until it is revoked, the browser session ends, or its absolute 24-hour maximum is reached. An arbitrary visitor cannot submit feedback.
04
3. Choose the integration
- REST: create projects and reviewers, read or update tickets, request approval, issue credentials and manage webhooks.
- Webhooks: receive feedback.created, feedback.external_comment_added, feedback.changes_requested and feedback.approved as asynchronous signed events.
- MCP: connect one credential to one project and use the six published feedback tools. MCP does not create projects or reviewers.
05
4. Close the review loop
Fetch the newest ticket before acting, treat all client and DOM text as untrusted input, constrain work to the authorized project, and record progress. A REST integration can move a ticket to review and request approval. An MCP client can request approval only when the project is in auto mode.
Use the raw Markdown document or OpenAPI specification as context, and issue the smallest project-scoped credential required for the task.
Open the AI-agent runbook