A few weeks ago, we did some research among software companies. The process as we know is quite complex, but the inquiry was very simple. We want to find someone who knows Meteor. Period. In response, we got dozens of emails, but my attention was mainly caught by one of them. The one in which author wrote that - "Meteor is dead". According to him, this technology died in 2015, when it experienced its apogee, and then there is nothing.
I admit that I was a bit dismayed reading these words... Maybe I missed something important?
Cat In Black has been developing software for years, we advise our clients in choosing the right technologies and taking appropriate business steps. The choice of the right IT solution is a key aspect of programming. It's "to be or not to be" of our businesses. Both in a corporation and in a small startup at the beginning of its path.
The market abounds in technologies used to create software. From PHP, via Rails, Closure, .Net, C#, Java, JS (including NodeJs), and many more examples.
Why Meteor?via GIPHY
A few years ago, we wrote applications using Rails. It was our main technology, on which we based our tools, but also the one that we recommended to our clients most often.
When the idea of creating the first, fast MVP appeared, thanks to which we wanted to validate the market, and which was supposed to be a reactive technology, we were not sure how to approach it in the simplest possible way.
The task was not so overwhelming, but was very time-consuming, and we could not afford it.
We stood a bit to the side, scratched our heads and began to conclude that if we are to be a team to quick respond and solving non-trivial tasks, then we must change something. One of the programmers came with an idea. Tom showed us the solution he was dealing with recently. He talked about how to easily build an application on NodeJs with an instance of MiniMongo between the server and the client, the whole immediately (in the package) provides a connection on the websockets. Simple and easy. That was MeteorJs. And that's when we fell in love with it.
Then we were over the hump, first projects, first implementations, then tenth, then we stopped counting, and finally we've received the first official Meteor partner in Poland. It was something big, something that made us proud. The more so because all the projects that we have implemented in this technology have been successful. We've worked with dozens of agencies in which thanks to using Meteor we managed to produced software much faster than their internal teams.
Thanks to the fact that when we started up our startup we decided to choose this technology, within 1.5 years we won almost 20 awards and nominations, and our solutions was used by companies and institutions such as Disney, Toshiba, IBM, or Harvard.
Let's return to the previously quoted e-mailvia GIPHY
I see words that Meteor is dead, and I do not believe it. We have been working in this technology for years, continuously. In recent days new version (with new revolutionary changes) was released. Why then some people think that way? Maybe it's a way to refer to other solutions offered by the company. Probably yes, but still it inspired me to reflect, and that pushed me to write this article.
How it all began.
The story of Meteor goes back to 2011. At that time, under the name of Skybreak, it was taken under the wings of the best startup incubators - YCombinator.
When Meteor was starting, most pages after submitting the form, was still reloading its content to display the changes. Moments earlier standardized XMLHttpRequest API was the latest fashion, and Jquery was extremely popular. So, when MeteorJs introduced the ability to display and refresh data in real time without the necessity of reloading the page, it became something revolutionary and quickly gathered a growing group of supporters. During these many years, Meteor has come a long way and many, refined versions have appeared. All safety-related errors so far are being fixed immediately, which increases the sense of stability of this solution.
This technology has received a multimillion co-financing, which contributed to a huge development jump, and gave certainty that it won't disappear from the market quickly.
What's going on?
As I mentioned earlier, Meteor basically works right away. All you have to do is download, install, enter 3 commands in the console and we have a fully functional client-server instance with a database and real-time content changing mechanisms. So, at the start I saved a few hours of configuration.
Another thing of great importance for the development of technology is the amazing community, which is ready to build, improve and implement and help users at the same time.
Since MeteorJs gives the possibility of full and very simple integration with the NPM ecosystem, there is nothing impossible for him. In MongoDB - we have transactions. In addition to BlazeJs, Meteor integrates with: React, Angular, VueJs, GraphQl or Cordova. As of 27/02/2018, it has over 13100 packages and over 500,000 unique installations worldwide.
Taylor Otwell, creator of one of the most popular frameworks in PHP Laravel, cites MeteorJs as the most popular backend framework.
And now only for developers...
There we also have an amazing solution for deployment of our applications. First of all, we have Galaxy - official hosting for MeteorJs, which works just amazingly, because we completely bypass the process of configuring the environment. On the other side we have MeteorUp solution, which with a few commands allows us to configure the server, build and place the application, database, nginx with SSL certificate in the docker containers and launch it, along with CI and automatic rollback...
If you are building a tool that is supposed to be a combination of website and mobile or desktop application, Meteor works great. Also, for adding additional modules to the existing solution, where we want to increase the speed of queries or create a front layer for something very archaic.
And how not to love it?
Application testingvia GIPHY
Also, it has never been easier. Unit tests are basically a piece of cake. Thanks to webdriver.io and chimp.js we are able to create automated tests of whole application in a few hours. Additionally, we can attach PhantomJS (a script, headless browser used to automate interaction with a website or application) and we do not have to worry that at the next push, something will not work on the production. PhantomJs can take a picture of incorrectly displayed or serviced item, and our CI send it along with the logs (after integration) as an alert that something went wrong.