Loki checks React UI changes by capturing the stories in your Storybook and comparing them with saved reference screenshots. Install and initialize Loki, start Storybook yourself, create and commit a baseline, then run visual tests and review each difference before approving intentional changes. Loki tests appearance; keep unit, behavior, and accessibility tests alongside it.
What Loki does in a React project
Loki is a screenshot-comparison tool for Storybook. Each Storybook story represents a UI state; Loki captures those states and compares the resulting images against reference screenshots. A difference is a signal to inspect, not proof by itself that a change is wrong: expected design changes also produce diffs.
Start by making sure the React states that matter are represented as stories. Loki’s documented workflow operates on Storybook stories, rather than discovering and testing every state in an application automatically. The setup documentation describes the supported configuration and workflow at Loki’s getting-started guide and project README.
Prerequisites and compatibility
- A React project with Storybook configured and the stories you want to check.
- Node.js. Loki’s getting-started documentation lists Node 16+, but the cited documentation was last updated in 2024; verify compatibility against the Loki version, Storybook, Node runtime, and CI image you actually use.
- A browser target. The README recommends Chrome in Docker and also lists Chrome in AWS Lambda, local Chrome, iOS simulator, and Android emulator. The getting-started guide lists Docker for
chrome.dockerand Chrome 59+ forchrome.app; treat these as documentation-era requirements, not a current compatibility guarantee. - GraphicsMagick is optional and applies when using the
gmdiff engine. Other documented diff engines arepixelmatchandlooks-same.
Check the installed Loki version and its configuration before choosing a target. The available documentation does not establish a current compatibility matrix for modern React, Storybook, Node, and browsers.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Install Loki and initialize it
- From the project root, add Loki as a development dependency:
yarn add loki --dev. Use the package manager already used by your project where appropriate; the documented command is for Yarn. - Initialize the default configuration:
yarn loki init. The initializer detects the project and writes configuration. - Open the generated configuration and review browser targets, dimensions, and other settings before relying on defaults. Loki’s CLI reference documents the Storybook URI and ports, reference-image directory, current-output directory, and difference-image directory: Loki CLI reference.
Do not assume initialization also starts Storybook. Loki’s README explicitly says it will not start servers; the Storybook app (and any required simulator or emulator) must already be running.
Create and maintain the reference screenshots
- Start Storybook using the project’s existing script, for example
yarn storybookif that is the script defined in your project. Keep it running while Loki captures stories. - On the first run, generate reference images with
yarn loki update. - Review the resulting reference files and commit them with the code. The Loki guide says references may optionally be stored using Git LFS; choose storage that makes baseline changes reviewable in your repository workflow.
A reference is the visual expectation for later runs. Generate or update it only when the displayed change is deliberate and reviewed; otherwise a baseline can silently normalize a regression.
Run visual regression tests and review diffs
- With Storybook still available, run
yarn loki testafter a UI or story change. - When Loki reports differences, inspect the current screenshots and diff images in the configured output locations. Determine whether each change is intended, caused by inconsistent capture conditions, or a regression.
- For an intentional design change, approve the reviewed result with
yarn loki approve, or use the command Loki suggests to update only failed tests. - Commit approved reference changes alongside the implementation so reviewers can assess what changed and why.
Do not make approval an automatic response to a failing run. The comparison identifies visual differences; a person needs to decide whether those differences match the intended UI.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Run Loki in CI
The documented CI pattern builds a static Storybook and then points Loki at that build while requiring reference images. Adapt the build command and output path to the scripts in your repository:
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →yarn build-storybook
yarn loki test --requireReference --reactUri file:./storybook-static
The leading space before the second command is not significant; run the commands as separate shell lines. --requireReference makes CI fail when a story has no baseline, rather than allowing a test run to create one. This keeps CI focused on detecting changes; create and approve baselines through a deliberate review workflow. See Loki’s CI guide.
Choose a capture target and tune the workflow
The target affects what Loki captures and how repeatable the result is. The project README documents these target families:
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
| Choice | When it fits | Considerations |
|---|---|---|
| Chrome in Docker | A containerized browser target, including CI workflows. | The README calls it the recommended browser target. Docker is listed as a prerequisite for chrome.docker. |
| Local Chrome or Chrome in AWS Lambda | When the project uses one of these documented Chrome targets. | Confirm the target’s compatibility and runtime setup against your installed Loki version. |
| iOS simulator or Android emulator | When visual coverage needs a mobile simulator or emulator. | Ensure the simulator or emulator is running before Loki, as Loki does not start it. |
| Static Storybook or running Storybook | Use a built Storybook in CI or a local server during development. | For static CI, the documented pattern uses --reactUri file:./storybook-static; set the path to your actual build output. |
The CLI reference documents selecting configuration names by regex. For example, a configuration whose name contains laptop can be selected with a regex, which can help limit a run to a particular target. Review the CLI reference for the syntax supported by the version installed in your project. You can also configure the documented reference, current-output, and diff directories, and choose among pixelmatch, looks-same, and gm diff engines.
Troubleshoot common failures
- Storybook cannot be reached: Loki does not start the server. Start Storybook before running tests, and verify the configured URI and port.
- A simulator or emulator is unavailable: Start it separately before invoking Loki; the README says Loki will not start it.
- CI reports a missing reference: With
--requireReference, a missing baseline is meant to fail the run. Generate and review the reference in the baseline workflow, commit it, then rerun CI. - Many diffs appear after an environment change: Verify that the browser target, dimensions, Storybook build, and capture environment match the baseline workflow before approving any changes. The documented workflow requires comparing screenshots; it does not establish that arbitrary environment changes are harmless.
- The configured browser or Node version fails to launch: The setup guide’s version statements date from 2024, so check the requirements for your installed Loki version and CI image rather than assuming those older figures guarantee present compatibility.
- The
gmdiff engine is unavailable: The getting-started guide lists GraphicsMagick as optional for this engine. Install and configure it if you choosegm, or select one of Loki’s other documented engines. - A change is expected but the test still fails: Inspect the diff, then approve the intended change with
yarn loki approveor Loki’s suggested failed-test update command. Avoid updating all references without reviewing them.
What Loki does not replace
Loki compares rendered screenshots of Storybook stories. The cited setup material describes screenshot comparison, not a replacement for unit tests, interaction or behavior tests, or accessibility checks. Keep those tests for the questions a screenshot cannot answer.
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 minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOr skip the browser setup:
If you need screenshots of live pages rather than Storybook-based reference comparisons, ScreenshotNeo is a separate website screenshot API and MCP server for developers. A single GET request can return a PNG, JPEG, WebP, or PDF; it is not a drop-in replacement for Loki’s repository-based Storybook baseline workflow.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Example request, using the documented API call with a representative 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 the request details. ScreenshotNeo accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month without a card; paid plans start at $5 for 3,000 screenshots.
Sign up for ScreenshotNeo’s free plan to try 1,000 screenshots a month with no card.
Frequently Asked Questions
Does Loki work without Storybook?
The documented Loki workflow captures Storybook stories, so this guide assumes a React project with Storybook configured.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Can Loki automatically accept visual changes in CI?
The documented CI setup uses --requireReference so missing baselines fail rather than being created automatically. Review and approve intended changes through your baseline workflow.
Does Loki only test React components?
Loki captures Storybook stories; React is the project context here, while the relevant coverage depends on which UI states your stories represent.
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.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.

