In this episode, Matt and Filipe discuss exciting features that we've been making progress on for both the open-source side (Tree Shaking, Hot Module Replacement, and other 2.0 updates) and Galaxy (search by container, new container sizes). We also have some sneak previews of many exciting things to come!
Welcome to the second episode of the Meteor Monthly Wrap-Up!
In this show, Matt and Filipe cover a lot of ground. October 2020 was a busy month!
First and foremost, thank you to all of the community members who contributed to the success of the Meteor Impact Conference! Special thanks to Jan Dvorak (Storyteller), who played a huge role in getting it up and running, as well as all of our speakers!
For those of you who were not able to attend the live events, all of the sessions are available on our YouTube Channel.
In this episode, we talked about a few of the major components of Meteor 2.0 release (currently in Beta). This includes:
Please do begin to use Meteor 2.0 (beta) and give us any feedback or insights. This goes a long way in our ability to improve the version!
The next important items on the agenda are related to the evolution of Galaxy Hosting: the release of Meteor Cloud, which we dive into a bit on the show. This is a big upgrade for Meteor Software as a business, and we're excited to show you the full extent of the changes. For now, we can tell you that there will be a Free Plan and default auto-configuration for Mongo DB : -)
Other things mentioned:
Thanks so much for listening! As with everything we do, feedback is always appreciated. Send us a note at podcast@meteor.com, we'd love to hear from you!
Matt (00:02):
Welcome, everybody, to another episode of the Meteor Monthly Wrap-Up. We are going to be talking about the month of October 2020. We're coming up on the end of October now, so by the time you hear this it'll be into November. And we are going to recap some of the stuff we did this past month. So let's get right into it.
Matt (00:19):
So the first thing we want to talk about is our new React tutorials. As many of you know, this tutorial specifically prior to this change was quite outdated and simply needed an improvement. So we updated it to allow for edits and contributions as well. So not only has it been updated to the latest version, and it is more intuitive, and it's easier to follow than it used to be. We also allow you to make contributions to it, so you can submit pull requests right onto that React tutorial. So it's something we're quite excited about.
Matt (00:50):
This is also the first tutorial that it talks about specifically how to deploy your application to Galaxy. So not only do you have instructions there on how to do that, but we also allow, as many of you already know, for that 30-day free trial. So you not only can get the instructions of how to deploy, but you also get that free trial. So if you haven't already done so, please go check that out. And yeah, very excited about that. Please do, if you feel the need to or if you want to contribute to that, go ahead and you can submit a pull request, like I said. And there are more to come with the tutorial changes, but, Filipe, what are we asking people to do for the tutorials right now? Any specific ask from the community?
Filipe (01:29):
Yeah, sure. Hello. The tutorial for React is a new format because the previous format was a little bit challenging to change because we need to do rebases and other things that are not easy with pull requests. And then now you can do this, just editing the step that you want, and then you can submit a pull request right away. No crazy stuff or hard comments from [inaudible 00:01:52], and that's good. And the ask that I have is if you would like to have the same format for the view tutorial or for download as well, to please reach out. We already have some people work on this, but you can also join in helping this work. Because will be a lot easier for us to keep these tutorials up-to-date in this new format. Then we are welcome to continue.
Matt (02:19):
Totally. It's one of the things that we're trying to focus on is allowing for, or at least, showing better education resources for some of the new Meteor developers out there. So that is maybe the first step in the right direction. And I will do a better job of introducing my co-host in later episodes. But Filipe's here with me of course, as usual.
Matt (02:35):
So the next thing we did, at least on my side, or the marketing side, what we did was we did a case study for a company called ANY.RUN. So ANY.RUN, it's ANY dot RUN. It is a blog post on our site as well. So if you go to meteor.com/blog, that should be available to you there. One of the cool things about that company and those developers working on that product is they've been around and building with Meteor since 2016. And they go into why they chose Meteor in the first place. The server client-side, interactivity out-of-the-box was something they really liked and continue to benefit from.
Matt (03:08):
We also talk about how they've scaled as well. So they've gone from 8,000 users a month in 2017, to 742,000 in 2020, all on Meteor, and continue to use that. So go check that out if you want to see why they made the decision they did, and how they're scaling their application with Meteor. It was fun to work with them.
Matt (03:30):
Let's move on from that side and talk about what Filipe has been working on. And he's got a really cool side project that's related to education resources, and helping people build applications with Meteor. So, Filipe, do you want to talk about your new series called How To Create An App and why you did it?
Filipe (03:48):
Sure. How To Create An App is a new channel on YouTube. And the idea of this channel is to try to transmit to new developers, or even experienced developers, what I learned in many years of being a developer. And many of these years, I'm using Meteor. And of course, because I really love Meteor and I use these in my production apps, I'm also explaining a lot about Meteor, and why I'm using Meteor, and how I'm using Meteor.
Filipe (04:16):
And I'm releasing a new video every day, or almost every day. And the first series that I'm doing is actually the creation of the How To Create An App, but they have website. And then you can understand how immigrating a website or a platform, as you would like to call. Then you can follow every step that I've been doing. I'm recording every single command that I'm doing, and every configuration as well. And I'm not going to skip a beat. I'm going to record everything.
Filipe (04:45):
And sometimes you'll see that I'm thinking in the video because I didn't think ahead. And I've been trying to not think ahead. I know that's hard. I'm trying to think also in the video because then you can understand my process to get the solution, not just the solution when it's already solved in my mind. Then that's the idea, but that's just one series that I need to create this website.
Filipe (05:07):
But in the end, the How To Create An App is a collection of contents in a specific order, in specific [inaudible 00:05:14]. And then the website will be important to guide you through this learning process. Then this is just a making of series, then you can see how I'm building the platform. But the idea, the final goal, is not this series. The final goal is to have real, educational content about many, many topics like mobile, how to test, and how to debug, how to deploy, how to configure AWS, and NS-3, and whatever. Then it's very complete. And it's going to take a few days, maybe a few months, to complete all the content that I have in my head. But that's the idea. To really publish everything that I've been doing in the past almost 14 years a developer.
Matt (05:58):
For those of you who want to see how Filipe's brain works and benefit from all the things that he has learned over the past, whatever, how long you've been coding for Filipe, please do check that out. It's really great. I've actually done it myself, so I can attest that and I'm not biased at all. Trust me.
Matt (06:12):
So let's move onto what we're calling Meteor 2.0. This is something that we spent a lot of time on and we've talked about through different channels, especially through the conference that just happened. But we'll get into some of the most important components of that and why it's relevant to you. So the first thing here is tree shaking. I know this is something has been on the backlog for a long time. A lot of people have been requesting it. It's something that our developer [Renault 00:06:37] has spent a long time doing, and he's made some real progress here. So it is now, well, when we release this, it will be available in beta. Filipe, so why is it important for developers? And how will it make their lives easier?
Filipe (06:51):
Sure, let me explain this. But before that, I have a little bit of background history here, and nobody knows that, but when we are doing the transition from MDG to Tiny, I was talking with Ben about Meteor 2.0. And Benjamin, that I think everybody knows, Benjamin, the core committer of Meteor when MDG was running Meteor.
Filipe (07:14):
And we are discussing what could be 2.0. And one thing that Ben said that time, was like, "Oh, I think we should have at least one big feature." And he provided as an example, a feature like tree shaking. And then a few months, or many months later, we are here and you are really doing exactly this. You are releasing 2.0. And one of the key features, not the only one, but one of the key features is tree shaking.
Filipe (07:39):
And then it's funny, just a side story because I just remembered this now and it was a good prediction from Benjamin. And also as Matt said, that was in the backlog for a long time. And it was not because we don't care, it's just because it's a really hard task. And then Renault, he's implementing this from scratch. Of course, it's taking advantage of the Meteor-built system. And right now we have this almost ready for the beta. And we really need your help. I think we are going to repeat this later about 2.0, but tree shaking is going to touch all the modules. And we're going to analyze how the modules, try to compare, trying to drop code. And then it's really important that you check this in the beta because the beta is the best time for us to get problems, to get bugs, or even regressions in performance. And that's possible because you are doing more work, right?
Filipe (08:33):
We are analyzing the tree, trying to shake this tree, trying to remove nodes. Then it's not an easy task. And of course, we did a lot of tests. We're running some projects that we have access to. And we also run all the Meteor tests and they are passing. And then now we need your help. We need for you to go there, run your project, not just a small part. But run in the biggest parts that you have, and please provide feedback. And also watch out for our performance because we want to keep performance as good as possible. But we know that we are doing more work, and you can imagine why, because we are doing more tests. Then we need to analyze what's the impact? Or if you should disable tree shaking some ways when you are developing? And it's not an easy task, but we are pretty close to wrap up this.
Filipe (09:19):
And then we really wait for your feedback. And be positive about it. Maybe the first version can break, but it's life. It's a hard task, but we are doing our best. And we are sure that we are going to reach a very good solution in the end, but we need your help.
Matt (09:37):
Yeah, and we'll definitely release more information when we do have that available to test out. But I believe it will be just after this podcast is released. And we'll be more communicative around that on the Slack channel and in the forums as well. So there's more to come with that in terms of timeline, but that's the general idea.
Matt (09:53):
So let's talk a little bit about the next big component here at Meteor 2.0, and that's a hot module replacement. So Filipe, same question to you. What is this? Why is it important? And how will make the devs out there, their lives easier?
Filipe (10:06):
Yeah, sure. I think I didn't explain what is tree shaking, just in case somebody here is new to JavaScript, and bundles, and builders. Tree shaking is the idea that we can remove the automatic code that you are maybe importing, but you're not using. Then this is the idea, you can go in many different levels, and we are going to have a very good solution pretty soon.
Filipe (10:29):
But hot module replacement, it's more about development experience. And now you can have with Svelte and with React, the same benefits that we already have with View on Meteor. With View, you can already see your changes live in your screen. But with React and Svelte right now, without this beta you need to wait a little bit because the server is going to publish a new version, and then your browser is going to restart.
Filipe (10:56):
With hot module replacement, that was created by Zodern in Meteor, it's not going to happen. Your state will be kept in the UI and you'll just see that your change being applied like magic. And it's a very good experience because in some cases you need to navigate a lot to get into a specific state, and then you need to change the code. And then you don't need to apply all the steps all the time. You will be there. Your state will be preserved, and then you can do your test as many times as you want, with better timing, of course.
Filipe (11:30):
And that's also important that you test this feature because it's very important that we know that many apps are using it and it's working really well. Because hot module replacement, it's also not an easy task because you can replace different kind of modules. Then we really need your feedback. And maybe we decided to exclude some types of replacements in the first version, and maybe these types that are very important for you. And maybe you can also help us to support more hot module replacements. Then that's why it's really important, again, to test it.
Filipe (12:08):
Meteor, we try to do this in a very open way. Then you have our product roadmap, you know what's coming. We publish the betas. Then just follow on Meteor hub, or on Slack, or in the forums. And then you can also provide feedback and help us to get the final version of 2.0 as soon as possible.
Matt (12:26):
Yep. So that's the key over-arcing theme here, is to test as much as possible and let us know because that will help us make this whole process easier and better for you. So that's the recommendation, and that's the ask. Anything else that is coming in the near future here, Filipe? Anything else that you want to point to?
Filipe (12:43):
Yeah, we have more things coming with the 2.0. We are going to drop some very old stuff. You don't need to be worried like, "Oh, are you going to break my app?" No, no. We are not going to do this. But I have some very old code that is there, and that we would like to drop because nobody's using.
Filipe (12:59):
And also we had an update from TypeScript 3 to TypeScript 4. And initially, the idea was to release with 2.0, but as you have this cycle of betas and feedback entrepreneurial, some community members asked to have a different release with TypeScript sooner. And then we are going to have Meteor 1.12 with TypeScript and a few minor updates as well. Then you should expect in the next day, or even before, because this podcast going to be released in a few days. Then you should expect to have also Meteor beta for 1.12. Then you are going to have two betas in parallel. Probably the 1.2 is going to be ready pretty much in the next weeks.
Filipe (13:45):
And then we also measured this to 2.0, and then we can have the final 2.0 with TypeScript and many other small change, and also tree shaking, and also hot module replacement. And we are pretty excited about it because if you think about Meteor right now, in terms of bundler, builder, compiler, whatever. The only missing features, in my opinion at least, are tree shaking and hot module replacement. And we are pretty close to also have these features. Then we are really happy with the stage that we are going to achieve with these two new features.
Matt (14:19):
Yep. Lots to come. We've been quite busy. And when I say we, I mean Filipe and the Dev team, but we've also spent some time on the Galaxy side as well. So let's get into that, briefly. We are going to be a little bit longer with this podcast because there've been so many things that we've been doing. So let's talk about Galaxy. One of the things that we released recently, and you may not be aware of, is related to SSL connections within the Galaxy UI. So Filipe, what is that? And why is it important?
Filipe (14:44):
Yeah, I think you know because for a long time, it's not recommended anymore to accept connections using [DLC 00:14:52] 1.0 or 1.1. But Meteor on Galaxy was accepting because we still have a lot of clients that needs to run [ODI 00:15:01] browsers in their clients. And then we don't want to just drop this part.
Filipe (15:05):
And we also had in our Go library, that runs our proxy, we already have some mitigations for the issues that have presented to accept these requests. But even with these mitigation, some clients where still asking to block these requests. To not accept requests with DLC 1.0 and 1.1. Sometimes because they have [inaudible 00:15:25] or whatever, but now you can select inside your app settings and you have a security section there.
Filipe (15:32):
And then you can select that you just went to accept requests using DLC 1.2 and above. And then if that's your case, you don't have clients using old browser, or whatever, then you can enable this option. And then you are going to just accept DLC 1.2 and above. And I think this is just a security feature, but it's important because a few clients were really in need of this feature.
Matt (15:57):
Sounds good. So check that out if you haven't seen that already. One other thing here we've done recently, for those of you who don't know, container search functionality. We've improved that and we can search by ID. Any thoughts there? Or anything else to expand on, Filipe?
Filipe (16:11):
It's just important if you are running an app with five containers, maybe it's okay, because you can see in the UI. You don't need to scroll or anything. But we have a few clients that run hundreds of containers, and then it's very hard for them to find a specific container. If you want to understand if one is unhealthy and why, and then that's why we have this new feature where you can search by ID. Then that's the point. I know it's not useful for everybody, but we also are always paying attention for all kinds of clients, small clients, big clients, they're all important for us. And this feature specifically is really important for bigger clients because they have hundreds of containers and it will be easier now to find a specific one if they need.
Matt (16:52):
Sounds good. Okay. So let's move on to one of the things that I talked about on my talk at the Meteor Impact Conference, and we'll get into that a little bit more. But I just wanted to tease this out a little bit. We have been working quite a lot on this new, what we're calling Meteor Cloud release, and there will be more to come with that and there's some really exciting things that we're including with that.
Matt (17:17):
So the point of the Meteor Cloud, if you don't know already, is to try to unify the offering for Galaxy hosting for Meteor APM. And a lot of the other things that are included in those different products, as well as atmosphere. So just some consistency with our brand and what we offer for our customers when it comes to deploying their application with us. And that is something we've thought a lot about and trying to understand how we can improve the flow from somebody building with Meteor to then somebody deploying their application with and how best to communicate that. And we likely will release that somewhere probably with the next two weeks, hopefully. But there's some really exciting components to that release that we should maybe talk a little bit about here as well. So Filipe, what is the most exciting thing? Or where do you want to start when talking about the Meteor Cloud release? Anything stick out to you that you want to talk about?
Filipe (18:13):
Yep. Yep. I think one thing that really stand out to me is that we have some problems with when new developers are trying to have their first app deployed to Galaxy. Because in some case it's hard for these developers to go to Mongo DB provider and try to understand all the options, try to understand what is the connection URL, and get the user, get the password, maybe to enable some white listening. And decide, and they need to enable the white listening on Galaxy side. And then with this new release that we are preparing that we are calling Meteor Cloud, we are going to also offer free accounts, free apps, and free Mongo DB hosting. The idea of this feature, at least at this first phase, is to help for small projects that you want to demo something that you did, or do you want to run your side project and you want to have this available.
Filipe (19:07):
And because of this, we are going to have a cold start feature where your app will sleep, if your app is not receiving connections. And when your app receives a new connection, your app is going to start automatically. This way, we can also save some resources in our side because of course to run an application, we spend some money. And then you can also have this for free. Then that's the trade-off. And I think it's a great trade-off because you are going to have your app available all the time when you have access to your app. And I think that's what you expect. And we also going to include Mongo DB.
Filipe (19:44):
And not direct relate to that, but just to mention that we also made available a few weeks ago a few new container size. Then if you have a really huge app or maybe you need to process a lot of things in the background, then you should check it out, the list of container size. Because now we have in your app settings you can see Octa, with eight ECUs and 8 gigabytes of RAM, and also Dozen, with 12.
Filipe (20:09):
I don't think this should be to everybody. Usually Quad or Double are the best size, but if you need this for a specific task or for a specific reason, you can check it out. And if you have question like why should I need this? Or do I need this? You can always ask to the support@meteor.com email and we are going to reply and to explain everything to you.
Matt (20:31):
Yeah, and that's a good point there, Filipe. And for anybody who is deploying their app on Galaxy currently, the best place to have your problem solved and to get into some of the details of how to use Galaxy effectively is to contact support as always. So please, that's support@meteor.com for anything Galaxy related, and we will do our best to help you out.
Matt (20:52):
The Meteor Cloud, just one more note on that, it's something that we are quite excited about with the idea. And the overall goal of this is to, again, improve the developer experience from going from building with Meteor to then deploying your app with us, and offering the services along with, we really are trying to focus and make that experience as good as possible. And that will include the things like the free account, cold start, and the configuration side as well.
Matt (21:20):
So the free account, we've seen this to be brought up quite often in the past. And it's something we're really excited to be able to offer again. So that's great. Okay. Let's move on to the Meteor Impact side of things. Filipe, do you want to give a very high-level overview of what you talked about? And what you're excited about, having gone into on the Meteor Impact talk that you gave?
Filipe (21:41):
Yeah, sure. Meteor Impact was a conference that was organized by [Yer 00:00:21:46]. His nickname is a [Star Teller on 00:21:48] on GitHub and everywhere. And thank you, Jan, because he did a great work. And this was our conference and I hope it will be a tradition then every year you can have Meteor Impact because it was really amazing.
Filipe (22:04):
And he might talk, go deeper in these things that we are discussing here and the news that we are preparing for the next month. And also I show a little bit of success apps with Meteor. Then I think I talk about six or seven applications that are doing really well, receiving vestments, or companies that are just sold. And these are not like, "Oh, like we got some news from five years ago."
Filipe (22:26):
No, in this talk and just present things that have happened in the last month. Then it's really important to see that we have a lot of successful companies running Meteor applications, and this is pretty good. And I also show, in a lot of details, one of my apps that is also successful and also running in production for two years, I believe. And it's a marketplace, and you can see a lot of things that we are doing. And I think you'll be surprised how much we can do in a single app with Meteor.
Filipe (22:55):
And another talk that I would like to highlight is the talk from Scott. Scott, I think you know, Scott Tolinski, from Syntax FM and from Level Up Tutorials. And Scott was talking about why he loves Meteor. And then it's very good, even for me, that I'm working with Meteor for many years. It was very good to hear his perspective. And some parts that he say like, "Oh, I really love Meteor because of..." that. Then for me, as I've been working with Meteor for many years, it was good to see this point of view. And then you should check it out. You should see his point. I think he has four or five points why he loves Meteor. And then I think you are going to appreciate. I think that would be my two highlights from the conference.
Matt (23:39):
Sounds good. Yeah. The conference was a lot of fun. I was also able to speak at it as well, talking about the marketing side of our business, and to how we think about marketing, and what our plans are to improve our communications to both our existing users on the open source side, as well as the customer side for Galaxy. So that was really fun for me as well. It was a nice way to introduce myself a little bit because I feel like I haven't been as visible as I maybe should be over the past, since January, 2020, since I started working here. So that was a lot of fun.
Matt (24:11):
And all of those videos are on YouTube. So that is something we will link to in the description here for this episode. But yeah, a lot of fun and hopefully we will continue to do this on a annual basis. And thank you everybody who came out, and everybody who communicated their support, and was able to join us there. It was a lot of fun for us. Filipe, any other points on the Meteor Impact side?
Filipe (24:34):
Yeah. I just want to highlight that we have a panel about Blaze. And I was using Blaze maybe three years back. And it was really surprising for me that we still have a lot of people using Blaze. That's not the surprising part, but the surprising part was that the people that are there and speak in this panel, they don't have any complaints about Blaze. They are pretty happy with it, and they just have a concern. What's the concern?
Filipe (24:57):
The concern is not about the technology. The concern was if you are going to keep Blaze running. And I have the answer, yes, we are going to keep Blaze running. And we even start to really think about that because if you have many people that are really happy with Blaze and have some companies receiving funds with Blaze and everything, maybe you should try to [inaudible 00:25:19] to Blaze.
Filipe (25:20):
And we discussed that in the panel. Unfortunately, owning this stock, we had a few issues with Zoom. We are trying to recover this recording. But if you can't, we have talk in the forums about this. But the idea was trying to think like Blaze as a very simple way to create [inaudible 00:25:37]. And made for designers, made for beginners. And we are not saying that Blaze is not ready for production. Blaze is in production for many years, and as I said, with companies that are growing a lot.
Filipe (25:50):
But Blaze so easy and so easy to learn that maybe it's also a good target to explore. Then I just want to highlight this here, because sometimes we just think about technologies when they were released, if they are new or if they're old, but even Blaze being old, in the sense of the first release, it's still very helpful.
Filipe (26:11):
And I remember back in the days when Blaze was just released with Meteor 0. something, and it was a pleasure to work with Blaze. And I see that people in this panel, they are very passionate about Blaze. And they are really defending Blaze and the continuity of Blaze the future. And we are going to support that. Then that's just a message that I would like to say, because I know people hearing this podcast, they are using Blaze. The worry about maybe Blaze will be dropped in the future, but that's not our plan at all.
Matt (26:41):
Sounds good. So that was a good call-out there. And I think that's a good place for us to wrap up for this episode. We've gone a little longer than typical, so that's more a testament to what we've been up to over the past month. It's been quite busy. So more to come. Please do again, go to the Slack channel for community updates and to chat with us, or anybody else within the community is quite active there. So a good place to ask questions. Again, the forum, another great place to ask questions if you have any. And we look forward to continuing to do these monthly wrap-ups. And please check out Meteor 2.0 and all the things to come, some super exciting things. And we will talk to you next time.
Filipe (27:15):
Thank you. Bye-bye and subscribe to my channel How To Create An App.
Matt (27:19):
All right, bye.
Filipe (27:20):
See you.