Pull request reviews

A persona looks at the pages each pull request changes, and Tespr posts what they found on GitHub.

  1. Step 1
    Open a pull requestOn a repo that has a persona.
  2. Step 2
    A persona tries itThey use the pages it changes.
  3. Step 3
    Tespr commentsWith fixes. Code stays as is.

Works with Next.js (App Router) sites that get a preview for each pull request. Needs an invited Tespr account. No invite yet? Join the waitlist.

What you get on each pull request

  • A screenshot with the problems marked. Each page the change shows on (up to 3), as the persona saw it, with a numbered pin on every area they'd change.
  • What to change. The fixes under the same numbers, worded so they can be built.
  • Who looked and what they did. The persona's profile, their first impression and their steps, with a link to the full report in Tespr.
  • One comment and one check. The comment is edited in place on every push, so a pull request never fills up with repeats. The Tespr check shows the persona's score at a glance.

Set it up

  1. 1

    Connect GitHub

    In Tespr, open Pull requests and press Connect GitHub. Sign in to GitHub, pick the account, and choose the repos Tespr may read. You need to be an admin of a repo to connect it; the page lists only those.

  2. 2

    Pick a persona for each repo

    Each repo is reviewed by one of the personas already in your account, exactly as you wrote it. Nothing is reviewed until a repo has a persona, so connecting GitHub doesn't start anything by itself.

  3. 3

    Add a preview pass, if your previews are locked

    Public previews need nothing. If opening a preview asks for a login, see Locked previews. Not sure? Skip it: the first review will say if a pass is needed.

  4. 4

    Open a pull request

    The Tespr check appears within a minute. The review follows once the preview has built, usually a few minutes later, and shows up on the Pull requests page too.

What your repo needs

Next.js App Router (an app/ folder)
Why
How Tespr finds the pages that changed
Without it
Nothing is reviewed
A preview for each pull request
Why
The persona looks at the real page, not the code
Without it
Nothing is reviewed
Pages that open without signing in
Why
Tespr can't sign in to your product
Without it
Those pages are skipped

Previews from Vercel, Netlify and others all work. Drafts, pull requests from forks, and pull requests that change no page, component or stylesheet are skipped.

What it costs

Each page a persona reviews
How much
1 report, the same as a test in the app
A free account
How much
5 reports in total
Pages reviewed per pull request
How much
Up to 3
Persona reviews
How much
Up to 10 a day per account

When your reports run out, reviews stop and the pull request's comment says so. The Pull requests page shows how many you have left.

Locked previews

Public previews need nothing. If your Vercel previews ask for a login, give Tespr a pass in two steps:

  1. In Vercel, open your project › Settings › Deployment Protection › Protection Bypass for Automation. Create a secret if there isn't one, and copy it.
  2. In Tespr, open Pull requests, press Add pass on the repo, and paste it.
Is the pass safe to give Tespr?
  • It opens that project's previews, the way a visitor would see them. It gives no access to your code, your Vercel account or its settings.
  • Tespr stores it encrypted and never shows it again.
  • It's sent only to that repo's own preview on vercel.app, and only when Vercel itself reported the preview. A preview address someone else recorded on the repo never gets it.
  • Remove it in Tespr, or make a new one in Vercel, at any time.

Passes work for Vercel previews on vercel.app only. Previews on another host, or on your own domain, have to be public for now.

Settings in your repo

Optional. Add a .tespr.yml at the repo's root to choose which pages are reviewed. It's read from the branch the pull request targets.

.tespr.yml
pages:
  # Leave these out (and everything under them).
  exclude:
    - /dashboard
    - /admin
  # Or review only these.
  # include:
  #   - /pricing

What Tespr can access

Contents: read
Used for
Working out which pages changed, and reading .tespr.yml
Pull requests: read and write
Used for
Reading the pull request and posting the comment
Checks: write
Used for
The Tespr check on the commit
Deployments: read
Used for
Finding the preview built for the commit
Which repos Tespr can reach

Only the repos you chose, and each review can reach only its own repo. It can't push code, merge, or change settings.

Who can connect a repo

Only an admin of the repo. If that person stops being an admin, reviews on the repo switch off and its saved pass is deleted.

What's sent to other services

To write a review, the changed files and screenshots of the changed pages go to Anthropic's Claude. Previews are opened through Firecrawl, which receives the preview pass with the request when one is saved.

Where screenshots and reports are kept

In your Tespr account. The picture in the comment is served by Tespr from an address that can't be guessed.

Turn it off

One repo
Do this
Switch off Review pull requests on its row
What's kept
Its settings
A whole GitHub account
Do this
Open the account's ⋯ menu and press Disconnect
What's kept
Past reviews and reports
Tespr on GitHub
Do this
Uninstall it in your GitHub settings, under Applications
What's kept
Past reviews and reports

If something's missing

Nothing appeared on my pull request

Check the repo has a persona and Review pull requests is on. Drafts, pull requests from forks, and ones that change no page, component or stylesheet get nothing.

The review says the preview is behind a login

Save the repo's preview pass (see Locked previews), then push again.

A page says it was not reviewed

It sent Tespr to a sign-in page, or you had no reports left. Only pages that open without signing in can be reviewed; leave the rest out with pages.exclude.

A repo I added on GitHub isn't listed

Press Refresh repos at the top of the Pull requests page. Tespr lists only repos you're an admin of.

It says “Nothing was connected”

You can see the repo on GitHub but aren't one of its admins. Ask an admin to connect it from their own Tespr account.

It says “Already connected to another Tespr account”

A GitHub account can be connected to one Tespr account at a time. Whoever connected it can disconnect it, or an owner can uninstall Tespr on GitHub and add it again.

It says “Your request went to the organisation's owners”

Your organisation only lets owners add apps. Once one of them approves Tespr on GitHub, press Connect GitHub again.

An account says “Paused on GitHub”

Someone suspended Tespr for that account in GitHub's settings. Nothing is reviewed until it's unsuspended there.

I want to connect a second GitHub account

Press Connect another GitHub account under your repos. GitHub asks which account to add Tespr to.