Meteor-desktop v5.0.0 — Meteor 3.x + Electron 33+ support, ESM, major debloat

Hi everyone,

I’m happy to announce @a4xrbj1/meteor-desktop v5.0.0 — a major release that brings full Meteor 3.x compatibility to Electron desktop builds.

This is a continuation of the meteor-desktop package originally created by Paweł Wójtkowiak and previously maintained under @meteor-community. The fork lives at
GitHub - a4xrbj1/meteor-desktop: Build a Meteor's desktop client with hot code push. · GitHub.

Why v5?

Meteor 3.x dropped the web.cordova build target that meteor-desktop relied on. v5 rewrites the integration to work with web.browser architecture instead, and modernizes everything else along the way.

Key changes

  • Meteor 3.x support — switched from web.cordova to web.browser architecture. Manifest acquisition, /__browser/ asset paths, isCordova detection, and autoupdate all updated.
  • ESM / Electron 33+ — replaced deprecated registerStreamProtocol with protocol.handle + net.fetch(). Dev-server responses are patched for import.meta, global, and
    classic-script constraints.
  • Hot Code Push improvements — cordova.js renamed to desktop-hcp.js, auto-injected into index.html, with 5 fail-fast guardrails in autoupdate.
  • Dependency debloat — removed node-fetch, shelljs, lodash, rimraf, isbinaryfile, and del. All replaced with native Node.js APIs. The dist/ build step is gone — the package
    ships lib/ directly.
  • 7 build validation gates (A1–A7) — catch broken bundles, missing files, and hash mismatches early. Every error path now throws or exits instead of silently continuing.
  • Reliability — fs.rmSync race-condition fixes on macOS, chmodRecursive on all platforms, 13+ previously silent error paths surfaced as hard failures.

Install

meteor npm install --save-dev @a4xrbj1/meteor-desktop

Requires Meteor 3.0+ and Node.js 22+.

Links

  • GitHub
  • npm
  • CHANGELOG

131 commits since the last release. Full details in the changelog.

Feedback, issues, and PRs welcome!

P.S.: build with the help of Claude Code and VSC Copilot

9 Likes

This is huge great work. I bet @msavin will be extremely pleased. Also this should help @nachocodoner on deciding the future of Meteor.

1 Like

a man in a suit is sitting in a black chair

Blown away by this and all the new Meteor progress

It was some crazy two long nights and days as I had to get this going when I needed to ship a new version of my app to the users urgently and the version 4.2 I released earlier (never tagged it) had still lot’s of problems with 8 year old design (eg references to Cordova for a “Desktop-only app”. Enabling “desktopHCP” was just something I could have done later but now it’s working (fingers crossed, so far, we will see in the future).

Your patience and dedication to the Meteor community finally paid off :joy:

This is amazing to see happen. These days, it’s great to see projects being revived and working again.

We will soon start the overhaul process, similar to the Rspack integration, but focused on the native experience properly integrated as part of the core experience.

I still see Meteor as the most mature solution that has consistently used web technologies to produce multiplatform apps, including mobile and desktop. To get back to that status through these revamp efforts, all this work will serve as inspiration for what we can adopt into the core.

2 Likes

Thanks

FYI - I’m in the process of fixing the last outdated tests and I have also do a lot more changes for meteor-electron now being able to handle rspack build apps as well (as I successfully migrated both my frontend and backend apps as well to rspack).

So there will be a new release soon. If anyone wants to give it a try, maybe just wait 1-2 days more till it’s there.

4 Likes