Skip to main content
Loupe opens the pages a merge request or pull request (MR/PR) changes and checks them like a user would. It runs your app on a machine you connect, then posts screenshots and any problems it found on the MR/PR.

Why use Loupe

  • Catch broken UI before merge. Loupe checks the running app, not the source: broken flows, crashes and blank pages, clipped or overlapping layout, phone layouts, wrong data, and missing empty, loading or error states.
  • See the change without running it. Reviewers get desktop and mobile screenshots of the changed pages, with no branch checkout.
  • Spot what moved. Each page is compared with the target branch, and every visible change is numbered.
  • One place to act. Real problems show as findings in the same review as your code findings.
  • Works on your stack. Next.js, Nuxt, SvelteKit, Remix, Astro and Vite apps, and server apps such as Rails, Django, Laravel and ASP.NET, on every code host Review supports.

Before you start

  • A repository connected in Review setup.
  • A Linux machine with a checkout of that repository, Node and Bun installed, and about 11 GB of free memory for a run. It can be a server, a VM or a CI runner. macOS and Windows machines can’t run Loupe, so use a Linux one. Loupe runs on it as a shared Worker.
  • Allow Workers turned on in workspace settings. It’s on unless a workspace Admin turned it off.
  • The workspace Admin role to connect the machine and turn Loupe on. See Roles.
  • A test account for your app, if its pages sit behind a sign-in. Don’t use your own account.

Set up Loupe

1

Open the Loupe row

Go to Review → Settings. In the General section, find Loupe and click Set up. A sheet opens with three steps: Connect a machine, Check your app and Ready.
2

Connect a machine

Run the two lines the sheet shows in your repository folder on the Linux machine. They install the CloudThinker CLI and start the machine. If the command expires, click Get a new command. To reuse a shared Worker, pick it under Run it on.Success state: the sheet moves on by itself once the machine is online, then lists what the machine has. Fix any item marked Not found and click Check again.
3

Check your app

Click Check my app. CloudThinker prepares your app, signs in with the test account and opens a few pages. It takes about 3–5 minutes. If it asks a question, reply in the chat inside the sheet.Loupe goes live only after it signs in and sees your pages. If it could only see public pages, choose Use public pages only or Add a test account.
4

Review what it saw

Keep the sheet open. When the check ends, Loupe turns on for the repository and shows the pages it opened. If it doesn’t turn on by itself, click Turn on Loupe.Success state: the sheet reads Ready on your repository, and the Loupe row shows Ready.
To pause Loupe, open the Loupe actions menu on the row and select Turn off. Your setup is kept, so you can turn it back on later.

What you see on the MR/PR

Every new MR/PR that changes your app’s pages gets one Loupe note: each checked page at desktop and mobile size, with its numbered changes from the target branch. Each push updates the same note. Problems show as findings in the review. When Loupe can’t run, the note says why and what to do next.

How it works

  1. Review starts on a new MR/PR, and Loupe starts at the same time on your connected machine.
  2. Loupe starts this MR/PR’s version of your app and the target branch’s version, side by side, isolated from the rest of your machine.
  3. It opens the changed pages at desktop and mobile size and walks the flows the change touches.
  4. It posts the Loupe note and files any problem as a finding.

Troubleshooting

Check that the Loupe row shows Ready and that Loupe is on for that repository. Loupe checks MRs/PRs that change your app’s pages, so a change with no UI files gets no note. The MR/PR branch must also live in the same repository, not a fork.
The machine stopped. Start it again on the machine, or pick another shared Worker in Review → Settings. The Loupe row shows Needs attention until the machine is back. Loupe checks the next push again.
Use a Linux machine with a recent kernel (6.2 or newer). Start it from your project folder, not your home folder.
Upgrade the plan or wait for the quota to renew. See usage and credits. Loupe checks the next push again.
The command may have expired: click Get a new command. If the machine went offline, run the command again. Also allow outbound HTTPS on port 443 from the machine.

Self-Hosted Sandbox (Workers)

Connect and manage the machine Loupe runs on

Review Setup

Connect your Git provider and repositories

Review Workspace

Triage and settle the findings Loupe files

Review Troubleshooting

Fix common Review problems