Skip to content

Roadmap

Describes the high-level features and actions for the Meteor project in the near-to-medium term future.

Introduction

Last updated: March 31th, 2025.

The description of many items includes sentences and ideas from Meteor community members.

Contributors are encouraged to focus their efforts on work that aligns with the roadmap then we can work together in these areas.

As with any roadmap, this is a living document that will evolve as priorities and dependencies shift.

If you have new feature requests or ideas, you should open a new discussion.

Current project: Bundle optimization

We need to improve the bundle size and performance of Meteor apps. We should consider tree-shaking, code-splitting, and other optimizations to make our apps leaner and faster. To achieve that we plan to integrate or have an easy way to integrate with modern bundlers like RSPack, ESBuild, or Rollup.

Discussion links:

Implementation plan:

Phase 1: Profiling

Target Release: 3.2 ✅

Goal: Add a command(meteor profile) to measure if our changes are actually making our builds faster and smaller.

Phase 2: External Transpiler Integration & Bundler Improvements

Target Release: 3.3 ⏳

Goal: For this phase we want:

  • Improve our current bundler performance, via optimizations so that any meteor user can get benefits from it; And an external bundler could get the same benefits.
  • To have an external transpiler working with Meteor and producing a bundle that is smaller or faster than the current Meteor bundle.

Phase 3: HMR Improvements

Target Release: 3.3.x ⏳

Goal: Improve the HMR performance, so that it is faster and more reliable on what needs to be changed.

Phase 4: Build Process Optimization

Target Release: 3.4 ⏳

Goal: Improve the build size and make meteor use less resources for building, decreasing even more build and rebuild time.

Documentation Strategy

We plan to document the changes in the Meteor documentation, including:

  • How to use the new features
  • How to integrate with the new bundler
  • How the meteor bundler pipeline works for future contributors
  • Examples and guides on how to integrate with the new bundler

Next releases

  • Support package.json exports fields (Discussion)

  • Tree-shaking

    Tree-shaking and exports fields may be implemented by integrating with more modern build tools.

  • Capacitor support

    Capacitor is a modern alternative to Cordova; we should provide an easy way to build mobile apps using Capacitor.

  • MongoDB Change Streams support (Discussion)

    Change Streams is the official way to listen to changes in MongoDB. We should provide a way to use it seamlessly in Meteor. It has been planned for a long time, and now we’re in a position to do it.

  • Improve TypeScript support for Meteor and packages (Discussion)

    Should be an ongoing effort to improve the TypeScript support in Meteor and packages. We should provide a better experience for TypeScript users, including better type definitions and support for TypeScript features.

  • Improve release CI/CD speed and reliability (optimized build times will help)

    Our CI/CD takes too long to run, causing long queues and delays in our release process and feedback loop; we need to improve that.

Candidate items

We need to discuss further to decide whether to proceed with these implementations.

  • Performance improvements (Async Hooks/Async Local Storage optimization)
  • HTTP/3 Support
  • Improve DDP Client
  • Improve Passwordless package (Discussion)
  • Integrate with Tauri, it might replace Cordova and Electron in a single tool
  • Bring Redis-oplog to core (Repository)
  • Better file upload support via DDP (Discussion)
  • Improve usage in Windows environments

Finished items

  • Change how Meteor executes Async code (Discussion)
    • Provide new async APIs where Fibers are required
      • Mongo package with Async API (PR)
      • Provide async versions for Accounts and core packages
      • Adapt Meteor Promise implementation
  • Enable Top-Level Await (TLA) on Meteor server-side (PR)
  • Support Top-Level Await (TLA) on Reify
  • Remove Fibers dependency from Meteor Public APIs
  • Remove Fibers entirely
  • Update Cordova integration to Meteor 3.0
  • Run Meteor on Node.js v20
  • Change web engine from Connect to Express

For more completed items, refer to our changelog.