Three platforms, many small rules

NSIS builds the Windows installer, DMG covers macOS, and Linux gets AppImage and Debian packages. The code is shared; the expectations are not.

Packaged assets needed paths that work outside the development server. Icons demanded specific sizes. The daemon needed a hidden window so the installer could close it correctly. None of this appears in the marketing screenshot, but everybody notices when it is missing.

CI as a demanding colleague

Automation uses `npm ci`, which compares package.json and the lockfile with notarial precision. If they disagree, the release stops. Annoying once, useful forever.

The beta keeps moving

Every package expands the group of people who can try the project. That is the real reason to support three ecosystems: not collecting file extensions, but shortening the distance between “I want to try it” and “I am already using it.”