Happo is a hosted visual regression and accessibility testing service that captures your React UI and compares it with a baseline. To add it to a project, install the happo development dependency, create a root configuration file, supply API credentials through environment variables, select browser targets, and run npx happo. In CI, the same command captures the configured UI and provides results for review alongside code changes.
For Indian React teams, the documented setup is straightforward, but the sources reviewed do not establish India-specific pricing, taxes, payment methods, or support terms. Verify those details with Happo before adopting it commercially.
What Happo does—and what it does not replace
Happo is a hosted service for visual regression and accessibility checks. A code change triggers a CI run; Happo captures screenshots and compares them with an existing baseline so reviewers can inspect visual differences. Its official site describes integrations with Storybook, Cypress, Playwright, GitHub Actions, CircleCI, and other CI systems: Happo.
It complements, rather than replaces, functional and end-to-end tests. A behavior test can pass while a color, position, layout, or rendering change makes the interface harder to use. Happo-hosted customer Arne Zeising of re:cap describes that distinction: their Playwright tests passed while Happo detected unwanted text-color and positioning changes. That is a customer example, not evidence that every visual issue will be caught or that results are guaranteed.
#1 Best Overall
Set up Happo in a React project
1. Install the package
From the React project root, add Happo as a development dependency using the package manager already used by the project:
npm install happo --save-devpnpm add happo --save-devyarn add happo --dev
Happo’s official repository documents the consolidated happo package and CLI. Do not rely on a pinned version from this guide; check the package registry for the current release when installing.
2. Add a root configuration
Create happo.config.ts at the project root. The repository’s example imports defineConfig from happo, supplies credentials from environment variables, and defines capture targets. A minimal configuration shape is:
import { defineConfig } from 'happo';
export default defineConfig({
apiKey: process.env.HAPPO_API_KEY,
apiSecret: process.env.HAPPO_API_SECRET,
targets: [
{ name: 'chrome-desktop', browser: 'chrome', viewport: { width: 1280, height: 720 } },
{ name: 'firefox-desktop', browser: 'firefox' },
{ name: 'ios-safari', browser: 'ios-safari' },
],
});
Use the exact option structure supported by the installed release if adapting this illustrative configuration; the official README is the reference for the current schema: Happo repository and configuration documentation.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →3. Provide credentials safely
Set HAPPO_API_KEY and HAPPO_API_SECRET in the local environment for a first run. In CI, save them using the CI provider’s secret mechanism and expose them to the job as environment variables. Do not commit API credentials to the repository. The README specifies the variable names but does not give provider-specific secret-storage UI steps.
4. Choose targets that reflect your users
The documented target types include desktop chrome, firefox, edge, safari, and accessibility, as well as ios-safari and ipad-safari. Target settings can include viewport sizing, maximum dimensions, color-scheme preferences, and animation silencing. Start with the browsers and viewports important to the application; adding targets increases the set of captures and review surface.
Animated APNG capture is described as experimental and is not supported on iOS Safari or iPad Safari. Avoid depending on that mode for those targets.
5. Run the CLI
With the configuration and credentials in place, run:
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsnpx happo
The CLI discovers a recognized root configuration and runs the visual regression suite. The README lists these configuration names: happo.config.js, happo.config.mjs, happo.config.cjs, happo.config.ts, happo.config.mts, and happo.config.cts.
Choose Storybook or Playwright integration
Both routes are supported, but they serve different coverage goals. You do not need both by default: use the test assets your team already maintains and the UI states it needs reviewed.
Rank #3
| Approach | Best fit | What it captures | Trade-off to consider |
|---|---|---|---|
| Storybook | Teams with reusable component stories and a component-focused review goal | Automated captures of stories, with review links that can be associated with pull requests | Coverage follows the stories maintained; ensure they represent meaningful variants and responsive states. |
| Playwright | Teams with existing end-to-end tests and selected application states to verify | Happo screenshots injected into selected states in the existing Playwright workflow | Choose stable states and account for the additional capture work in the test and CI flow. |
The official integration pages describe the supported workflows: Happo for Storybook and Happo for Playwright. Compare the approaches using existing test assets, desired UI coverage, CI time, and how the team will review and accept baseline changes.
Run Happo in CI
- Keep the configuration in the repository. Commit the Happo config and the relevant story or test changes so the CI job uses the same capture definition as local development.
- Add credentials to the CI secret store. Make
HAPPO_API_KEYandHAPPO_API_SECRETavailable to the job environment without placing them in source control. - Run the CLI in the workflow. Invoke
npx happoafter the required app, Storybook, or test setup is available to the integration you chose. - Review the resulting comparison. Happo captures screenshots and compares them against a baseline; use the review results associated with the code change to decide whether a difference is intended and should become the new baseline.
Happo’s documented workflow is code push, CI run, screenshot capture, then baseline comparison. Exact job syntax depends on the CI provider and the chosen Storybook or Playwright route; the reviewed README does not provide provider-specific secret-store instructions. The official site names GitHub Actions and CircleCI among its integrations.
Recommended Free Tools
GitLab status
Happo announced GitLab support on September 10, 2026, while describing the integration as experimental. The announcement said long-term production behavior with real repositories and concurrency patterns had not yet been established. It also noted more setup wiring than a one-click GitHub App and that self-managed GitLab may need an IP allowlist. Treat GitLab as a validate-first option: test it with your own runners, merge-request flow, network rules, and expected concurrency before relying on it for required checks.
What visual checks can catch
Happo is useful when a UI change can escape behavior assertions: a changed text color, shifted element, altered spacing, or browser-specific rendering difference may leave an interaction test green. Capturing multiple targets can help reviewers inspect cross-browser and responsive differences, while the accessibility target provides an additional check. Visual comparisons still require human review: a difference may be intentional, and screenshot comparison alone does not establish that the interface is functionally correct or accessible in every respect.
Practical limits and adoption checks for teams in India
- Commercial terms: the reviewed official materials do not establish India-specific prices, taxes, payment methods, or support conditions. Check Happo’s current pricing and confirm local purchasing details directly before budgeting.
- Evidence for outcomes: no independently verified benchmark, quantified ROI, or study result was established. Do not assume a particular reduction in defects or CI runtime.
- Baseline review: a comparison flags changes; the team still needs a clear process for deciding whether a change is expected and for updating baselines.
- CI fit: assess capture coverage, runner constraints, secrets handling, runtime impact, and stability with your own application and workflow before making checks merge-blocking.
- Security and data handling: review Happo’s current terms and security documentation for your organization’s requirements; the setup instructions alone do not establish those policies.
Troubleshooting common setup problems
CLI cannot find the configuration
Confirm the command runs from the project root and the filename begins with happo.config.. Use one of the documented extensions: .js, .mjs, .cjs, .ts, .mts, or .cts.
Rank #4
Authentication fails in CI
Check that both HAPPO_API_KEY and HAPPO_API_SECRET are configured in the CI secret store, exposed to the correct job, and referenced by the config. Ensure they are not empty or accidentally scoped only to a different branch or environment.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Captures differ between runs
Review target viewport and color-scheme settings, and consider the documented animation-silencing option where motion creates unstable images. For Playwright, capture deliberate, stable UI states; for Storybook, check that stories do not depend on changing external data. These are practical stabilization steps, not a guarantee that all sources of variability are removed.
Safari target or animated capture is unsupported
Use supported target types and do not expect experimental APNG capture on iOS Safari or iPad Safari. If those are required, validate the non-APNG capture workflow instead.
GitLab setup is blocked by network or runner behavior
For the experimental integration, validate the wiring with the project’s runner and merge-request flow. For self-managed GitLab, check whether the environment requires the IP allowlist mentioned in Happo’s announcement.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Or skip the browser setup:
If your task is to capture a page screenshot rather than compare React UI against Happo baselines, ScreenshotNeo offers a one-request screenshot API and MCP server. It is not a replacement for Happo’s visual regression review workflow; it is an alternative for generating screenshots and PDFs.
Free tools Windows power users keep installed
One-click scans. No signup required.
Best Value
cURL example, using the documented endpoint and adapting only the target URL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Before capture, cookie and consent banners are accepted and more than 60 known consent platforms, newsletter popups, and chat widgets are removed; each step can be disabled. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify page verdict and billing status in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for AI agents. The free plan includes 1,000 screenshots a month without a card; paid plans start at $5 for 3,000 screenshots.
Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.
Frequently Asked Questions
Does Happo work with React?
Yes. The documented approach installs the Happo package in the React project, adds a root configuration, and runs its CLI; capture inventory can come from Storybook or selected Playwright states.
Does Happo work with GitLab CI?
Happo announced GitLab support on September 10, 2026, but described it as experimental. Validate setup and runner behavior with your own merge-request workflow before depending on it.
Is Happo a replacement for Playwright tests?
No. Happo adds screenshot comparison to selected UI states; Playwright can continue to test behavior and application flows.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




