Meteor vs React: What are the differences?
"Real-time", "Full stack, one language" and "Best app dev platform available today" are the key factors why developers consider Meteor; whereas "Components", "Virtual dom" and "Performance" are the primary reasons why React is favored.
Meteor and React are both open source tools. React with 132K GitHub stars and 24.5K forks on GitHub appears to be more popular than Meteor with 41.2K GitHub stars and 5.03K GitHub forks.
According to the StackShare community, React has a broader approval, being mentioned in 3224 company stacks & 3092 developers stacks; compared to Meteor, which is listed in 195 company stacks and 156 developer stacks.
What is Meteor?
What is React?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
For developing our #frontend applications, we decided to use Vue.js . Being such an easy to learn library, compared to React for example, it made everything so easy. At first we started with Polymer but the existing tooling and small community at the time made us look for alternatives.
Mixmax was originally built using Meteor as a single monolithic app. As more users began to onboard, we started noticing scaling issues, and so we broke out our first microservice: our Compose service, for writing emails and Sequences, was born as a Node.js service. Soon after that, we broke out all recipient searching and storage functionality to another Node.js microservice, our Contacts service. This practice of breaking out microservices in order to help our system more appropriately scale, by being more explicit about each microservice’s responsibilities, continued as we broke out numerous more microservices.
As Mixmax began to scale super quickly, with more and more customers joining the platform, we started to see that the Meteor app was still having a lot of trouble scaling due to how it tried to provide its reactivity layer. To be honest, this led to a brutal summer of playing Galaxy container whack-a-mole as containers would saturate their CPU and become unresponsive. I’ll never forget hacking away at building a new microservice to relieve the load on the system so that we’d stop getting paged every 30-40 minutes. Luckily, we’ve never had to do that again! After stabilizing the system, we had to build out two more microservices to provide the necessary reactivity and authentication layers as we rebuilt our Meteor app from the ground up in Node.js. This also had the added benefit of being able to deploy the entire application in the same AWS VPCs. Thankfully, AWS had also released their ALB product so that we didn’t have to build and maintain our own websocket layer in Amazon EC2. All of our microservices, except for one special Go one, are now in Node with an nginx frontend on each instance, all behind AWS Elastic Load Balancing (ELB) or ALBs running in AWS Elastic Beanstalk.
I use React because I think it is the one that embraces the most the functional component design.
New versions of React are on the right track.
Having to work with Vue or Angular is a lot of pain for me, especially because I'm used to the simplicity of React (which comes with the great price of a high learning curve). Also, the use of the Flux Pattern is so much easier with React, being designed as a one way data flow, than with its two foremost competitors.
Cheers to the React Team, and thank you very much !
I recommend using Angular 2 when moving from Angular 1 if you are looking for a fully featured framework solution. Neither Vue.js nor React just work out of the box and require creating your own components from scratch as well as the kind of support architecture available in Angular 2 out of the box. However if you are looking for something lightweight to add reusable components to an existing application Vue.js and React are more ideal to that end.
I use React because it provides a high level of flexibility to architecture the front end app having the posibility or not to incorporate other libraries such as State Management, Routing or Form Validation, among others. Unidirectional flow and component reutilization is another important advantage.
Back in 2015, my company had a back-office dashboard that was originally built in AngularJS 1. Since Angular 2 presented drastic changes we decided to rethink the options and we looked at React and Vue.js. Besides, at the time, Vue had basically only one developer, its structure (100% oriented to components) and also its backward compatibility focus (Angular 1 to 2 no more) we preferred it against React cause it seemed more straightforward, clean and with a small learning curve. Now 4-5 years later we are very happy with our choice.
I find using Vue.js to be easier (more concise / less boilerplate) and more intuitive than writing React. However, there are a lot more readily available React components that I can just plug into my projects. I'm debating whether to use Vue.js or React for an upcoming project that I'm going to use to help teach a friend how to build an interactive frontend. Which would you recommend I use?
I've used both Vue.js and React and I would stick with React. I know that Vue.js seems easier to write and its much faster to pick up however as you mentioned above React has way more ready made components you can just plugin, and the community for React is very big.
It might be a bit more of a steep learning curve for your friend to learn React over Vue.js but I think in the long run its the better option.
Having developed in both Vue.js and React, I agree with your assessment of Vue. It does feel light and easier to understand and therefore learn. Seeing that Vue has some genetic roots with React, I would say start your friend out on Vue. If they need to learn React later, that should give them a good foundation. If you have a Pluralsight subscription, look for my course on Vue.js and feel free to use the demo project as a starting point.
I chose to use Vue.js a few years ago mainly for the easy learning curve. I have no experience with React, so I won't make any comparison here. Regarding available components, I never felt locked in because of Vue when looking for components. It happens that a component I wish to use is not available as a Vue component (and nobody published any Vue wrapper for it), but in such cases I was able to quickly hack a Vue wrapper component. In the end I don't think a decision to choose one framework over another should be made solely because of the number of components available. (And not all components in either framework is maintained, bug free, documented or easy to use)
I picked up an idea to develop and it was no brainer I had to go with React for the frontend. I was faced with challenges when it came to what component framework to use. I had worked extensively with Material-UI but I needed something different that would offer me wider range of well customized components (I became pretty slow at styling). I brought in Evergreen after several sampling and reads online but again, after several prototype development against Evergreen—since I was using TypeScript and I had to import custom Type, it felt exhaustive. After I validated Evergreen with the designs of the idea I was developing, I also noticed I might have to do a lot of styling. I later stumbled on Material Kit, the one specifically made for React . It was promising with beautifully crafted components, most of which fits into the designs pages I had on ground.
A major problem of Material Kit for me is it isn't written in TypeScript and there isn't any plans to support its TypeScript version. I rolled up my sleeve and started converting their components to TypeScript and if you'll ask me, I am still on it.
In summary, I used the Create React App with TypeScript support and I am spending some time converting Material Kit to TypeScript before I start developing against it. All of these components are going to be hosted on Bit.
If you feel I am crazy or I have gotten something wrong, I'll be willing to listen to your opinion. Also, if you want to have a share of whatever TypeScript version of Material Kit I end up coming up with, let me know.
I want to create a video sharing service like Youtube, which users can use to upload and watch videos. I prefer to use Vue.js for front-end. What do you suggest for the back-end? Node.js or Laravel ( PHP ) I need a good performance with high speed, and the most important thing is the ability to handle user's requests if the site's traffic increases. I want to create an algorithm that users who watch others videos earn points (randomly but in clear context) If you have anything else to improve, please let me know. For eg: If you prefer React to Vue.js. Thanks in advance
I'm working as one of the engineering leads in RunaHR. As our platform is a Saas, we thought It'd be good to have an API (We chose Ruby and Rails for this) and a SPA (built with React and Redux ) connected. We started the SPA with Create React App since It's pretty easy to start.
We use Jest as the testing framework and react-testing-library to test React components. In Rails we make tests using RSpec.
Our main database is PostgreSQL, but we also use MongoDB to store some type of data. We started to use Redis for cache and other time sensitive operations.
We have a couple of extra projects: One is an Employee app built with React Native and the other is an internal back office dashboard built with Next.js for the client and Python in the backend side.
I discovered Meteor thanks to my daughter who used it for a project at MIT. I was amazed at how much she had built in such a short time. I had also been trying to figure out how to build a browser-based crypto app so I jumped into Meteor and had an MVP for cloak.ly in a few short months starting from nothing. Learning Meteor really alters what you perceive as easy and difficult in full-stack development. It has an amazing ability to simplify your thinking and your code. Community support in terms of packages is outstanding as well which saves tremendous time. The quality of the software is outstanding with very few regressions cropping up during their frequent releases.
Being at the bleeding edge of the js community does have its downsides however. While early Meteor (with Blaze/handlebars templates) was exceedingly simple, Meteor have had to introduce support for both angular and react. In combination with the move to ECMAscript this has resulted in a lot of work for developers to just keep up with the evolution of the platform. Someone who was an expert 6 months ago might quickly find themselves being a newb again. If you're someone who doesn't like change you may want to stick to jQuery.
Living in the bay area I have the luxury of being able to attend Meteor events frequently. Having met many members of the MDG team, I have tremendous confidence in the future of the platform. This is a very solid group with a rare combination of broad vision and excellent execution.
Meteor is my favorite framework. It makes everything fun. Syncing data across devices is really easy and you don't have to mess around with sockets at all. You can insert data into the database on the client. There's tons of security options. There's over 3000 packages on the packaging system. Instant iOS and Android apps. Amazing, reactive routing. Free hosting. Easy deployment with Meteor Up. What's not to like?
Meteor is so powerful and flexible. I love it. In the near future, it will be the top-used framework.
We have gone "all in" on Meteor and I recommend you do to.
Before two weeks ago or so, it used to be Backbone views and models, and everything was on our main store app, and our mobile web app, but actually, we just switched our mobile web app to using ReactJS for the interface. So it’s using Backbone models but ReactJS front-end components. Really, it was borne out of the frustration with how the Backbone model-view bindings worked, and it wasn’t especially performant for large views, and we had to do lots of tricks to make it performant. But swapping that out with React views meant that it could be both simpler and faster without having to spend a lot of time on that.
One other interesting thing about that is, since React actually works okay with the Backbone models and the Backbone router and stuff like that, we didn’t have to rewrite the mobile web application and update it to ReactJS. Rewrites are almost always a bad idea. We were able to upgrade pieces of it at a time, move on to React, and now the entire thing is using React and just has the Backbone router and models and stuff like that that we already had, so it's a lot faster.
At the beginning of last year, Netflix UI engineers embarked on several ambitious projects to dramatically transform the user experience on our desktop and mobile platforms. Given a UI redesign of a scale similar to that undergone by TVs and game consoles, it was essential for us to re-evaluate our existing UI technology stack and to determine whether to explore new solutions. Do we have the right building blocks to create best-in-class single-page web applications? And what specific problems are we looking to solve? Much of our existing front-end infrastructure consists of hand-rolled components optimized for the current website and iOS application. Our decision to adopt React was influenced by a number of factors, most notably: 1) startup speed, 2) runtime performance, and 3) modularity.
React has exceeded our requirements and enabled us to build a tremendous foundation on which to innovate the Netflix experience.
Web-frontend programming prior to React: like banging rocks together. With React: Like wearing fusion powered underwear. Gives you a nice warm feeling. Using React for Cloudcraft.co allowed us to create a beautiful UI in record time (1 month start to launch), with virtually no bugs popping up during development. The functional approach to just rendering your component given a state just makes so much sense, with React figuring out the delta between your current and desired representation. It's the future kids!
React is choice number 1 when it comes to JS development at Kurzor. We choose React because it solves many issues with web applications in a elegant way. Writing an app in components is useful for coordination and isolation of concerns. React forces you to abandon state and use vertical passing through props instead. And having as many Pure Components as possible helps to write cleaner code.
With React we usually use: Redux, React Router, React Toolbox, Styled Components.
This is the best component framework and API available today for building modern web sites and apps. I really enjoy how minimal it is, and powerful at the same time. It removes opinionated development and replaces it with logic and data philosophies, which has in turn fostered a robust and lively code and support community.
Without Meteor cloak.ly could not have been built as quickly by such a small team. Meteor was instrumental to getting an MVP up quickly and dealing with the complexities of browser-based encryption.
Built on Node.js, Meteor's real time reactivity and its wide package ecosystem allows us to quickly prototype and build apps in a lean way