Roadmap
Describes the high-level features and actions for the Meteor project in the near-to-medium term future.
Introduction
Last updated: August 22nd, 2024.
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.
Next releases
- Improve TypeScript support for Meteor and packages (Discussion)
Should be an ongoing effort to improve the TypeScript support in Meteor and packages, as we write new code in TypeScript and get more skin in the game, it should naturally improve. This doesn’t mean we will actively refactor working code.
- Performance improvements for Meteor 3.0
After removing fibers, we became heavily reliant on async resources and consequently Async Hooks/Async Local Storage, which has a performance cost, we need to optimize that.
- Bringing community packages to the core
Some packages are widely used and should be part of the core, which involves identifying and moving them to the core.
- 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.
- Integrated support for Vite (Client Bundler, Discussion)
Vite is a fast and modern client bundler with an amazing ecosystem. It has many potential benefits for Meteor: build performance, tree-shaking, making our codebase leaner, and focusing on what we do best.
- Replace Babel with ESBuild, Rollup, SWC, or another tool for the server bundle (Discussion)
Babel is a great tool, but it's slow and has some limitations; we should consider replacing it with a faster and more modern tool for the server bundle. We could potentially use the same tools Vite uses.
- Support package.json exports fields (Discussion)
- Tree-shaking
Tree sharking and exports fields may be implemented by integrating with more modern build tools, see previous items.
- Improve release CI/CD speed and reliability (optimized build times will help)
Sometimes 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.
- Improve support for Windows 11
We had many complaints in the past, we need to research and make architectural improvements to make it easier to support Windows, not just punctual fixes.
- Document better Windows with WSL
It's already possible to use Meteor on Windows with WSL, but we need to document it better
- HTTP/3 Support
HTTP/3 is the next version of the HTTP protocol. We should support it in Meteor to leverage its performance and security benefits.
Candidate items
We need to discuss further to decide whether to proceed with these implementations.
- Improve DDP Client
- Improve Passwordless package (Discussion)
- Integrate with Tauri, it might replace Cordova and Electron in a single tool
- Support building mobile apps using CapacitorJS
- Bring Redis-oplog to core (Repository)
- Better file upload support via DDP (Discussion)
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
- Provide new async APIs where Fibers are required
- 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.