Installs and uninstalls
A commenting layer that drops onto a React or plain HTML site for the review, and comes off again when it ships.
An internal tool I built at Now We Collide in 2026, and it’s in use on client projects now. Clients leave comments on the page itself, and an agent reads them, sorts them, and asks before it changes anything.
An internal tool made for Now We Collide.
A commenting layer that drops onto a React or plain HTML site for the review, and comes off again when it ships.
Comments live in a database an agent can read, so it can make the edits for you rather than waiting on a hand-written list.
Move between rounds of feedback and between design options without leaving the browser.
An agent reads the component, its text, its layout and where it sits on the page, so it knows exactly what the comment is about.
Clients ask things as well as request changes. The agent drafts a reply for a human to approve.
It implements what it can and stops where it should. The harder the change, the more it has to ask first.
The real kit, running on a page about itself. Hover to see what a comment would attach to, click to leave one, or switch design options in the bar. Nothing you write here is saved.
Feedback used to be scattered. Now it is centralised.

Feedback is consolidated. Instead of someone compiling it out of emails, messages and meetings, clients, colleagues and stakeholders all leave their comments, questions and feedback on a preview of the site. That streamlines getting it implemented, and because an agent can read it, it drops into an AI workflow rather than sitting outside one.
Nobody asked me to build any of this. Feedback was scattered, so I added commenting to the page. It was popular with clients and colleagues, so I turned it into an installable kit we could reuse. Then I wrote the setup instructions into the kit itself, so an AI can install it for anyone who isn’t technical.
A comment saves a lot more than the text you type. It also records what you clicked on, what section that was in, and what was next to it.
Can this say “Click anywhere on the page to comment”? Bit clearer.
EditReply…ResolveThe agent reading these comments can’t see the page, so it has no idea what a comment is referring to. All the relevant context about the thing being commented on gets passed in with it. A CSS selector tells the agent where something sits in the markup, but not what that thing is, so the comment records the element, its text, the heading above it and the nearest thing to it.
Resolved comments get marked resolved rather than deleted, which stops the agent working on the same comment twice and lets it see what earlier rounds already changed, so it stops undoing its own work between runs.
Comments vary a lot. Some are a typo fix, some are a real design decision. The agent puts each one into one of five groups, and it only acts on its own for the simplest.
Copy, spacing or colour. There is nothing to decide, so it makes the change.
Simple to do, but it needs a yes or a no from me first, so it asks.
A real design decision. It writes up to three ways to do it, says which one it would pick, and waits.
Recommendation. Option 2. Smallest change, and it says why that card matters rather than just making it louder.
The client is asking something rather than requesting a change. It drafts an answer for me to check, and the comment stays open until someone has replied.
Drafted reply. Each card is a CMS entry, so you can edit the icon, heading and text yourself once we hand over. Adding or removing a card is a layout change, so send those our way.
The agent drafts the answer. I check it before it goes to the client.
This could mean the spacing, the copy or the numbers. It says it does not know, and leaves the comment alone.
I didn’t think about this going in, but most of the decisions above are about making the tool work for an agent rather than a person: what it can read, what it might get wrong, and what it needs to remember between runs.
An internal tool I built at Now We Collide in 2026, in use on client projects. It installs onto any site that is being reviewed and adds a landing screen showing the site is a draft, a bar for switching between design options, and commenting that works by clicking anywhere on the page. There is no login. Each design option keeps its own comments.
Feedback used to arrive across Outlook, Teams, Slack, Figma, Zoom, Otter, Word and Acrobat. Now it is centralised: clients, colleagues and stakeholders leave comments, questions and feedback on a preview of the site, which streamlines getting it implemented and lets an agent read it as part of an AI workflow.
Nobody asked me to build any of it. Feedback was scattered, so I added commenting to the page. It was popular with clients and colleagues, so I turned it into an installable kit we could reuse, and wrote the setup instructions into the kit itself so an AI can install it for anyone who is not technical.
Each comment records the element you clicked, its role and visible text, its size, the section heading above it, the nearest thing to it with a direction and a distance, plus who left it, when, which page and which design option. The agent reading it cannot see the page, and a selector says where something sits in the markup but not what it is. Resolved comments are marked rather than deleted, so the agent does not work on the same comment twice and can see what earlier rounds already changed.
I had only run it on client comments, so I tried it on seventeen of my own. It found a rendering bug and told me what was causing it. I added that context so the agent would know what people were pointing at, and it turned out to be useful for debugging too.
Five groups. A small change is copy, spacing or colour, with nothing to decide, so it makes the change. A quick change is simple but needs a yes or no first. A big change is a real design decision, so it writes up to three ways to do it, says which it would pick, and waits. A question is the client asking something rather than requesting a change, so it drafts an answer for me to check before it goes back to them. Anything it cannot read confidently is flagged and left alone.
Most of the decisions here are about making the tool work for an agent rather than a person: what it can read, what it might get wrong, and what it needs to remember between runs.