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

hey the button is broken on checkout
16:42 · #eng-help

Which button. Which checkout. On what. Doing what first.

what Zidl sends from the same click

BUG-014highbug

“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
filed by Priya · QAassigned to Sam

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

  1. 16:38:02navigate/productsdropped
  2. 16:38:11clicka “Cart”kept
  3. 16:38:14fillinput[qty-4242] → “3”kept
  4. 16:38:26fillinput[Card number]kept
  5. 16:38:31clickbutton “Place order”kept
checkout.spec.ts
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()
spans tabs and reloadspasswords are never recordedgetByRole · getByTestId · getByLabel

it's a task, not a comment

One list, wherever your team is looking at it.

bugfeaturedesign+ your team's own
Severitylow · med · high · critical - orthogonal to label, because a feature request can be critical
Statusopen · fixed
Labelbug · feature · design · your team's own
Assigneeany member of the owning team
Stepsthe confirmed subset of the recording

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.

copy this
<script
  src="https://cdn.zidl.io/embed.js"
  data-hosts="localhost,staging.yourapp.com"
  data-zidl-key="generate link to start - 'sign-up'"
></script>
app/layout.tsx
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>
  )
}

data-hostsThe hostnames Zidl may wake up on. Ship the same tag everywhere on any host you did not list, it does nothing. Use *.preview.yourapp.com to cover every preview deploy at once.
data-forceAdd it to run Zidl anywhere anyway - preview deploys, a client walkthrough.
data-zidl-keyActivate your Zidl collaboration board and functionalities by generating your code - sign up.
thenReload the page. The Zidl panel docks to the edge - start pinning. Delete the tag and every trace is gone.

where it fits

They send a picture.
Zidl sends a file path and a failing test.

Marker.iohands your developer a screenshot and a console log
BugHerdhands your developer a screenshot pinned to a coordinate, not an element
Jamhands your developer a recording your developer has to watch end to end
Zidlhands your developer the element, the file, the line, and a repro that runs

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.

Zidl — everything
$15Free/ month, per team
beta pricing · no card required
  • 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.

Book a callopens Calendly · pick any slot