One thesis: the write side of the 2D transition is free, immediate, and yours — a brand can render its own GTIN as a GS1 Digital Link QR in one command, before any agreement, account, or vendor relationship exists. The decision about your mark deserves to start with the mark in your hand, not with a proposal on your desk.
If you hold the operations seat at a mid-market brand — one seat, everything from co-man relationships to the retailer scorecards — the 2D question probably arrived the way compliance questions arrive: a retailer's 2D-readiness questionnaire with a date on it. Let's state that date's context exactly, because vendor copy around it is routinely wrong. Sunrise 2027 is GS1's own program: retail point-of-sale expected to be able to scan and process 2D barcodes by the end of December 2027, and GS1 US's own page is explicit that "it is not necessary to implement all the capabilities of 2D by that date." The baseline is GTIN extraction at the lane. Lot, expiry, and serial are your optional decisions as the brand. Sunrise puts nothing on your pack — what goes on your pack is chosen by exactly one party, and you are it.
Which means the first useful act is not a meeting. It is looking at what your own product's mark would actually be.
One command, three outputs
barcoding generate takes the GTIN you already license and the attributes you are considering carrying, and returns the mark in every form the decision touches — pure, local, no account:
$ npx barcoding.dev generate --gtin 09506000134352 --lot AB12 --exp 261231 --qr
element-string (01)09506000134352(17)261231(10)AB12
digital-link https://id.gs1.org/01/09506000134352/10/AB12?17=261231
(canonical form; compressed form available with --compressed)
qr → mark.svg (rendered, print-resolution vector)
Three artifacts, three audiences:
- The rendered QR SVG goes to your artwork team. The Sunrise mark lands in the artwork cycle — which at a brand like yours means it lands on the Head of Brand's desk as a design decision with a data consequence, and the earlier a real, correct rendering enters that cycle, the cheaper every conversation after it becomes.
- The Digital Link URI is the decision the QR encodes: a web address whose path is your GTIN and its qualifiers. The domain in that URI is a real choice with a long tail — codes printed on packaging are among the most durable URLs in commerce — and it is a choice you own, not one a vendor should default for you.
- The element string is the same identity in the grammar a point-of-sale lane parses. Same facts, two encodings — a browser cannot read the element-string form, a lane does not need the URI form, and knowing that distinction is most of what "2D readiness" actually means at the questionnaire level.
Every output is validated before it renders: check digit verified, AI syntax checked against the pinned table, dates well-formed. A generator that renders invalid marks is a liability with a preview button; this one refuses, with the violated rule named.
Why this is free, and why that is not a trick
Constructing a Digital Link URI and rendering a barcode are implementations of open standards — the GS1 Digital Link URI syntax and the General Specifications are free documents, royalty-free to implement under GS1's own IP policy. No GS1 license, membership, or agreement is required to construct the URI or render the symbol. What is licensed is the thing you already have: the GTIN itself, through your company prefix. So the generation step — the step vendors have historically wrapped in label-software seats and portal logins — costs nothing because it should cost nothing, and a free conformant generator is not a loss-leader gimmick. It is what the standards already permit, delivered as a command.
That is also why this is safe to run before any strategy exists. You are not signing anything, joining anything, or committing to anything. You are rendering your own identifier, under rights you already hold, to look at it.
What this honestly does not settle
A rendered mark is the start of the decision, not the end of it, and the boundaries deserve stating plainly:
- It does not choose your lane symbology. Whether your retail context calls for a QR carrying a Digital Link URI or a GS1 DataMatrix is an audience question — who scans this mark, a consumer's phone camera or a professional lane scanner — and a DataMatrix is not what a consumer's camera app reliably resolves. That decision is yours, and it is a real one.
- It does not answer your retailer's specific requirements. The questionnaire on your desk may name symbologies, placements, or timelines beyond GS1's baseline. Generation shows you what any of those options looks like; it does not negotiate them.
- It does not make lot and expiry travel. Whether your co-manufacturer's lines can print a per-batch mark is an execution question between you and your plants. What the command gives you is the exact artifact to put in front of them — "this, on the case, from your line" is a conversation; a standards PDF is not.
The self-service check
One more property worth knowing before you forward the SVG anywhere: everything generate emits, resolve reads back — same package, inverse verbs, and the round-trip is a law of the tool, not a hope. Render your mark, scan it with your own phone, and the identity that comes back is bit-for-bit the identity you put in. That is quality assurance you can run at your desk, today, on the actual mark your product would carry — no project, no vendor, no meeting.
Run it on your own GTIN: npx barcoding.dev generate, and the mark is in your hands in the time the questionnaire took to read. The executive framing of what the 2D transition changes for a brand that has never had a line to its own consumer — the reason this is a budget unlock and not a compliance chore — is on the family's business door at visibility.cloud.
Keys open the network half of the verb set. Get an API key — say what arrives at your door, and the provisioning order follows the list.
We answer in writing. We take at most five conversations a month, only when you ask for one, and only after you already have the written read.