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.
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
- Review starts on a new MR/PR, and Loupe starts at the same time on your connected machine.
- 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.
- It opens the changed pages at desktop and mobile size and walks the flows the change touches.
- It posts the Loupe note and files any problem as a finding.
Troubleshooting
An MR/PR has no Loupe note
An MR/PR has no Loupe note
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 note says the Worker is offline
The note says the Worker is offline
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.
The note says the machine can't run Loupe
The note says the machine can't run Loupe
Use a Linux machine with a recent kernel (6.2 or newer). Start it from your project folder, not your home folder.
The note says the workspace is out of credits
The note says the workspace is out of credits
Upgrade the plan or wait for the quota to renew. See usage and credits. Loupe checks the next push again.
The sheet stays on Waiting for the machine
The sheet stays on Waiting for the machine
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.
Related
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