Lyba for React

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

FROM DEPLOY TO DONEEXAMPLE WORKFLOW
atelier / nord-web⌘ 4f2a9c1
# After your preview deploy$ npx @lyba/cli session create✓ Review session createdRound 02 · commit 4f2a9c1lyba.io/r/k7Qm2x

A fresh preview. Its own review link.

Each round belongs to the version your client actually sees.

02 / RX One thread from feedback to fix.

How it works

From preview deploy to client sign-off.

One review layer in your app. One step after the preview deploy. Then share the link.

  1. 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"} />
  2. Create a round from CI

    npx @lyba/cli session create runs 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 }}
  3. 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.
  4. 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.
The project record

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.

Atelier Nord / Project historyExplore the rounds
ROUND 03 · COMMIT 8bd30f6

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.

1 resolved2 open
LYBA / APPROVAL RECORD✓ Preserved
✓

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.

01 → 02 → 03New rounds add to the story. They never erase it.Example project
Built for your workflow

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 enabled expression. 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.
FAQ
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 trial

14 days free · No card · Set up in a minute