Your client points at the problem. You get what you need to fix it.
A small button on the site you're building. Your client clicks what's wrong and writes a sentence; you get everything you'd otherwise have to ask for.
Free while it's new. Your clients install nothing and never need an account.
Client Screen
Projects
“Book a table” does nothing when clicked
AnnotatedClean
Bread at seven,
coffee all day.
A small bakery and café on Trubarjeva cesta in Ljubljana. Everything is baked here, every morning.
Book a tableOn the counter today
Sourdough loaf5,80 €
Walnut potica, slice3,60 €
Cinnamon bun3,40 €
Flat white2,90 €
Opening hours
Monday to Friday7:00 to 18:00
Saturday8:00 to 14:00
SundayClosed
Ana wrote
Nothing happens when I click this. Tried twice.
- Page
lipa.example/- Element
- The button “Book a table”
a.btn.book - Seen on
- A 1440 px wide laptop, Chrome 140, macOS
- Console
TypeError: Cannot read properties of null (reading 'showModal')- Failed request
GET /api/slots 500
What the email leaves out
The page, the browser and the error are what you'd write back to ask for. The report already has them.
How it arrives now
Re: Re: Fwd: website changes
Ana to me, yesterday at 21:04
Hi,
the booking button isn't working?? Also Tomaž says the page looks strange on his computer, can you check.
I put everything in the PowerPoint again, slides 9 to 12 are new.
Sent from my iPhone
lipa website changes v4 FINAL.pptx23 MB
What the report has already answered
- Which button?
- The button “Book a table”
a.btn.book - On which page?
- The home page, reached from the menu
lipa.example/ - What were they using?
- A 1440 px wide laptop, Chrome 140, macOS
- Did the page complain?
TypeError: Cannot read properties of null (reading 'showModal')- Did a request fail?
GET /api/slots 500
What your client has to do
Open the link you sent
Make a review link and send it however you already talk to them. Only people with the link see the button.
Click what's wrong
One click on the button, one click on the thing. They can draw on it or hide something private.
Write a sentence
They hear back by email in plain words, “We're on it” or “Please check”, with a link to a page where they can reply.
Bread at seven,
coffee all day.
A small bakery and café on Trubarjeva cesta in Ljubljana. Everything is baked here, every morning.
Book a tableOn the counter today
Sourdough loaf5,80 €
Walnut potica, slice3,60 €
Cinnamon bun3,40 €
Flat white2,90 €
Opening hours
Monday to Friday7:00 to 18:00
Saturday8:00 to 14:00
SundayClosed
The button “Book a table”
What's wrong?
Nothing happens when I click this. Tried twice.
How much does it get in the way?
Your side of it
Reports land on a board: a list or six columns, with filters, search and keyboard shortcuts. It's built for one person with a handful of clients, so there's nothing to configure.
You work in your words, they read theirs
You move a report to “Ready for check”. Your client gets an email that says “Please check”. Notes you mark as internal stay internal.
| On your board | Your client reads |
|---|---|
| New | Received |
| Accepted | Planned |
| In progress | We're on it |
| Ready for check | Please check |
| Done | Fixed |
| Won't do | Not planned |
Your coding agent can read it too
Copy as prompt puts the report into one block for any agent. Or connect Claude Code or Cursor over MCP, and it can read open reports, fix one and mark it ready for your client to check.
Fix LIPA-14, then mark it for Ana to check.
get_issue LIPA-14
Her screenshot, her words, the element and the console error. The dialog was looked up before it existed; fixed in booking.js.
set_status LIPA-14 ready_for_check
Ana gets an email: “Please check”.
One script tag
Paste it before the closing body tag, whatever the site is built with. The install page turns green when it sees the widget load.
<script
src="https://cdn.client-screen.com/v1/widget.js"
data-key="pk_your_project_key"
data-api="https://scintillating-civet-800.eu-west-1.convex.site"
async
></script>- About 3 KB
- That's all that loads until someone clicks the button. The screenshot code comes after the click.
- No cookies
- And no tracking. It keeps two things in the reviewer's own browser: their review link's token, and a draft of what they were writing.
- Its own shadow root
- Your CSS can't reach the widget, and the widget's CSS can't reach your site.
- Doesn't lose reports
- With no connection, the report is kept in the browser and sent on the next visit.
What it doesn't do
It's a new product, and I'd rather you knew these now than after you've installed it.
- Screenshots are rebuilt from the page, not photographed. Now and then one comes out a little off, embedded players and videos show as a placeholder, and a page that takes more than five seconds to capture goes without one. The element, the browser details and the error log don't depend on the screenshot.
- No Jira, Linear or Slack integrations. The board inside Client Screen is meant to be enough for one person. If your work lives in Jira, Marker.io and BugHerd do that well.
- No session replay or screen recording yet. You get the pages the client visited on the way, the console and the failed requests, but not a video.
- No team seats. One workspace, one person. Studios come later.
Pricing
Free
Everything on this page is free while Client Screen is new. There are no plans to choose from and no card to enter.
Send your client a review link this week.
Sign in, make a project, paste one script tag.