Industrial labeling, made approachable.

openlabelengine

Industrial labeling, made approachable.

I started openlabelengine to explore how far agents and modern software development could go in industrial labeling. After watching prices rise and subscriptions become the default, I wanted to make it easy and affordable again. The result is open-core software for designing and printing labels.

Honest by architecture, not by marketing.

Three things it refuses to do

  • It refuses to show you a preview. What the browser shows is the server-side ZPL raster at 203 dots per inch, generated by the same code that sends the job to the printer. Not CSS that looks similar. The same bytes. Preview is print.
  • It refuses inbound connections. The runner on the floor opens connections to the server; nothing opens connections to the runner. When the connection is gone, printing continues, and the runner reconnects on its own.
  • It refuses to print a job twice. A job keeps one identity through retries, resends and replays after an outage. A printer that already has that job prints nothing new. Reprints are a decision someone makes, never an accident a network makes.

In numbers

  • Raster 203 dots per inch, 8 dots per millimetre. The same raster the print head receives.
  • Preview 1 renderer. The browser shows the output of the code that prints, not a second drawing of it.
  • Runner connections Outbound only. 0 inbound ports on the floor. Firewalls stay closed in the direction that matters.
  • Offline Printing continues while the line to the server is down; the runner reconnects on its own when it is back.
  • Job identity 1 identity per job for its whole life. Retries, resends and replays reuse it; a printer that has it prints nothing new.
  • Scale Ten thousand labels a day across several plants, from the same template and the same raster.
  • Licence Open core. The source of the core is public and stays usable if this site disappears.

The runner on the floor

A small service next to your printers. It makes outbound connections to the server, pulls its jobs, and pushes them to the printers on the local network. Nothing on the internet can reach it, because nothing needs to: it does the calling. When the server is unreachable, jobs already on the runner keep printing, and the runner reconnects and reconciles on its own once the line is back.

Retries without duplicates

Every job carries one identity from the moment it is created until the label is on the pallet. Retry it, resend it, replay it after an outage: the runner and the printer recognise the identity and print nothing new. A reprint is a separate job someone asks for, with its own identity, so it shows up in the log as what it is.

Bring the files you already have

Import a .misx or .nlbl file and you receive a report, one line per object, stating what was reproduced exactly, what was approximated and how, and what was not carried over. You audit the migration before you trust it, not after the first wrong pallet. The report is a file on your disk, not a screen in someone else’s cloud.

Compared with the two incumbents

Most floors run one of two established label suites, and openlabelengine is built to take their place. It differs in three places you can check: the preview is the printer’s raster, not a designer’s approximation; the runner only connects out, so the shop floor opens nothing; and a job keeps one identity, so a retry is never a second print. The two suites’ file formats are the ones the migration report reads.

What it does not do

  • It does not draw a second, prettier preview. The raster is the only picture. If it looks wrong on screen, it would have printed wrong.
  • It does not open a port on the floor. The runner has no listener. There is nothing to expose, so there is nothing to secure.
  • It does not guess at a migration. Every object in an imported file gets one of three verdicts: exact, approximated, or not carried over. There is no fourth verdict.
  • It does not lock the templates. Templates are files in a readable format. The source of the core is open. Leaving is a copy operation.

Questions buyers ask

  • Is the browser preview really what prints? Yes. It is the server-side ZPL raster at 203 dpi, produced by the same code path that sends the job to the printer.
  • What happens when the server is down? The runner keeps printing the jobs it already has and reconnects on its own. No job is lost, and no job is printed twice when the connection returns.
  • Does the runner need an inbound firewall rule? No. It only makes outbound connections. There is nothing to open.
  • Can I keep my existing label files? Import them. You get a report per object that says what came across exactly, what was approximated, and what did not, before anything is printed.
  • What if the maintainer disappears? The core is open source, the templates are readable files, the migration reports are on your disk, and the runner never calls home. Your printers keep running.

What you keep

The source, under an open-core licence. Your templates, in a format you can read. The migration reports, as files on your disk. A runner that never needs to call home. The parts that matter do not depend on any one company, or any one person.

For procurement

Questions about licensing, hosting, or a pilot on your own printers go to the engineer who wrote it. Replies come with a date in them.

On the drawing

  • The browser preview is the server-side ZPL raster at 203 dpi, produced by the same code that prints. Not a CSS approximation.
  • The runner makes outbound connections only. Nothing connects in to the runner.
  • The runner keeps printing when the connection to the server is gone.
  • A retried job is not a reprinted job. Every job carries one identity for its whole life. Retry it, resend it, replay it after an outage: a printer that already has that job prints nothing new. Reprints are a decision, never an accident.
  • Imports the incumbents’ .misx and .nlbl files and produces a report per object: reproduced exactly, approximated (and how), or not carried over.
  • The core is open source.
  • Built to replace the two incumbents on floors that print ZPL all day.

Where to go next

openlabelengine.comWrite to the engineer