ohsee

Catchwhatchangedbeforeyourusersdo.

One command to test prod against dev, catching what changed on every page and breakpoint.

See it in action
  • padding: 24px → 20px
  • layout shift @ 768px
  • #7a6e62 → #4b5fed
  • “Sign up” → “Get started”
  • font-weight: 500 → 400
  • 3 elements added
  • border-radius: 6px → 10px
  • img[alt] removed
  • line-height: 1.5 → 1.4
  • max-width changed from none
  • margin-top: 0 → 8px
  • h2 → h3

Fast setup.

A few commands and Ohsee is installed, configured, and testing. The config for each test is saved in your project.

Every page, every breakpoint.

Ohsee runs through your test, capturing pages and breakpoints on both prod and dev. Configure it to work with logged-in states, dark mode, and specific flows.

Diffs that explain themselves.

Semantic diffing doesn't just show you what changed — it tells you. Layout shifts, color swaps, or new content. Accept the changes you want and fix what's broken.

See results in about a minute.

  1. Run it in your project

    No config yet? Ohsee walks you through the test name, your production and dev URLs, breakpoints, and pages. More advanced setups? Authenticated pages and scripted flows are easier in the visual wizard: ohsee init --wizard.

    cd your-projectnpx ohsee-qa
  2. Test and learn

    Both sides get captured at every breakpoint, diffed, and the report opens when it's done.

    npx ohsee-qa marketing
  3. Set it and forget it

    Once you've created your test, it's easy to validate changes again and again. Images live on your computer, so there's no limit to testing.

    git add ohsee.config.json

The rest of the toolkit.

  • Recorded flows

    Sign-in and multi-step journeys are easiest in the visual wizard — ohsee init --wizard. Record click, fill, and wait interactions once; they replay as test steps on every run.

    clickfillwaitcapture

  • Scripted steps

    Playwright function bodies, inline or in a file — anything you can drive, you can capture.

  • Logged-in states

    Sign in once per environment. Credentials come from ${ENV_VAR} references and never touch disk.

  • Variants

    Capture light and dark themes, feature flags, or any custom state via init scripts.

  • Semantic diffing

    Changes are named, not just highlighted — so review reads like a changelog.

    layoutspacingcolortypographycontent

  • Any stack, any host

    Ohsee compares URLs, not codebases. Webflow, WordPress, Shopify, a static export, someone else's site — if it answers on two addresses, it can be checked.