in-page feedback · for the web
Point at
the problem
Stakeholders drop pinned, threaded comments straight onto the page. The screenshot, the URL and the element come attached. No more "the button on the thing looks wrong".
How it works
Three steps, no host-app rewrite
Install
One script tag is the whole integration
No build step, no host CSS to reconcile, no framework coupling. The install guide has the React, Vue and Solid variants of the same call, and the version is pinned so a future major release can't change your page without you.
Read the install guide<script type="module">
import { init } from 'https://esm.sh/@pixelmatters/markup@1.31.5'
init({
apiUrl: 'https://your-deployment.convex.site',
apiKey: 'markup_…',
})
</script>For agents
Your agent reads the feedback
Markup speaks the Model Context Protocol. Point Claude Code or Cursor at a project and it resolves the route it's editing, reads what people reported about that page, and acts on it before touching the code.
- list_threads
- get_thread
- search_comments
- reply_to_thread
- OAuth 2.1, no pasted keysA client registers itself and the user approves it in the browser.
- Never more than the personAccess is re-resolved from live project membership on every call.
- Scoped to one projectAn agent sees the threads for the project it was authorised against.
good is not good enough
Feedback is the shortest path to craft. Collect it from the people who use what you build, on the page, with the screenshot and the element already attached. Then reply where the work happens.