JavaScript barcode scanner SDK for web apps

Scan barcodes, QR codes, Data Matrix, PDF417 and more in real time, right in the browser.

> npm i @pixelverse/strichjs-sdk

Flag of Switzerland Made in Switzerland

Runs in the browser

Add barcode scanning to your web app: fully client-side processing, no backend required!
Why scan barcodes in web apps?
How STRICH compares to Open Source.

Simple, transparent pricing

No large up-front commitment. Unlimited devices. Cancel anytime. Free 14-day trial. Pricing is on this page, no talk to sales.

Built for developers

Zero dependencies. Works with all frameworks. Great docs for humans and agents alike.

Portrait of Johny Ho
“We did an extensive analysis on commercial barcode scanner SDKs and STRICH provided the best value for performance. Alex was also great to work with and quick to respond to questions.”

Johny Ho, Dev Team Lead @ Thoughtbot

Portrait of Keshav Bantwal
“We tried a few libraries but accuracy was hit-or-miss. STRICH was a great solution with flexible payment options that allowed us to integrate easily with great SDK documentation and amazing support.”

Keshav Bantwal, SW Eng @ Orange Health Labs (YC 20)

Portrait of Cameron Myers
“We tried a number of different libraries for barcode scanning but always had compatibility issues. With STRICH we got fast, reliable scanning with no issues. Integration was easy, we were up and running in production in a day. We couldn’t recommend it more!”

Cameron Myers, Web Dev @ Brooklyn Public Library

Portrait of Eric Gagnaire
“Integrating STRICH has been a major success for our retail operations. Thanks to the seamless barcode scanning functionality, our staff can instantly identify and process second-hand books brought in by customers, using only a smartphone or tablet—no additional hardware required.”

Eric Gagnaire, CEO @ Zeercle

Portrait of Dinesh Kumar
“I migrated an existing project from Dynamsoft to STRICH - it was painless and the user experience was vastly superior. The library was painless to integrate, the SDK is well thought out, and the performance excellent.”

Dinesh Kumar, CTO @ Lumanorth

Portrait of Dominik Schilling
“We tried a lot of other libraries but none was as good right from the start as STRICH. Thanks to the detailed documentation it was super easy to integrate the library into an existing ticket scanner web app.”

Dominik Schilling, Web Eng @ required

Barcode scanning in one line of code

Drop in a ready-made scanning dialog, or embed a scanner in your own layout.

// Scan 1D/2D codes with built-in UI
const codes = await PopupScanner.scan({
    symbologies: ['code128', 'qr']
})

Expanded to three lines for readability. 😉

Popup Scanner

A ready-made scanning dialog that appears on top of your app. Learn more about Popup Scanner.

Proven scanning UI

Embedding the scanner in your own page? It comes with a targeting overlay, camera selector, flashlight and tap-to-focus. Camera quirks are handled automatically for you.

Works with any framework

Zero dependencies. Sample code for vanilla JS, React, Angular, Vue and Svelte. Installs from NPM or a CDN.

Read challenging codes

Real-world barcodes are never perfect. STRICH's decoding pipeline reads them where simpler libraries give up.

Photos of challenging barcode reading situations, with faded prints, glare and crumpled codes

Faded or damaged prints

Reads codes with faded ink, scratches and damaged bars, like worn shipping labels.

Glare and low light

Handles reflections, shadows and dim lighting, e.g. QR codes on glossy screens.

Curved surfaces

Compensates for codes on bottles, cans and crumpled packaging.

Inverted codes

Reads light-on-dark codes for all supported barcode types.

Open Source libraries often fail in these conditions. See how STRICH compares to ZXing-JS and QuaggaJS.

Portrait of Yaakov Guttermann
“We tried several different SDKs, but STRICH provided by far the best overall experience. It looks great, works seamlessly across different devices, and scans reliably even in challenging outdoor conditions. Integration was straightforward, and the service and support have always been excellent.”

Yaakov Guttermann, CTO @ wetag

Portrait of Jerry Hah
“We used STRICH to enable QR code scanning in a LINE-based marketing campaign. In real-world environments, STRICH provided a more stable and reliable scanning experience for our needs.”

Jerry Hah, Medialand Taiwan

Portrait of Jukka Aittokallio
“After struggling with other libraries we settled on STRICH. It excels reading barcodes in conditions that the other libraries simply cannot get a reading.”

Jukka Aittokallio, Senior SW Eng @ Reaktor

Lightning-fast barcode scanning

Not just a gimmick that looks good, it translates to time savings and better user satisfaction.

Fast, Lean & Robust

STRICH uses a GPU-accelerated, 1D/2D decoding pipeline that runs fully on-device.

Distributed as a single JS file with embedded WASM and < 1 MB bundle size, it skips gimmicks for the essentials.

Battle-tested on thousands of smartphones around the world, not just the flagship Galaxy and iPhones developers use.

Portrait of Scott Richins
“STRICH scans so fast that on a high-end iPhone the barcode never fully makes it into the frame before it's already decoded. I literally demo on a slower Android just to give the audience a chance to see it work.”

Scott Richins, Founder @ Kinein

Portrait of Simon Rempp
“After trying to optimize scanning via other libraries for a long time without much success in terms of speed and accuracy, we came across STRICH. The library scans the barcodes so quickly that we were asked to implement a delay, so the users can be sure that they scan the correct barcode when multiple barcodes are placed close together.”

Simon Rempp, Software developer at Groz-Beckert

Reliable JavaScript barcode scanning

Tested on the phones your users actually have, not just the flagships your developers carry.

Photo of the STRICH QA test bench, with ten smartphones running a stress test on the barcode scanning SDK

Tested on real devices

Every SDK release goes through extensive QA in our lab, from current iPhones and iPads to budget Android phones and tablets. Emulators and simulators can't reproduce camera quirks, autofocus behavior or slow hardware. Testing on real devices is not optional, and we do it for you.

Fast on budget phones

On a budget Android phone, the same web app can run several times slower than on a developer's iPhone (performance gap). STRICH is tuned for low-end hardware, so scanning stays fast on warehouse floors, in delivery vans and at shop counters.

Keeps up with browsers

Browsers and mobile operating systems change all the time. We track Safari, Chrome and Firefox releases, and test on beta versions of OSes. Many Open Source scanning libraries are in maintenance mode, so when something breaks, there's no guarantee someone will fix it.

Enterprise-ready barcode scanning SDK

Built for businesses of all sizes.

Secure and private

Decoding is fully local, no barcode data leaves the device. Zero network traffic with the optional Offline Operation add-on. No supply chain risks by using a library with zero dependencies. Distributed on NPM with Trusted and Staged publishing.

Predictable pricing

Our Business and Enterprise plans are billed at a fixed, yearly rate that does not depend on the number of scans or devices. Boring pricing with no surprises.

Procurement-friendly

We work with your procurement department, accept purchase orders and payment by bank transfer through Paddle, our Merchant of Record. We also sell via resellers like SoftwareOne, SHI and others.

Portrait of Conradin Lietha
“Migrating our app from QuaggaJS to STRICH was a painless experience and done in under a day. The performance of our app has improved, and the number of malfunctioning devices and support requests have decreased. Overall I can highly recommend STRICH to anyone looking for a cost-effective and reliable web-based barcode scanning solution.”

Conradin Lietha, Project Manager at Swiss Federal Railways (SBB)

GS1 Solution Partner

Pixelverse GmbH, the company behind STRICH, is a registered GS1 Solution Partner in Switzerland and committed to supporting GS1 barcode standards.

Transparent pricing

No talk to sales, no per-device fees. Monthly plans are priced by scan volume. Business is priced per app, with unlimited scans.

Basic

€99/month
  • Up to 10k scans/month
  • Unlimited devices
  • Unlimited applications
  • Free updates
  • All supported 1D & 2D symbologies
  • Actual Human™ support

Professional

€249/month
  • Everything in BASIC
  • Up to 100k scans/month
  • Actual Human™ support

Business

Starts at €4,000/year (1 app)
  • Unlimited scans and devices
  • Flat, annual pricing, scales with number of apps
  • Custom branding of scanner UI
  • Offline license checking
  • Buy online: pay by card, invoice or bank transfers (USD, EUR)
  • Actual Human™ support

Prices exclude VAT and sales tax, which our Merchant of Record, Paddle, adds where applicable.

Portrait of Robynn Lobo-Pires
“STRICH is fast, reliable, easy to integrate, and has transparent and reasonable pricing. We came from Scandit and it was a constant battle to understand how and why we were being charged. Since moving to STRICH, we have not had to even think about it.”

Robynn Lobo-Pires, Full Stack Dev @ Volume7

Need purchase orders, supplier registration, a reseller or an OEM license?

Enterprise

Starts at €7,500/year
  • Purchase orders: instead of buying online
  • Supplier registration: SAP Ariba and similar portals
  • Resellers: SoftwareOne, SHI, worldsoft (Japan) and others
  • OEM licenses: required when your customers build products that incorporate STRICH
  • Custom license terms: we can accommodate reasonable requests

These processes take additional administrative effort, which the price reflects.

For most companies, the Business plan is the faster route: buy online and pay by card, invoice or bank transfer.

Request a quote

Frequently asked questions

What is STRICH?

STRICH is a JavaScript SDK for 1D/2D barcode scanning in the web browser, using the smartphone's camera. With STRICH you can easily add a fast and reliable barcode scanner to your web app, allowing end users to scan directly in the browser, without requiring them to install an app.

What can I build with STRICH?

STRICH allows you to implement your barcode scanning workflows in easy to manage web apps. Read more about the advantages of barcode scanning in web apps in our Barcode Scanning in Web Apps article.

What happens if I exceed the scan limit of my plan?

If you exceed the limit for two consecutive months, we will ask you to upgrade your subscription within 7 days. We never block scans.

Are updates included in the license?

STRICH is licensed in a subscription model. You are always entitled to the latest version.

Does STRICH support Angular/Vue/React/Svelte?

STRICH relies only on widely available browser capabilities and has no other dependencies, making it easy to integrate into existing apps and compatible with all web frameworks.

Can STRICH read my barcodes?

STRICH supports most common barcode types. To make sure STRICH can read your barcodes, try the free Demo App and choose All Symbologies.

Why should I pay if there are free alternatives?

Zxing-JS, html5-qrcode and QuaggaJS are unmaintained or do not offer commercial support. If you prefer a maintained and commercially supported solution, STRICH has your back. See how STRICH compares to free alternatives.

Do you support GS1 barcodes?

Pixelverse GmbH, the company behind STRICH, is a registered GS1 Solution Partner in Switzerland. We support and implement GS1 standards.

What does STRICH mean?

STRICH is German for stroke: [ʃtrɪç]

Still have questions? Check out the full FAQ.

Start your free 14-day trial today

Integrating STRICH into your web app typically takes less than a day. Or try our free demo app and convince yourself that STRICH meets your needs.

Launch demo app ↗ Start free trial ↗