Client review, tied to the build they actually saw.
Lyba adds client review to React deploy previews. CI creates a review round for each preview, you send one link, and clients comment on the real build — no account, no login. Each comment records the page and screen size, and each round stays connected to the commit under review, so later changes never blur what the client saw.
14 days free · No card · Next.js and Vite
$ npx @lyba/cli session create✓ Review session createdRound 02 · commit 4f2a9c1lyba.io/r/k7Qm2xA fresh preview. Its own review link.
Each round belongs to the version your client actually sees.
02 / RX One thread from feedback to fix.
From preview deploy to client sign-off.
One review layer in your app. One step after the preview deploy. Then share the link.
Install the review layer
npm install @lyba/react, then render<LybaReview />once near the root, gated to non-production builds.app/layout.tsx // app/layout.tsx import { LybaReview } from "@lyba/react"; <LybaReview enabled={process.env.NEXT_PUBLIC_VERCEL_ENV !== "production"} />Create a round from CI
npx @lyba/cli session createruns after the preview deploys. It detects the URL, commit, branch and PR, and prints the review link..github/workflows/preview.yml # .github/workflows/preview.yml - run: npx @lyba/cli session create env: LYBA_API_KEY: ${{ secrets.LYBA_API_KEY }}Clients review the preview
Post the link on the PR or send it over. Clients open the real preview and comment in place — nothing to install.Record a checkpoint
When it's right, the client approves, and the record names them, dates it and binds it to the commit under review.
Review history bound to a commit
Comments, resolutions and approvals stay connected to the commit under review, so later changes don't blur what the client saw at each stage.
The project moves on. The history stays.
A new collection needs a new review. Today’s feedback lives in Round 3, while the earlier approvals remain exactly where you left them.
Signed off.
Still on the record.
- Approved by
- Maya Lindqvist
- Round
- 02
- Commit
- 4f2a9c1
- Date
- 11 July 2026
Round 3 is in progress. This approval stays unchanged.
The context stays with the work.
- The real build, not a mockup
- Feedback lands on your actual deploy preview, so routing, data-fetching and interaction behave as they will in production.
- One round per preview
- Every preview deploy can get its own review link and its own record, so feedback never arrives detached from a build.
- Screen-size aware
- Each comment records mobile, tablet or desktop.
- Stays off in production
- Gate the widget with your own
enabledexpression. On production builds it mounts nothing, and Lyba also refuses to activate when it confidently detects a production environment. - Linear and Slack
- Push a comment into Linear as an issue, and get review activity in Slack.
How do clients review without an account?
One review link opens your deploy preview with the review layer active. Your client types their name and starts. No signup, no seat.
Which hosts work?
Anything with stable preview URLs. Vercel, Netlify and Cloudflare Pages are auto-detected; other CI can pass --preview-url.
Does the widget run in production?
No. Gate it with an enabled expression that is false in production. Lyba also applies its own production check, and the review layer only mounts when a valid review token is present.
Isn't this just bug reporting?
No. Bug-reporting tools are built for QA and engineering triage. Lyba is for client review and sign-off on previews — organised into rounds, with a record of what each client approved.
Do I need both packages?
Yes. @lyba/react renders the overlay; @lyba/cli creates the round from CI. Both are free on npm.
Do I need to change my CSP?
If you send a strict Content-Security-Policy, add Lyba's API origin to connect-src. Otherwise the toolbar can load but fail to validate the review link.
Keep every review tied to the build your client saw.
Collect feedback on the real preview, work through it round by round, and preserve the approval against the right commit.
Start free trial14 days free · No card · Set up in a minute