Announcing How to migrate your application to async methods and be ready to 3.0 guide

As you might have seen in this post in this topic(current state of Blaze), we have launched a how to be ready for meteor v3.x guide. In this guide, we cover the methods that were updated to have an Async counterpart.

We also added some of our experience while updating one of our dear apps(, adding how we handled the async state in blaze and react also @vitorsouzaalmeida added a section on how to use a codemod so that most of the migration in the backend can be automated.

Check it out now!


I’ve just posted this here in the other thread over there, so sorry for the cross-post:

I really think the guide (How to migrate to Meteor Async in Meteor 2.x | Meteor Guide) should be fleshed out more… I’ve created an issue (Updating Migration Guide to be more digestable · Issue #12818 · meteor/meteor · GitHub) too but I didn’t get around to writing anything yet.

It’s also a bit of a tough nut because it’s a mix between a moving target (everything isn’t final yet, see blaze / tracker / autoruns / methods / packages), and b) I’m not even sure all scenarios are actually fully covered yet.

I think this could become more of a community thing, where everybody who has something to contribute could add his current experience.

I have some things we’ve tried so far & could give an intermediate experience report, unfortunately it all takes time…

Is there maybe someone in the community who’d like to help out to gather & organize the information maybe? Somebody who enjoys doing some technical writing?

I could help setting up the writing environment & help to organize the information, for example.

And then everybody who is working on and / or had some success preparing their apps for 3.0 would be invited to share and contribute his experience?

So if you have migrated you app successfully to 2.13 and/or Meteor 3, maybe let yourselves be known & maybe we can all work together on this?

Could we maybe merge these two threads & maybe make a workgroup-thread for those willing to contribute to it can organize themselves?

Here is my progress of upgrading WeKan to Meteor 3.0 alpha 15:


Great stuff @xet7 ! Very nice. We should add this to a general migration document…

It’s still kind of rough and not for the faint hearted yet I’d say… can I ask whether you’re finished yet / did you get it to run yet actually, given that there still were issues with Simpl-Schema in the end?


Yesterday I did not yet have time to try those fixes in Meteor 3 Async PR, can they fix Simp-Schema errors. I will continue fixing and adding remaining dependencies, or changing to compatible dependencies. It is kind of, when I fix one error, then it shows next error, so there is not too much to fix at one step, it’s quite clear what to do.

Good thing is, that there is already all WeKan code for server and client, and those do not show errors when running with Node.js 18, so it’s just about adding remaining dependencies, sometime I will look when web UI becomes visible.

1 Like

I know exactly what you mean… :smiley:

Good luck and thank you for your excellent description!

1 Like

I have a small project that I migrate now. I think I am close to success. Maximum another 2 weeks and I think I can see my home page :).
Grapher is a bi*** and Push with Firebase (didn’t get it yet to install NPMs in Node 18).

For Meteor.bindEnvironment(...) we just remove the binding?

I think it depends. Meteor Environment Variables are now built on top of async local storage, which preserves the value automatically in many cases, but not all. If you were using bindEnvironment to run the callback in a fiber, then it is no longer needed. If you were using it to preserve the environment (for example, for Meteor.userId() to work), then it might not hurt to keep using it.


We badly need more centralized and better documentation @grubba @fredmaiaarantes @denyhs.

There are different topics (forum/slack/GitHub) asking related questions. Deprecated information is, unfortunately, challenging to go back to and correct. Worse, there are instances that different people are giving conflicting information.

In an ideal scenario, when someone asks about migrating from Meteor 2 to Meteor 3, we link them to the centralized documentation. Even if the information changes in the future, at least anyone who lands on the same question and follows the link will get the updated information. When a new question is asked that the migration document does not cover, update the document and answer with a link to the updated documentation.

Unfortunately, the current “Guide” page is not ideal for this as it is not “current enough” for the questions being raised and requires answers centralized into a “live” documentation.


Yes, we 100% agree, and we’re currently working on a doc that will give this macro view of everything.

It’ll probably be a GitHub discussion because it’s easy to keep the doc updated, and people can easily interact with it.

Hopefully, it’ll be live until next week.