EveryRole

Every page of your app, checked as every kind of user.

The bug only paying customers hit never shows when you click around signed out. Paste your address: EveryRole opens your live app as each kind of user (visitors, members, admins…), suggests tests, and runs the ones you add after every deploy.

300 free credits every monthNo cardIt never sees your code

The board is a real run, not a mock-up: EveryRole testing everyrole.dev itself, as a visitor, on Nov 15, 2026. Visitor only for now: the signed-in kinds of user come with its next run. Click any tag to see the page.

everyrole.devFirst look of Nov 15, 2026
Covered4 Pages with a gap9

Passed is a test result. A gap is a page a kind of user saw with no test yet.

4 of 4 tests passed, each in two passes in a row.

PageVisitorSigned out
/Every page of your app, checked as every kind of user.
/loginWelcome back
/signupStart free
/forgotReset your password
/legal/termsTerms of Service
/legal/privacyPrivacy Policy
/pricingPay for what gets checked, nothing else.
/legal/cookiesCookie Policy
/legal/subprocessorsSub-processors
/legal/refundsRefund Policy
/legal/acceptable-useAcceptable Use
/legal/data-deletionData Deletion
/docsDocs
4 of the 13 pages found have a test; 9 gaps left, each one a test EveryRole can suggest.

Every test shows what it did.

A real test from the same run. It is a “fills a form” test: it fills in the form like a real user, EveryRole stops the save before it reaches the app, and the test checks that the form tried to save. It ran twice, and passed both times.

/login
Welcome back, after the last step, on Nov 15, 2026
everyrole.dev/login after the last step, Nov 15, 2026
Passed

A visitor can submit the log-in form with email and password

As Visitor. Fills a form, 5 steps.

  1. 1Clicked “Sign in”
  2. 2Typed into “Email”
  3. 3Typed into “Password Forgot it?”
  4. 4Clicked “Log in”
  5. 5Checked that the form tried to saveSave request seen and stopped: FORM https://everyrole.dev/login

Built for the bugs that quietly lose users.

An uptime checker

Knows a page loaded. Not that a member can still use it, or that a visitor is kept out of the dashboard.

Playwright you write

Tests what you scripted, as long as you keep writing and fixing the scripts after every change.

EveryRole

Suggests tests from your live site, as each kind of user, each tried twice for real. Nothing runs as a test until you add it, one by one or all at once. It says when it’s the test, not your app, that needs updating.

Every kind of user, and who may open what

Give one test login per kind of user: member, admin, paying customer. EveryRole signs in as each and checks that every page opens for the people it should, and sends everyone else away.

Passedthe page opened for someone who may see it
Blockedsomeone who may not was sent away, as they should be

Your data stays as it is, unless you say otherwise

While exploring, every request that would save is blocked in the browser. Each suggested test is one of three kinds, and you see which before you keep it.

LooksOpens pages and checks what’s shown.
Fills a formFills in and submits like a real user, but the save request is blocked. The test checks that the form tried to save and what the page shows.
Changes dataReally creates, edits or sends. Never added automatically, only when you add it by name. It runs only in the environments you allow, like preview deploys, and never on production by default.

Never-click words (“Delete”, “Pay”…) are refused before every click, while exploring and in every test.

The one exception is clean-up: after a change about new accounts, EveryRole deletes the test accounts it created itself, through your app’s own settings. It never touches your test logins or real users, and if your app has no way to delete an account, it says so instead of leaving junk behind.

The journey that loses new users

Start the main action signed out, hit the sign-up wall, confirm the email, come back to what you were doing with nothing lost. EveryRole finds each stage on your live site and tests it. When it breaks, one sentence says where.

Signing up makes a new account, so this runs only where you allow new accounts.

  1. Start the main action, signed out
  2. Meet the sign-up wall
  3. Confirm the email (EveryRole opens it itself)
  4. Back where you were, nothing lost
  5. The first real result

Your coding agent says what changed. EveryRole proves it.

Claude Code or Cursor describes the change in plain words. EveryRole plans every path that proves it, plus the variants that usually break (a refresh after signing in, a button pressed twice), runs them with a screenshot per step, and keeps them as tests after the merge. Indie, Pro and Team.

# connect it once, in Claude Code
claude mcp add --transport http \
  everyrole http://everyrole.dev/mcp \
  --header "Authorization: Bearer $KEY"

Five test results. Each one says what to do next.

Pass or fail comes from checks on the loaded page: the text it shows, the address it reached, a button that is there.

Passed

The page showed what the test expects, as that kind of user.

Nothing to do. A run where nothing changed sends no alert.

Broken

Your app didn’t do what the test expects. The only red result.

An alert on the Alerts page, and by email or Slack on Indie, Pro and Team, with the step it stopped at, the screenshot and the replay.

Needs updating

Your app worked, but the test asked for something that can’t happen.

EveryRole suggests the fix to the test. You approve it or keep the old check.

Couldn’t check

A problem on our side, not in your app: the network failed, a browser stopped answering.

It costs no credits, never alerts you, and runs again next time.

Not run

Something it needs failed first, usually signing in as that kind of user.

The run says which sign-in failed, so you fix the test login, not each test.

After every deploy, and every morning.

Your deploy calls a private link when it finishes, and the new version is tested as every kind of user. A daily run catches what breaks without a deploy.

The ready-to-paste snippets for GitHub Actions, Vercel, Netlify and any pipeline are in the docs.

# .github/workflows/everyrole.yml
# tests production after each successful deploy (Vercel and Netlify report theirs to GitHub)
name: EveryRole
on: deployment_status
jobs:
  test:
    if: >-
      github.event.deployment_status.state == 'success' &&
      github.event.deployment_status.environment == 'Production'
    runs-on: ubuntu-latest
    steps:
      - run: >-
          curl -fsS -X POST
          "${{ secrets.EVERYROLE_DEPLOY_HOOK }}"
          -d "commit=${{ github.sha }}"
  • After every deployTwo deploys in a row while a run waits start one run, on the newest version.Indie, Pro and Team. Preview and staging deploys: Pro and Team.
  • Every day at the hour you pickIn your own time zone, on every plan.
  • Alerts only when something changesA test that broke or needs updating, or one that works again. Always on the Alerts page in the app, and a check-up email that proves your apps are watched: weekly on every plan.Email and Slack alerts, and a daily or only-when-something-changes check-up email: Indie, Pro and Team.

Start free. Pay when it has proved itself.

Compare plans and estimate your month

Free

$0
  • 300 credits a month
  • 1 app, 1 person
  • 2 kinds of user per app, plus the visitor

Indie

$19 a month
  • 2,000 credits a month
  • 3 apps, 1 person
  • 4 kinds of user per app, plus the visitor

Pro

$49 a month
  • 8,000 credits a month
  • 10 apps, 3 people
  • 8 kinds of user per app, plus the visitor

Team

$149 a month
  • 25,000 credits a month
  • 30 apps, 10 people
  • Any number of kinds of user per app

You see what a run costs before anything is spent, and anything we couldn’t check is free.

See your own app checked, page by page.

The first look is free and needs nothing but the address. You see your pages before you set anything up.

Already have an account? Sign in