In this episode, Matt and Filipe discuss Meteor Cloud as well as the Meteor 2.0 release! There's lots to cover for the month of January, so let's dive right in!
In this episode of the Meteor Monthly Wrap-Up, we dive into the two major releases in the past month: Meteor Cloud and Meteor 2.0.
To kick it off, we discuss the specifics of Meteor Cloud and why we made the changes - which include:
The important piece is to highlight the main reason for making these changes: the goal is to make the experience of using our different products (Galaxy Hosting, Meteor Cloud, and Atmosphere) integrated in an intuitive way for developers.
The other major driver was to make it easier for new Meteor developers to deploy their applications. Getting your app in production is such a key component to seeing the power of Meteor; to bring more developers to the platform, it was important for us to improve the experience. Enter the Free plan and the new shared MongoDB instance!
More information on Cloud can be found here. To get started with using Meteor Cloud for free, visit our site.
Next, we covered Meteor 2.0. Highlights include:
For more information on Meteor 2.0 and what's coming next, see our blog post.
If you love Meteor and the updates we've made, spread the word! Our community has been so great and we'll need your help to bring new developers building and deploying on with Meteor Cloud.
As always, please reach out to us directly at podcast@meteor.com if you have any questions, feedback, or otherwise!
Matt Hollingsworth (00:02):
Hey everybody, and welcome to another edition of the Meteor Monthly Wrap-Up. My name is Matt Hollingsworth and I'm here, as always, with my co-host Filipe. And we have a lot to cover today. This is going to be a bit of a different episode from the other Meteor Monthly Wrap-Ups that we've done, we have some specific things we want to talk about, and this is going to be mostly cloud and Meteor 2.0 related, but we have a lot to cover, so let's get right into it. So, as many of you have already seen, your cloud is now live. It was a long road and we're happy with the way things ended up. It was a larger project than we had anticipated, but again, we're happy with the place where we landed here, and hopefully, you are too. As always, if you have any feedback for us, please do send that in to support@meteor.com or if you have podcast related tips or feedback, thispodcast@meteor.com
Matt Hollingsworth (00:54):
So what is Meteor Cloud? Meteor Cloud is our improved, unified commercial offering for Meteor Software. So prior to cloud, we had, as many of you know, and are using, were using before, we had the MDA, with developer accounts, we had Galaxy Hosting accounts, we had Meteor APM, Atmosphere, all those different things, they were a bit fragmented and difficult to navigate. So our goal was to unify those into one centralized place, so where you can see all of your applications, how those apps are using the different products that are part of the commercial offering, and just make it a better experience for developers and being able to see and manage their applications. So that was the goal. And we, obviously, had a pretty large redesign of our commercial offerings. So we had some help and hopefully, things are a little bit more modern and represent where we're going to go in the future with Meteor Software. So we were really happy with the way things ended up and we hope you are too.
Matt Hollingsworth (01:54):
The main features that we wanted to call out and improve on, we're starting to deploy an application, so we want it to make it a lot easier for new Meteor users to get their apps spun up. We are going to be constantly improving our tutorials, make sure that we have education resources there and available to you and are updated there. So there's more to come on that side, but the goal was to deploy a little bit faster and more intuitively. So we established the free plan and we'll get into that as well. But the first call out was to make it easier for people to start deploying their applications. And that's a lot easier now. If you don't have an app deployed, I do encourage you to go to your dashboard and see how easy it is, it's just one command line in your terminal and you can get running very, very quickly. That is again for the free plan. And those are only for apps that are running Meteor 2.0, but we'll get into all that in a bit.
Matt Hollingsworth (02:43):
The second thing was just to see how your applications are using the different products. So again, if you go to your cloud dashboard, you can see which apps you are deployed to or how many apps you have deployed to your Galaxy Hosting account, you have the ability to see what apps are being used with Meteor APM and how many packages you've downloaded from the Atmosphere side of things. And we want it to make it easier for people to navigate between those products. So if you log in, like I said, if you check the nav, it's just a better experience to be able to go between, let's say, Galaxy Hosting and Meteor APM. And if you have any questions, like I said, please do reach out to us, but the goal was to make it easier and improve the developer experience across these different products. So, Filipe, I've been talking for too long now, anything else to add, anything that I missed here with the Meteor Cloud rebrand and launch.
Filipe (03:31):
Right now, we can access Meteor Cloud just using your GitHub account. And that's nice as you don't need to create a new account from scratch on Meteor. And we also define a username and password there because we would need these in your CLI to be able to deploy, but it's good to have this integration with GitHub because that opens the door in the future for us to add more features with GitHub. And as we know, GitHub is the main place where developers go to do some work and it's nice to have this first integration and we expect a lot more to come.
Matt Hollingsworth (04:08):
Yeah. And so that was all in the name of trying to make it easier to create an account and deploy those apps. So that was the first step of the process. And as Filipe alluded to, there's more to come there on the integration side with GitHub, but we'll leave that for a later date.
Matt Hollingsworth (04:21):
The other key call-outs that we wanted to make and without getting too into it for this specific podcast, we do have new plans and new plan offerings. So the way to navigate to those plan options is either go to meteor.com and go to meteor.com/cloud and go down to Pricing. There, you'll be able to see the free plan and what that offers, as well as a new enterprise offering, which is on the far right-hand column as well there, the way that you navigate on the cloud dashboard side of things, if you'd select the application, by going to the applications tab and select that, you'll be able to go to the plan section on a per app basis for the applications part of the dashboard. And from there, you will be able to see which plan offerings are available to you and either upgrade or downgrade your accounts depending on your needs.
Matt Hollingsworth (05:11):
And again, the free plan is something we've heard a lot about from the community, we're excited to be able to offer it again. And just some call-outs with that, it is quite easy to get started. As I said, the free plan does require you to have Meteor 2.0 installed, and it's not for production applications. We don't recommend you have those live and expect many connections at all to those apps that have the free plan on them. And you don't need to have a credit card put in place there on the cloud side of things. So the free plan on the cloud is just for testing purposes and some staging environments as well, if that's something that you need. I should mention as well that the free plan is using the MongoDB Shared Hosting cluster as well. So that is why there's some limitations on the number of connections and what the free plan can be used for, but we are excited to give that and allow that or offer that to our community again. So that was big for us.
Matt Hollingsworth (06:09):
The enterprise plan is our formalized offering for larger applications that have many, many connections to them and require some custom configurations. And we've been doing that for quite some time now for specific users and specific use cases and taking those on a case-by-case basis, but there is a formalized offering there and you can see that on our website and as well from the cloud dashboard on the plan page. And just some quick call-outs with that, we have the private clusters, which is an exact replica of existing Galaxy clusters, and that is just designated for you. So increase and maintain your performance, have some additional security on that side of things. We do have the ability to create new and different size Galaxy containers on the enterprise plan. So feel free to reach out to us if you're interested in that and learning more about it. There's some extra added customizations we can do with the enterprise plan. So reach out to us if you're interested in that. Filipe, anything else that I should be talking about when it comes to the free plan or the enterprise plan?
Filipe (07:13):
Yeah, one thing that I would just like to highlight for the community that the free plan was essential. I was already part of the community when we had free plan back in the early days. And it was really, really cool to deploy our apps, even when you're just starting, because you can really test your app in a real environment. And better than that, you're not testing just in any environment, you're testing in the best environment to run Meteor production apps. Of course, as Matt said, we have some limitations because we are offering for free, then we need to limit the power that your container can use, but it's the same environment. Of course, you are going to have more benefits and more features if you run on essentials or a professional or even in enterprise, but the infrastructure is basically the same.
Filipe (08:01):
And I have a story that I don't know if I had/read talking public about it, but back in the days when we had the free deploy, I was able to create a game with Meteor just in a few hours, because I would like to play this game and it was a card game, but I didn't have the cards. Then I developed the game and I copied the cards from the internet. It was not publicly available, it was just for my friends because I probably would have to pay some copyright if I would publish this game for everybody. But it was pretty cool because I started to develop the game in the afternoon and in the night we're playing together and you're just sharing the link. And that was it.
Filipe (08:41):
Then, now this is possible again without spending any money, then you can build your app, you can build your game and you can deploy and you can send to your friends, of course, not sending to everybody because it's for free, then you can't post like thousands of connections, but a few connections, you can use it, you can test it, you can try it. And if it's getting traction, then you can migrate to essentials with one click, then you go to the panel and you'll do one click and you can use any container size. Then it's pretty cool. And you should check it out. Even if you don't have an app, just create an app, Meteor create, your app name, and then go to the folder and Meteor deploy, choose your subdomain that you want, --free --mongo, and you're ready to go.
Filipe (09:24):
Then I hope the community can use it, can have a lot of fun as I had in the past. And I'm already having a game because I already have some apps running for free. And this is pretty cool. We are pretty excited about it. And you want to see what you are doing. Then if you're deploying an app for free or even if you're paying, that's not a problem, you should reach us out, then we can create a blog post telling your story or you can have another way to promote your app on Twitter, then just let us know and we can work this together.
Matt Hollingsworth (09:55):
Yeah. And it's a good call too because we want to be adding new Meteor applications to our showcase page, we want to be talking to new Meteor developers and get them started and get them deploying. And this is all in the name of allowing people to test and to use Meteor because we are quite confident, and I'm sure those listening as well are confident that Meteor is the best way to build apps and to learn. So, that's the idea. And I do have a request, if there's anybody out there that's listening, we've had some really great engagement from the community as well and people have been sharing it out, but we want to get as many people trying Meteor and using Meteor as possible. So if you do think that the free plan is helpful to new Meteor developers or people that aren't quite convinced to try it, I would love if you reached out to people or posted on Twitter, if you are loving Meteor, how much you are, and it would really help us out to spread the word. So that's the idea. And we really appreciate community support on that.
Matt Hollingsworth (10:48):
I think that was all I wanted to cover on the cloud side, there is more on our website, of course, if you go to meteor.com/cloud, there is obviously blog posts, which I'm sure many people saw, and there's more information out there for the cloud, the pricing page. And we just recommend people go and try it. The goal was to have a better experience and make it more intuitive to create an account and deploy applications. And then we hope it did that. And if not, if you have feedback for us, let us know, but that was the idea. And we're excited about it. Anything else that you want to call out on the cloud side, Filipe?
Filipe (11:20):
No, we are good. Let's go to Meteor 2.0.
Matt Hollingsworth (11:25):
I'll start Meteor 2.0 and I'll tee this up, but it'll be mostly Filipe going deep into the different components here. So, Filipe, let's talk about hot module replacement, to start. What's important about this release for that specific functionality? And then what do you have to update the community on there?
Filipe (11:42):
Yeah. I think the major feature here is, of course, the hot module replacement in terms of development, because free deploy and MongoDB included is more in the path to production, then the development workflow, but hot module replacement is a nice package that was created by Zodern and we are working with him on this. And the idea of this package is to be the base of other packages. And I can explain what I mean by that.
Filipe (12:10):
Hot module replacement is not specific for React, we can have this for other view layers as we already have for Vue and already have for [Svelte 00:12:19], but now we have a base package to change modules on the fly. And why this is important? Because when you change a module or when you change a code that's going to go to the browser later, then Meteor rebuilds your app and then deliver a new version in the browser. But hot module replacement is a way to just replace the module that was really affected. And that's very fast because we are just changing a few lines of code probably. Then what you can achieve if that is a better development cycle, you can make a change and see the change immediately in your browser. And that's a huge improvement, especially for big projects where you have a lot of code and maybe our reload time is not that fast, then that could be a big difference in your workflow.
Filipe (13:05):
And why I'm explaining in the way that is not just for React, it's because it's not like we have a different package that uses the first package that's called hot module replacement, and then this package that I think it's called React Fast Refresh in Meteor. This package is the one responsible for making this work for React framework.
Filipe (13:26):
Then on React, if you are changing a UI, imagine that you need that you have a form where you need to fill like five fields, and then later you hit next, and then later, you have some action that you need to change. If you are not using hot module replacement, you need to do this five fillings actions, then you need to click and then you need to test again all the time, even if you're just changing the last step. With hot module replacement for React, we keep the state. Then it's very helpful that you don't need to do all these steps all the way. I am a developer, as you know, I know it's very boring when you get a long feature where you have a lot of steps and you need to reproduce all these steps like hundreds of times a day, then that's not the case anymore.
Filipe (14:09):
But why this is important? Because you can also exchange hot module replacement. And Zodern has one example in the admin that he created, where you can customize the behavior when you replace modules, even if you're not using a React module. And then this is really important if you have something that you change all the time in your codes like some custom code or some library. You can also teach Meteor how Meteor should handle this hot module replacement. Then you can save a lot of time if you can see these cases in your code. And that's all about hot module replacement.
Matt Hollingsworth (14:46):
So thanks for that, Filipe. We also have a show notes as well. So the transcript is available online if you want to go over and if you want to get a written version of what Filipe just went over there, it's available online with the podcast. So let's talk about the Blaze B layer as well, Filipe. And I think that there is some mention among the community or the sense that Blaze has been left behind, but that's not the case. Can you explain why that isn't the case and what the updates there for Blaze are?
Filipe (15:11):
Yeah, and that's very good because it's related to what I was explaining, like as hot module replacement is not just for React. We are also working with Zodern integrating it with Blaze. Then the same benefits that you have for hot module replacement on Vue, on [Svelte 00:15:27] and on React, you're going to have pretty soon on Blazers app. Then what Matt said that sometimes the community feels that Blaze is being left behind, but that's not true at all. We are investing time on Blaze when necessary. Blaze is mature framework for UI, people love it, people are using it everyday in production apps and making money with Blaze.
Filipe (15:49):
But when it's necessary, we are willing and we want to update Blaze components as well. And that is one example of that. Then you can try today already, there's is API in the Blaze repo that you can see, but very soon, maybe even it will be already live when this episode is going to reach you, but they're going to have the final version of Blaze hot module replacement. Then it's very important to understand this concept. And as I said, you can also extend hot module replacement for your use case. Then check it out to the history that we always publish in the change log page, then you can understand better how to improve it. And also we update all the documents about these new packages, then you can understand how you can implement that. And I believe Zodern even linked it, the example that I mentioned about the admin panel that can also apply hot module replacement, then check it out. I know it's a lot of information, but if you read that, you can understand and you can take advantage even more of this feature.
Matt Hollingsworth (16:49):
And so I saw a number of comments on the forum about this and within Slack, is there a tutorial ready to use or to be seen by our community for Meteor 2.0, Filipe?
Filipe (16:57):
Yes. We just updated yesterday and now the React tutorial is already using Meteor 2.0, and this is relevant because on Meteor 2.0, we also changed the default action for Meteor create. Previously, Meteor create was using Blaze and now Meteor create is using React, but don't be afraid, that does not mean that Blaze is dying because we are investing on Blaze, as I just said, but why you change it? We changed it because React is the most popular view layer on Meteor developers, then make sense to avoid typing --react all the time because most of the developers are creating Meteor apps to use with Blaze. Then this change is also going to affect the tutorial. These tutorials are updated. The other tutorials are also already updated in the sense they are going to work with Meteor 2.0, but you also want to migrate these other tutorials, the Vue, the [Svelte 00:17:53], the Blaze one to the new format that we have on React.
Filipe (17:57):
And if you want to check it out and if you want to understand how Meteor tutorial works and how you can contribute to Meteor tutorial, please check the video that we're posting the YouTube channel of Meteor. And there, I explained like in 30 minutes how I am updating the Meteor React tutorial to use the Meteor 2.0. And there, you can see what are the changes and how easy is right now to update the new tutorials. Then you should check it out because you can contribute a lot. And the idea was to have multiple tutorials for each front-end technology.
Filipe (18:30):
Then if you have one, like, "Oh, I know a lot of people in the committee that want to have a tutorial for SSR." Then if you are willing to help him that, just ping me on Slack or Twitter or on GitHub, and I can help you with that, I can review, I can test your code, then it's a very nice way to contribute. And it's always nice to create new tutorials and new examples, so people that are just starting with Meteor, they know where to start. Then that's what we have right now for the tutorials.
Matt Hollingsworth (19:00):
Yeah. And just to add on to that as well. If you haven't already got the sense yet, a lot of what we're trying to do here is we're trying to encourage new people to try Meteor. And so that's really the idea. And if there's any ways that you think we could improve on that or bring more people into the platform, please do let us know. And of course, go to the Slack community that we have, and which is, I believe, linked now from the cloud dashboard, if you're not already part of the Slack group and go to our forums and contribute there as well. Filipe, anything else on the Meteor 2.0 side before we wrap up for today?
Filipe (19:30):
No. We're not going in details here about every item, but in the milestone on GitHub, we have 16 items there. Then we have some bug fix, we have some like Node related changes, but if you want, you can check there. We didn't update Node.js specifically on Meteor 2.0, because just like two weeks before 2.0, we had another release that we updated Node.js to the latest version of Node.js 12. Then we are up to date, but we didn't update in this release, but you can also check the change there. I believe that is one important security change. Then we are always keeping these main components up to date. And one thing that is important to understand about 2.0 is that 2.0 is just the first one of the 2.X series. And of course, we have more to come, but let's see if Matt is going to ask more about it.
Matt Hollingsworth (20:23):
I think for today, let's probably wrap up. I think there's more we can talk about Meteor 2.0. Anything specifically that we want to call out as any fun facts for 2.0 before we wrap up for today's podcast?
Filipe (20:37):
Yeah. One thing that is really cool is that Meteor 2.0 was used during the development of cloud.meteor.com. Then cloud.meteor.com is a new system built by our core team. And it was really exciting because we are able to use Meteor 2.0 during the development with hot module replacement. Then we know that adds a lot to the table, we are not just some guys that are just focusing the framework, we are also trying the framework or others are also using the framework, we are publishing app in production, and of course, cloud.meteor.com as any other meteor.com system is using Galaxy. And that's really cool, you can see galaxy.meteor.com is a Meteor app and also cloud.meteor.com is a Meteor app and many others. Then it's really nice. And we are using Meteor 2.0, then we can trust in Meteor 2.0, you can run in production, even if you have like 16 updates there, but they are tested, we are using in production in our apps as well.
Filipe (21:38):
And I know Matt want to wrap up here, but I just want to say that you should be paying attention to the roadmap and to the forums and to Slack because you have a lot of peers that are almost ready like the Node updates through checking, removal very, very old code and deprecated packages. Then you should check it out because we are moving fast and then you should check and see what's coming next and how you can help as well.
Matt Hollingsworth (22:05):
Sounds good. Thank you, Filipe. I'm sure everybody knows now that the cloud.meteor.com was a very large development project for our team, our core Meteor team. The fact that it's using Meteor 2.0 is really, I think is really cool. I just want to point out that it was such a huge project. And I think we're all as Meteor developers proud to see the progress here. And I just wanted to call out our core development team, so that includes obviously Filipe and Renan and Denilson who've worked so hard on this some pretty, I don't know how many systems you wrote, Filipe, but I think that the end result here is really, really positive. So thank you for your hard work. And hopefully, the community sees some benefit in that.
Filipe (22:42):
Yeah. Let me add one more information here that I think people will love to know. We are going to announce pretty soon that we are going to hire more developers to our core team. Then you should be paying attention, and of course, contributing to Meteor because the best way for us to learn that you want to work with us is that you are already working in the Meteor open source area. Then you we're going to post more details about this position pretty soon, but we'd like to receive your application and we would like to understand what you can do with us in the core team.
Matt Hollingsworth (23:20):
Awesome. Anything else you want to call out, Filipe, before? I don't want to keep telling our community members that we're wrapping this podcast up, because we could go on for as long as we want to, but anything else you want to include here before we stopped doing this one?
Filipe (23:32):
Nope. And we are going to have a blog post about 2.0 pretty soon as well. Then you can check out the details and all the parts that Matt didn't allow me to explain, make this podcast too long.
Matt Hollingsworth (23:45):
No, no. It's.. Well, I want to break up this content. It's all good. And so I think people would probably prefer listening to a few 10 minute podcasts and then one, two hour long one, but maybe I'm wrong. Tell me if I'm wrong, if I am?
Filipe (23:57):
I believe you're right. I talk too much. Sorry.
Matt Hollingsworth (23:59):
It's okay. I like to learn from you, which is mostly what I do here. All right, everybody. Thank you so much for listening and we will talk to you all soon. Keep up to date on our social feeds and make sure you're part of the Slack community and forum. Yeah, we'll talk to you next time. Thanks so much for listening.