Case study

NiimBlue: an independent web client for NIIMBOT label printers

Replaces NIIMBOT's own label app with a browser client that designs labels and prints them over Web Bluetooth or Web Serial, with Android (Capacitor) and Windows (Tauri) builds of the same interface. Printer communication comes from the same author's NiimBlueLib, which the README calls the most complete implementation of the NIIMBOT protocol; the protocol is documented on the NIIMBOT Community Wiki, and owners of models that do not print are asked for a packet capture of a print made with the official app. The README says the client runs entirely in the browser and keeps label data there.

Requirements & limits

  • The reviewed main commit is the v2026.9.0 release of 2026-09-27; newer work lands on the dev branch, which CONTRIBUTING names as the base for pull requests. The README keeps no list of supported models and points to a NiimBlueLib issue that collects tested models; it suggests trying a different print-task version in the preview dialog when printing fails.
  • Needs the user's own NIIMBOT printer over Bluetooth or USB serial and a browser with the Web Bluetooth or Web Serial API, usually Chrome-based; some systems need Chrome flags enabled, Safari needs a third-party extension, and deployments other than localhost need HTTPS. No vendor app or firmware is needed to print. The optional firmware updater only flashes a .bin file the user selects.
  • Built with Node.js and npm from Svelte 5, Vite and Fabric.js, with @mmote/niimbluelib pinned at 0.47.0; npm run build writes static files, and the Dockerfile serves them with nginx. Releases attach the static site as niimblue-dist.zip plus an Android APK and a Windows executable, built by the repository's Gitea workflows.
  • The repository has no automated test suite: the Dockerfile and deployment workflow run svelte-check before building, and the Gitea workflows build and publish the site and apps. The protocol code and its tests live in the separate NiimBlueLib repository, which this review read only at its README. Model support rests on user reports, and this review built and ran nothing.
  • MIT (LICENSE, 2024 MultiMote); NiimBlueLib is also MIT, and its README says the work is for informational and educational purposes, is not affiliated with or endorsed by the vendor and is not meant for commercial use without the vendor's consent. CONTRIBUTING says AI-generated code is not appreciated and must be reviewed if used; the reviewed sources establish no AI or REA use in the project.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
App · Protocol

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · MultiMote/niimblue · Revision 82c5605
  2. package.json GitHub · MultiMote/niimblue · Revision 82c5605
  3. CHANGELOG.md GitHub · MultiMote/niimblue · Revision 82c5605
  4. CONTRIBUTING.md GitHub · MultiMote/niimblue · Revision 82c5605
  5. Dockerfile GitHub · MultiMote/niimblue · Revision 82c5605
  6. LICENSE GitHub · MultiMote/niimblue · Revision 82c5605
  7. src/components/basic/FirmwareUpdater.svelte GitHub · MultiMote/niimblue · Revision 82c5605
  8. .gitea/workflows/deploy-to-server.yml GitHub · MultiMote/niimblue · Revision 82c5605
  9. .gitea/workflows/build-android-app.yml GitHub · MultiMote/niimblue · Revision 82c5605
  10. .gitea/workflows/build-tauri-app.yml GitHub · MultiMote/niimblue · Revision 82c5605
  11. https://github.com/MultiMote/niimblue/releases/tag/v2026.9.0
  12. README.md GitHub · MultiMote/niimbluelib · Revision a9bc3f5
  13. https://printers.niim.blue/interfacing/proto/

More in Apps

All 100 entries in AppsApps case studies (46)