A print shop for barcodes.
Barcode Press is a free, browser-based generator for every barcode symbology a normal person will ever need - and about a hundred they won't. It exists because most of the alternatives are a mess.
Why this exists
Go and search for a barcode generator. You will find three kinds of sites, and all three waste your time.
The ad-farm
A working generator wedged between pop-ups, cookie banners, newsletter signups, and three ad slots larger than the output. It renders the barcode eventually, assuming your ad blocker cooperates.
The freemium trap
Unlimited "free" barcodes - with a watermark, no SVG, no PDF, and a 5-request-per-day limit unless you create an account, pick a plan, pick a credit card, and pick a reason for existing.
The black-box API
Paste your payload into a text box on someone else's server. Your data - which may be a serial number, a patient ID, a medical device identifier, a Swiss QR payment reference, or a product GTIN - takes a round-trip through a server you have never heard of, is logged to a database you cannot see, and comes back as a PNG.
None of that is necessary. The math that turns text into black bars is deterministic, small, and open-source. It can run in a browser tab in under a second, for any number of codes, with no server in the middle. Barcode Press does that.
How it is different
Four rules. We won't break them.
How it is built
Small stack. Transparent about it.
The rendering engine is bwip-js, the JavaScript port of Terry Burton's Barcode Writer in Pure PostScript - the reference implementation of most barcode standards. It is MIT-licensed and bundled into the browser on page load. The UI is Next.js with the App Router, pre-rendered statically so every page is a crawlable HTML document with its own schema.org payload. Batch ZIP output uses JSZip; PDFs use jsPDF; CSV input uses Papa Parse.
The entire codebase is public at github.com/vikramchandra/barcodestation. If you find a bug or want a symbology tuned for a specific industry standard, open an issue.
What this isn't
Honesty about the edges.
It is not a validator. Barcode Press will happily encode a malformed GTIN, a wrong Swiss QR payment reference, or a garbage HIBC payload - those are your responsibility to get right before hitting print. If you are generating codes for regulated contexts (retail distribution, drug packaging, postal bulk mail), verify the output against the specification and scan it on your target hardware.
It is not a barcode scanner or decoder. If you need to read codes from an image, look elsewhere.
It is not an API. There is no endpoint. If you need to render barcodes server-side, install bwip-js directly from npm - it is the same library that powers this site, and Terry Burton has been maintaining the PostScript reference since 2004. Credit where it's due.
Who this is for
A designer prototyping a packaging label. A developer who needs a quick EAN-13 for a test fixture. A warehouse manager printing a sheet of 30 Avery labels for next week's pallet. A Swiss accountant generating an invoice QR. A pharmacist testing HIBC on a prescription printer. A teacher building a classroom scavenger hunt. A hobbyist building a library catalog. A curious person who typed "free barcode generator" into a search engine and does not want to sign up for anything.
If that is you, you are in the right place. Open the index, pick a symbology, and press generate.