FREEDOM251

Freedom251 › Visual Testing

Loki

Free plan AndroidiPhoneLinuxMacSelf-hostedWeb+1

Visit Loki Alternatives Pricing

Loki's own site

What Loki is

Loki checks Storybook projects for visual regressions by capturing story screenshots and comparing them with reference images. It produces visual differences for review, so teams can create reference screenshots, run comparisons, examine changes, and approve updated references. Capture options include Chrome in Docker, local Chrome, Chrome in AWS Lambda, the iOS simulator, and the Android emulator. A remote AWS Lambda renderer is available for large test suites. Loki is designed for continuous integration, where a test can fail if reference images are missing. It supports pixel comparison modes and documents pixelmatch, gm, and looks-same as diff engines. The getting started guide lists Node 16 or later as a prerequisite. Recent Storybook versions need no extra integration for non-React Native projects; React Native projects use an import in `storybook/storybook.js`. Loki does not launch Storybook or simulator and emulator servers, so those need to be running before tests. The software is MIT-licensed and free.

Who it suits

Loki suits teams that maintain Storybook projects and want to check story appearances in CI or on supported browser and mobile targets. It is also suited to React Native projects that can set up the documented integration.

What it does well

  • Compares story screenshots with reference images.
  • Supports Chrome, iOS simulator, and Android emulator captures.
  • Can run in continuous integration.
  • Free and MIT-licensed.

What to know first

  • Requires Node 16 or later.
  • Does not start Storybook or simulator servers.
  • Looping animations, GIFs, and SVG animations have documented limits.
  • The gm diff engine requires GraphicsMagick.

Limits

Loki requires Node 16 or later, and it does not start Storybook or simulator and emulator servers. Its documented animation limitations include looping requestAnimationFrame animations, GIFs, SVG animations, native Lottie animations, and React Native Animated. GraphicsMagick is required when using the `gm` diff engine.

Plans

PlanBilled and limitsPrice
LokiMIT-licensed open-source software · Node 16+Free

As loki.js.org lists them, read 5 Oct 2026. The maker's own page has the final word.

Getting started

  1. Install or use Node 16 or later.
  2. Open https://loki.js.org/ and follow its getting started guide.
  3. Ensure Storybook and any required simulator or emulator servers are running.
  4. For a React Native project, import `loki/configure-react-native` in `storybook/storybook.js`.
  5. Configure Loki in `package.json`, `.lokirc`, `.lokirc.json`, or `loki.config.js`.
  6. Create reference screenshots, run comparisons, review the visual differences, and approve updated references.

Loki is a free visual-regression tool for teams building Storybook projects, including React Native apps. Its reference-image workflow suits teams that want visual checks in CI and can manage their own browser and simulator setup; look elsewhere if you need cross-browser coverage or a service that starts test infrastructure for you.

Overview

Loki captures Storybook stories and compares them with approved screenshots, producing visual differences for review. Teams can approve updated references as interfaces change, while CI can fail tests when references are missing. That makes baseline changes deliberate, but it also means someone must review and accept legitimate updates.

The trade-off is operational responsibility: Loki will not start Storybook, an iOS simulator, or an Android emulator. Those servers need to be running before tests begin. For teams with an established Storybook and CI workflow, this is a focused way to catch unintended visual changes; teams seeking a turnkey capture service may find the setup burden a poor fit.

Key features

Storybook screenshots and review

The workflow runs from creating reference screenshots through comparison and diff review to approving changed references. Recent Storybook versions need no extra integration for non-React Native projects; older versions may require a React configuration import. React Native projects can integrate by importing loki/configure-react-native in storybook/storybook.js. This makes Loki well suited to teams already organizing UI examples in Storybook, rather than teams looking for a general-purpose web-page comparator.

Capture and comparison choices

Capture targets include Chrome in Docker, local Chrome, the iOS simulator, and the Android emulator. Chrome on AWS Lambda offers remote rendering for large suites. The documented diff engines are pixelmatch, gm, and looks-same; gm requires GraphicsMagick, while Docker is optional if using the Docker Chrome target. The options give teams flexibility to match an existing environment, but Loki does not provide cross-browser capture.

Configuration and CI

Configuration can live in the loki section of package.json or in .lokirc, .lokirc.json, or loki.config.js. Loki is designed for continuous integration and can fail when reference images are missing, a useful safeguard against unreviewed baselines. Node 16 or later is required.

Animation limits

Known limitations cover looping requestAnimationFrame animations, GIFs, SVG animations, native Lottie animations, and React Native Animated. Projects that depend on these moving elements should account for the limits before relying on screenshot diffs as a complete visual check.

Pricing

Loki: free. The plan is MIT-licensed open-source software and requires Node 16 or later. There is no paid tier or trial; this is a free tool for teams prepared to operate it within their own setup, not a priced managed service.

Platforms

Loki supports Android and iOS capture through their emulators or simulator, Linux and macOS, Windows, web, and self-hosted environments. These are not interchangeable capture modes: the documented browser options are Chrome in Docker, local Chrome, and Chrome in AWS Lambda, alongside the mobile targets.

Who it's for

Loki is the strongest fit for Storybook teams that want a free, configurable visual-regression step in CI, especially when they need mobile simulator or emulator captures and can keep the required servers running. It is a weaker choice for teams needing cross-browser comparisons, animation coverage across the documented limitations, or infrastructure managed by the tool.

Pros and cons

  • Pro: Reference screenshots, visual diffs, and approval of updated baselines give teams a defined review loop for interface changes.
  • Pro: Chrome, iOS simulator, and Android emulator targets, plus AWS Lambda rendering for large suites, cover several useful environments without a subscription.
  • Pro: MIT licensing and configurable setup make Loki adaptable for teams that can maintain their own workflow.
  • Con: Storybook and simulator or emulator servers must already be running, adding setup work to local and CI workflows.
  • Con: There is no cross-browser capture, and several animation types are documented limitations, narrowing its usefulness for motion-heavy interfaces or broad browser checks.

Alternatives

Visual Regression Testing Software is a broader category to explore when comparing tools beyond Storybook-oriented workflows.

  • Diffy is worth considering if a monthly allowance of 500 screenshots, two environments, team management, and one-month data retention better matches the workflow.
  • Happo may suit teams seeking 5,000 monthly snapshots, Chrome, and visual and accessibility testing on its free plan, with no credit card or time limit.
  • Percy is an option for teams whose needs fit its free allowance of 5,000 screenshots per month, unlimited users, and unlimited projects.
  • SmartUI may fit a project that can work within 2,000 lifetime screenshots, one month of build history, and limited user seats on its free plan.
  • Frontend Regression Validator is another free, open-source option, licensed under Apache-2.0 and runnable locally or with Docker.
  • Screenster has a free plan with one concurrent test, one user, and monthly local or cloud run limits.
  • Argos is an alternative whose platform and SDKs are open source and MIT-licensed.
  • BackstopJS is another free, MIT-licensed project installed with npm.

Verdict

Choose Loki if your team uses Storybook and wants a free reference-image workflow that can run in CI, with Chrome and mobile capture options. Its strongest reason to choose it is that focused, configurable review loop; its clearest reason to look elsewhere is the need to manage running servers yourself, alongside the absence of cross-browser capture.

Verdict

Loki offers a defined screenshot-comparison workflow for Storybook projects, with browser and mobile capture options. Check its prerequisites and animation limitations, and ensure required servers are already running before tests.

Questions

How much does Loki cost?

Loki is listed as free, and the project identifies it as MIT-licensed open-source software.

What does Loki do?

It tests Storybook projects for visual regressions by comparing story screenshots with reference images and producing visual differences for review.

Which capture targets does Loki support?

Targets include Chrome in Docker, local Chrome, Chrome in AWS Lambda, the iOS simulator, and the Android emulator.

Does Loki work with continuous integration?

Yes. It is designed for continuous integration servers, and tests can fail when reference images are missing.

What does Loki require to get started?

The getting started guide lists Node 16 or later. Storybook and any simulator or emulator servers needed for captures must already be running.

Which license and maintainers does Loki list?

The repository identifies Loki as MIT-licensed, lists Joel Arvidsson as author, and Tomas Echeverri Valencia as maintainer.

Facts from Loki's own pages

Animation limits
Documented known animation limitations include looping requestAnimationFrame animations, GIFs, SVG animations, native Lottie animations, and React Native Animated. · loki.js.org, 4 Oct 2026
AWS Lambda
A remote renderer using AWS Lambda is available for large test suites. · loki.js.org, 4 Oct 2026
Browser targets
Supported browser targets include Chrome in Docker, local Chrome, and Chrome in AWS Lambda. · github.com, 5 Oct 2026
CI
Loki is designed to run on continuous integration servers, where tests can require reference images. · loki.js.org, 4 Oct 2026
Continuous integration
Loki is designed to run on continuous integration servers and can fail tests when reference images are missing. · loki.js.org, 5 Oct 2026
Custom configuration
Projects can configure Loki through a `loki` section in `package.json` or through `.lokirc`, `.lokirc.json`, or `loki.config.js`. · loki.js.org, 5 Oct 2026
Image comparison
Loki documents pixelmatch, GraphicsMagick, and looks-same as image comparison engines. · loki.js.org, 5 Oct 2026
License
The project repository identifies Loki as MIT licensed. · github.com, 4 Oct 2026
License and maintainer
The repository identifies Loki as MIT-licensed and lists Joel Arvidsson as author and Tomas Echeverri Valencia as maintainer. · github.com, 5 Oct 2026
Maintainer
The repository lists Joel Arvidsson as author and Tomas Echeverri Valencia as maintainer. · github.com, 4 Oct 2026
Mobile targets
Loki supports screenshots from the iOS simulator and Android emulator. · loki.js.org, 5 Oct 2026
Optional dependencies
GraphicsMagick is optional for the `gm` diffing engine, and Docker is optional for the `chrome.docker` target. · loki.js.org, 5 Oct 2026
Prerequisite
The getting-started guide lists Node 16 or newer as a prerequisite. · loki.js.org, 5 Oct 2026
Purpose
Loki tests Storybook projects for visual regressions by comparing screenshots with reference images. · loki.js.org, 5 Oct 2026
React Native integration
React Native projects can integrate Loki by importing `loki/configure-react-native` in `storybook/storybook.js`. · loki.js.org, 5 Oct 2026
Reference images
Loki compares screenshots of stories with reference images and creates visual diffs for review. · loki.js.org, 4 Oct 2026
Security
The command-line reference documents a `chromeDockerWithoutSeccomp` option, which defaults to false. · loki.js.org, 5 Oct 2026
Storybook integration
For recent Storybook versions, the documentation says no further integration is needed; older versions may require a React configuration import. · loki.js.org, 5 Oct 2026
Storybook setup
The getting started guide says recent Storybook versions need no extra integration for non React Native projects; React Native setup imports loki/configure-react-native. · loki.js.org, 4 Oct 2026
Support
The project provides documentation and a GitHub repository for its community and development. · loki.js.org, 5 Oct 2026
Targets
Supported targets include Chrome in Docker, local Chrome, the iOS simulator, and the Android emulator. · loki.js.org, 4 Oct 2026
Test workflow
The workflow creates reference screenshots, tests stories against them, reviews visual differences, and approves updated references. · loki.js.org, 5 Oct 2026
Workflow limitation
Loki does not start Storybook or simulator/emulator servers, so these must be running before tests. · github.com, 4 Oct 2026

Where Loki stands on Freedom251

Look at these too