Weekly Update (May 16, 2025): New 3.3-beta.1 Release, Faster Builds Delivered! 🚀

Hello everyone, it’s time for our weekly update! :rocket:

We’ve got some exciting news, Meteor 3.3-beta.1 is out now!

This release marks the first major update to the Meteor bundler in years, with several improvements and optimizations. It includes the SWC transpiler and minifier to speed up development and builds.

It also includes important community contributions, especially around Meteor React packages, improving stability, performance for commonly used hooks; and support of React 19.

Tasks and fixes for Meteor 3.3-beta.1

  • Support SWC transpiler and minifier for faster dev and builds PR#13657, PR#13715
  • Switch to @parcel/watcher for improved native file watching PR#13699, PR#13707
  • Default to modern architecture, skip legacy processing PR#13665, PR#13698
  • Optimize SQLite for faster startup and better performance PR#13702
  • Support CPU profiling in Meteor 3 bundler PR#13650
  • Improve meteor profile: show rebuild steps and total, support --build PR#16 and PR#13694
  • Improve useFind and useSubscribe React hooks
  • Add replaceEmailAsync helper to Accounts PR#13677
  • Fix user agent detection and oplog collection filtering
  • Refine type definitions for Meteor methods and SSR’s ServerSink
  • Allow opting out of usage stats with DO_NOT_TRACK
  • Update Node to 22.15.1 and Express to 5.1.0

:link: All merged PRs: GitHub PRs 3.3

:link: React packages changelog: 4.0.0-beta.0

Your feedback is crucial in adjusting this beta before the official launch. Our core team is running tests, but community testing is key to ensuring Meteor 3.3 is stable. Let us know what you find!

Hands on

To update an existing app:

meteor update --release 3.3-beta.1

To create a new app:

meteor create --release 3.3-beta.1

Add this to your package.json to enable the new modern build stack:

"meteor": {
  "modern": true
}

This setting is on by default for new apps.

:warning: Note the new modern setting replaces modernTranspiler and modernWebArchsOnly from previous Meteor 3.3-beta.0 announcement. You can opt out each, see the docs. Modern Build Stack docs

Highlights

Modern Build Stack

Meteor 3.3 brings a new build stack: SWC for transpiling and minifying, @parcel/watcher for file watching, and smarter skips for legacy bundles.

Turn on "modern": true in your package.json and see rebuilds and builds fly.

Performance Highlights

On average, build and rebuild times are cut by about 50%, roughly a 2× speed-up, but actual gains range from around 30% (≈1.5× faster) up to 60% (nearly 3× faster) in the best scenarios.

Results are from fredmaiaarantes/simpletasks app on a specific machine. Your numbers may differ, but you can expect similar gains.

Curious about the gains? Run meteor profile to compare Meteor 3.2 vs 3.3-beta.1 on your project and share your results!

Development Breakdown

When running meteor run, timings from meteor profile with and without "modern": true.

Production Breakdown

When running meteor build, timings from meteor profile --build with and without "modern": true.

Build Stack Upgrade

Transpiler

The transpiler converts modern JS syntax in all app code to a cross-browser compatible version.

Meteor profiling showed most build time goes to Babel transpilation (meteor run/meteor build). To fix this, we added SWC (in Rust), which speeds up rebuilds in both development and production.

There are no breaking changes for most apps. If your app uses nested imports (not dynamic ones), it may fall back to Babel. The same applies if you use Babel plugins that SWC does not support yet. You can find SWC equivalents or disable SWC for those files.

We also added a doc page with tips for migrating and debugging the new setup.

:link: Modern Transpiler: SWC docs

Minifier

The minifier reduces and obfuscates your app’s production bundle for security and efficiency.

Meteor profiling showed Terser spends a lot of time on production builds (meteor build). To fix this, we added the SWC minifier, which speeds up builds.

@italojs adapted the minifier from the zodern/minify-js-sourcemaps package, cherry-picked it, and integrated it into Meteor core, delivering the performance gains we wanted.

:link: Modern Bundler: Minifier docs

Web archs

Web archs are the builds Meteor generates for modern browsers, legacy browsers, and Cordova.

Skipping web.browser.legacy and web.cordova speeds up builds. In development mode, Meteor skips these archs when they aren’t needed.

Thanks to @9Morello for driving this forward!

:link: Modern Bundler: Web Arch docs

Watcher

The watcher listens for changes in your app’s code files and triggers quick recompilations.

Meteor now uses @parcel/watcher. This improves development mode speed and compatibility by using native, recursive file watching on all OS. It also fixes a long-standing Linux delay where file changes took 5 seconds to register.

:link: Modern Dev Server: Watcher docs

Tools: CPU profiling

We added environment variables to generate and inspect CPU profiles. In his guide, @italojs shows how to run these profiles and pinpoints Babel as a bottleneck now replaced by SWC in 3.3.

We also enhanced meteor profile with a --build flag to profile the production build and highlight minifier gains. The rebuild reports now emphasize total rebuild times to help you track client and server build improvements.

React 19 Support

We updated the meteor/react-packages repo to restore tests/CI and ensure compatibility with Meteor 3. Contributors also improved the performance of useFind and useSubscribe, and added React 19 support.

Try the new beta of react-meteor-data:

meteor add react-meteor-data@4.0.0-beta.0

Thanks to @welkinwong, @Poyoman39, and @PedroMarianoAlmeida for their contributions and tests!

Be aware of a breaking change: useFind describes no deps by default #431

Huge thanks to our contributors

We’re grateful to community members for testing and feedback on Meteor 3.3: @zodern, @minhna, @paulishca, @pmogollon, @ferjep, @wreiske and @schlaegerz.

Join us and contribute! Test this beta, check out Meteor GitHub issues or start with Good first issues.

What’s Next?

  • Meteor 3.3 – Coming Soon

    • The release is complete and live.
    • We’re testing and acting on feedback.
    • Once testing wraps up, we’ll publish the official 3.3 release.
  • Meteor 3.4 – On the Horizon

    • Deeper bundler integration for new production features, broader plugin support, and faster builds by moving more bundler steps to a modern tool.

Stay tuned, and as always, happy coding! :comet:

10 Likes

We’ve also added a patch for percolate:migrations (we maintain it, but it’s not in core yet):

  • Run async migrations in sequence (PR #90)

To pull in the latest changes:

meteor add percolate:migrations@2.0.1

We could make it part of the Meteor core later. What do you think? (Bring percolate:migrations to Meteor core packages · meteor/meteor · Discussion #13648 · GitHub).

3 Likes

Great work, y’all. Using SWC by default makes this one of the most significant releases in terms of DX in a long time. :tada:

5 Likes

I’m very much for integrating percolate:migrations. It is the de facto standard already and is necessary for any production apps.

2 Likes