one script tag, inside your running app
Anyone points at the bug.You get the file, the steps, the fix.
No screenshots. No reconstructing what happened. Every report lands on the board complete.
<script src="https://cdn.zidl.io/embed.js" data-hosts="localhost" data-zidl-key="zk_your_key"></script>Zidl in forty-seven seconds
the same bug, reported twice
“The button is broken.”
what your developer gets today
Which button. Which checkout. On what. Doing what first.
what Zidl sends from the same click
“Place order” overflows its container at 375px
- source
- src/components/Checkout.tsx:87:11open in Cursor
- route
- /checkout?tab,id
- surface
- modal
- steps
- 4 recordedcopy as Playwright test
Same click. One of them costs your developer twenty minutes of reconstruction.
the half nobody sends
It already recorded how you got there.
An always-on rolling buffer of clicks, typing, selects, Enter/Escape and navigations.
the buffer, trimmed on the way out
- 16:38:02navigate/productsdropped
- 16:38:11clicka “Cart”kept
- 16:38:14fillinput[qty-4242] → “3”kept
- 16:38:26fillinput[Card number]kept
- 16:38:31clickbutton “Place order”kept
await page.getByRole('link', { name: 'Cart' }).click()
await page.getByTestId('qty-4242').fill('3')
await page.getByLabel('Card number').fill('4242 4242 4242 4242')
await page.getByRole('button', { name: 'Place order' }).click()it's a task, not a comment
One list, wherever your team is looking at it.
install
Three lines, then start clicking.
No package, no build step, no browser extension. Zidl loads from the CDN and mounts itself in a shadow root, so it never touches your styles or your bundle. The developer notes cover isolation, versioning, and what it refuses to record.
<script
src="https://cdn.zidl.io/embed.js"
data-hosts="localhost,staging.yourapp.com"
data-zidl-key="generate link to start - 'sign-up'"
></script>import Script from 'next/script'
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
<Script
src="https://cdn.zidl.io/embed.js"
data-hosts="localhost,staging.yourapp.com"
data-zidl-key="generate link to start - 'sign-up'"
strategy="afterInteractive"
/>
</body>
</html>
)
}*.preview.yourapp.com to cover every preview deploy at once.where it fits
They send a picture.
Zidl sends a file path and a failing test.
Four claims a competitor can't copy cheaply.
- Inside your app
- Not an iframe, not a proxy, not an extension. Pixels can’t tell you a filename.
- No screenshots
- Vector marks on the live UI, nothing to go stale, no image to leak.
- Complete on arrival
- File, line, route, surface, and a repro that runs. Others send a picture.
- Pins that don’t lie
- Re-resolved every frame. A pin that can’t find its element hides rather than guesses.
pricing
Free while we're in beta.
One plan, everything included. We'll charge $15 a month later - for now, it costs nothing.
- ›Unlimited sessions and projects
- ›Pin-to-source-file resolution
- ›Step recorder and Playwright export
- ›Excalidraw drawing overlay
- ›Shared board: labels, severity, assignees
- ›Teams, invites and roles
still deciding?
Talk to the person who built it.
Thirty minutes, no deck. Bring your stack and I'll tell you straight whether Zidl fits it.