Meteor 3.4 marks the final day of the Galaxy Expansion and celebrates a new era for the framework that started it all, bringing modern tools into the core Meteor experience.
Meteor 3.4 introduces the Rspack bundler in the core to improve the dev experience by cutting build times, reducing bundler size, and supporting standard configuration patterns and features from the wider JS ecosystem.
This is a big step forward to address many long-requested improvements Meteor users have talked about, and we moved toward them across the newer Meteor 3 era.
In Meteor 3.2, we started by adding tools to monitor our goals for the build experience, with meteor profile introduced to measure build times and bundle size.
In Meteor 3.3, we delivered the first round of optimizations for faster builds on the Meteor bundler, getting more from the solid and mature mechanism used for Meteor apps since the beginning. We added a new transpiler with SWC, a new watcher, and other improvements.
In Meteor 3.4, to wrap up this effort on improving the bundler experience, we focused on delegating to a modern tool like Rspack, which let us meet all initial goals and allow Meteor apps to apply efficient HMR, tree shaking, full ESM support, modern plugins, and more.
Our core team has already migrated to Rspack for the Galaxy Cloud app, showing the optimizations applied to a real-world app like the one hosting your Meteor apps. This post details the changes and shows the Galaxy app’s improvement metrics as an example of what to expect with your Meteor 3.4 upgrade when adopting the Meteor Rspack integration.
This release also includes community contributions for Meteor React packages by improving stability and performance of suspense hooks, integrating collection-extensions package into core, considering Cordova as a modern build, and more.
Getting Started
To start using Meteor 3.4.
Create a New App
# Create a new Meteor app using Meteor 3.4
meteor create my-app --release 3.4
All improvements introduced in Meteor 3.3 and 3.4, including the Rspack integration, are enabled by default for new apps and applied to all skeleton examples. Check
meteor create --helpto see the available skeletons.
Update Your App
# Update your existing Meteor app to version 3.4
meteor update --release 3.4
Add modern to your package.json to enable the Meteor Bundler optimizations:
"meteor": {
"modern": true
}
Check out the requirements for Meteor Bundler optimizations on existing apps.
☄️Meteor Bundler optimizations docs
Add rspack package to enable the Rspack Bundler integration:
meteor add rspack
Check out the requirements for Rspack Bundler integration on existing apps.
⚡Rspack Bundler integration docs
Highlights
Faster Builds
Meteor 3.4 goes further than Meteor 3.3 and the initial SWC adoption. With Rspack now compiling your app code, you get the speed of this modern tool built in Rust. The Meteor bundler still compiles Atmosphere packages and links the final app code, but that part was already optimized in Meteor 3.3, so you get the best of both.
With meteor profile, build times drop ~70% and are over ~3.5x faster. Rebuild times for both client and server are now much shorter, making development far quicker.
These metrics were measured for the Galaxy app Rspack migration, coming from Meteor 3.3 applied optimizations. Your app will see similar improvements.
Smaller Bundles
Meteor 3.4 introduces one of the most awaited features to keep app bundles small: tree shaking. With the Meteor-Rspack integration, bundle size is significantly reduced through this built-in optimization, along with other Rspack strategies such as chunk splitting, dynamic imports, minification and more.
After migrating and deploying the Galaxy app, the main client bundle size dropped by about 88% compared to previous 3.3.2 release. Client bundles are now thinner, meaning less code delivered and faster initial load times for your apps.
The gains vary by app, its dependencies, and the optimizations used. Just by applying tree shaking you will get improvements; sometimes smaller, sometimes much larger, depending on how tree-shakeable your dependencies are.
Additionally, by using code splitting and dynamic imports you split the main chunk, reduce the main size, and load other pieces on demand. Give it a try and play with these options in your project.
Atmosphere Bundle Reduction
What is more, Meteor 3.4 adds an optimization for Atmosphere packages by introducing:
- The ability to mark packages as
devOnly, so they’re fully removed from production builds. - A new
Npm.devDependsoption in your package.js to define dev dependencies, ensuring only the needed node modules for development are included during dev time and excluded from production (meteor build).
After deploying the Galaxy app, the total bundle size stored on the host machine dropped by about ~42%. This improvement applies to all apps, since Meteor core packages now use the new Atmosphere optimization configuration. More gains will come as you update your own Atmosphere packages or community ones to properly skip dev-only packages and dependencies in production builds, leaving your final containers on hosts noticeably smaller.
Modern Setups
Meteor 3.4 introduces Rspack so you can configure modern setups from the community.
Supported setups include React, React Compiler, Vue, Solid, Svelte and Angular, all using their latest versions. Legacy setups like Coffeescript and Blaze remain supported, keeping older projects compatible.
With this update, ESM packages are fully supported. Meteor apps can now use modules that rely on ESM behavior. A clear example is the support for React Router v7, a long-standing request from the community.
Rspack also opens many new options. All Rspack or Webpack features can be configured in Meteor apps, including Workbox for Service Workers and PWA, asset imports and optimizations, and controlling the bundler lifecycle for custom behaviors and improvements.
What Else Is New in Meteor 3.4?
Thanks to the commitment of many of our community contributors, we have been able to expand this release with new features and optimizations.
react-meteor-dataupdated to4.0.1, bringing improvements to suspense hooks and general optimizations. @welkinwong, @malua, @evolross, and @StorytellerCZ delivered these updates along with other maintenance.Integrated
collection-extensionsinto core, part of our goal to bring widely used packages across Meteor projects into core for better support and maintenance. Thanks to @harryadel for making this possible.Cordova builds are now considered modern instead of legacy when
"modern": trueis set in your project’s package.json. @tmeyer24 prepared this change, laying the groundwork for future native updates with CapacitorJS or similar modern tools.--raw-logsis now the default in the Meteor CLI for development. @paulishca suggested this, with full consensus from the community, and @Grubba27 provided the update quickly.
More improvements and fixes were introduced in Meteor 3.4, see the changelog.
For more insights into the release, watch the release video:
📹 Meteor 3.4 and the road ahead - Galaxy Expansion Day 5.
For more about the modern build stack, including Rspack, we joined Meteor Impact and gave a talk that explains its adoption, migration, and expected benefits.
📹 Modern Build Stack in Meteor 3: Empower Your Meteor Apps with Faster, Feature-Rich Bundling
Big Thanks to our contributors
Reaching the 3.4 milestone would not have been possible without such an active and enthusiastic community. We want to highlight how important these contributions have been for this release.
Thanks to our core contributors: @nachocodoner, @italojs, @Grubba27, @welkinwong, @harryadel, @vparpoil, @StorytellerCZ, @turoar23, @DipakHalkude, @sanki92, @evolross, @malua, @tmeyer24, @jeetburman and @copleykj
Thanks to all community members for the testing and feedback on Meteor 3.4.
What’s Next for Meteor and Beyond?
For the upcoming releases, we have the following priorities.
- Stability and patches. Collect feedback and fix issues. Planned Meteor 3.4.x patches.
- Change streams. Unified MongoDB change notifications. Planned on Meteor 3.5 release./
- Node 24. Align with newer Node LTS releases.
- Native. Move toward a modern native solution beyond Cordova.
For more details on upcoming work and priorities, see the Meteor roadmap.
Join the Meteor Renaissance!
Meteor 3.4 wraps up the significant bundler changes we had envisioned. From these changes we will keep tweaking the bundler to expand and improve the experience if needed. Still, we’ll continue updating Meteor to revitalize the framework we all love in other areas as well.
We’re excited about what’s to come and can’t wait for you to join the Meteor renaissance!
For feedback, questions, or support, visit our forums or join our Discord channel.
If you find any issues, please report them to the Meteor issues tracker.
Follow us on Twitter and GitHub.
Stay tuned, and as always, happy coding! ☄️



Top comments (0)