Likelihood to Recommend Laravel is ideally suited for fluent PHP developers who want a framework that can be used to both rapidly prototype web applications as well as support scalable, enterprise-level solutions. I think where it is less ideal is where the client has an expectation of using a certain CMS, or of having a certain experience on the admin side that would perhaps be better suited to a full CMS such as Drupal or WordPress. Additionally, for developers who don't want to write PHP code, Laravel may not be the best solution.
Read full review React is a JavaScript user interface construction library that works well for: Developing web apps with dynamic and complicated user interfaces. creating reusable UI elements that may be used in other applications. creating single-page applications with dynamic content updates that don't require a page reload. The Virtual DOM's effective updating mechanism allows it to handle large volumes of data updates. React, on the other hand, might be less suitable for: Websites that are simple, stagnant, and have no interaction. Other libraries or simple HTML, CSS, and JavaScript may be a better fit in such circumstances. Web sockets may be a better choice for applications that need real-time updates, such as chat or gaming apps. When creating mobile apps, React Native is a better option. Server side rendering only, as React is designed to run on the client side. Read full review Pros Many libraries available which simplify integration of SaaS APIs within your application (eg, MailChimp, Mandrill, Stripe, Authorize.net) Pre-packaged tools to facilitate common tasks when building applications (eg, User Authentication and Authorization, Background Jobs, Queues, etc) Support for a broad set of technologies out of the box (eg, PostgreSQL, MySQL/MariaDB, MemcacheD, BeanstalkD, Redis, etc) Read full review React is fantastic for building performant user interfaces. Our web app is snappy and great for our customers. React has the philosophy of doing one thing and doing it well which is the view layer of the application. This makes it incredibly intuitive and flexible for developers to use. React has lead the way in being able to write modular and structured code. It is a drastic improvement since the days of spaghetti jQuery code. React has an unmatched community. The amount of tools and libraries available is fantastic, and there plenty of solutions available online for common problems. Read full review Cons Significant learning curve. You cannot be an expert in a week. It takes many experimentations to properly understand the underlying concept. We ourselves learned it by using it on the job. Too much to soak in. Laravel is in everything. Any part of backend development you wish to do, Laravel has a way to do that. It is great, but also overwhelming at the same time. Vendor lock in. Once you are in Laravel, it would not be easy to switch to something else. Laracasts (their online video tutorials) are paid :( I understand the logic behind it, but I secretly wish it would be free. The eloquent ORM is not my recommendation. Let's say you want to write a join, and based on the result you wish to create two objects. If you use Laravel to do automatic joins for you, Laravel internally actually makes two calls to database and creates your two object rather than making one join call and figuring out the results. This makes your queries slow. For this reason, I use everything except eloquent from Laravel. I rather write my own native queries and control the creation of objects then rely on Laravel to do it. But I am sure with time Laravel will make fewer calls to DB. Read full review Debugging React is challenging. Bugs in react code generate stack traces internal to React and it is often totally unclear how it relates to the code you actually wrote. Relating your React elements to corresponding DOM elements is difficult. The intentional separation of virtual and actual DOM also makes it difficult to map the elements to the structures in the DOM. This is partially ameliorated by the use of the React dev tool, which provides a DOM-like view of the React elements, but the tool still does not provide a direct correspondence with the DOM that is often necessary to figure out why something isn't right. Because JSX is React-specific and not a language feature, a special compilation process is necessary to convert JSX code to normal JS. Coming from a C++ background, compiling things doesn't bother me, but many JS developers are used to a less structured development. Read full review Usability React is just a bit of a different animal. I was avoiding it for the longest time. I thought for sure I would land on Vue or something else with a more approachable and familiar appearance. But after taking an online course in React, I started realize what people were raving about (and complaining about) and decided to implement it at our office for one of our products.
Read full review Support Rating Since it's open-source and very popular, the community support for React and related tools and libraries is excellent. There are a lot of people using the same tools, and so issues tend to get fixed quickly and "recipes" are easy to come by. And since it's backed by Facebook, they have a dedicated engineering team working on the progression of React.
Read full review Alternatives Considered Supporting unit testing is bigger plus point in Laravel than any other framework. Developing with Laravel is much easier. Other frameworks have value in market, but Laravel has taken the lead in popularity among PHP developers in recent years. The large community supports you if you have problems. Using Laravel, integration became easy with third-party libraries, but it was costly too.
Read full review While this is a widely contested debate with various blog posts and benchmarks all over the place, its really a personal choice to determine what works for the team. Coming from a Angular 1.x background, I decided to try a new framework when Angular 2.x was announced and at that time React is gaining popularity and Vue hasn't taken off yet. Compared to Angular 1.x and Vue (hybrid of React and Angular) that split the logic from the html templates, I loved the way React breaks code into components using the jsx syntax. In my mind, this allows for cleaner components and easier maintenance
Read full review Return on Investment Laravel allows us to rapidly prototype and build complete, scalable applications internally, which saves us time and allows us to have internal tools that fit out precise needs. We use Symfony for a similar purpose, but Laravel is an even higher-level framework that we find saves us substantially more time when building many types of web applications. Laravel solves many of the underlying concerns of building a large application (such as authentication, authorization, secure input handling) in the right ways. It saves us from handling those low-level concerns ourselves, potentially in a way that could take a lot of time or sets us up for issues in the future. It's tough to assign an ROI to this, but I'm sure it has prevented issues and saved time, which both have an impact on our financial situation. Read full review Our web applications now run much faster because the whole page doesn't reload We spend less time developing UI components because a lot of them are readily available on NPM We don't have to optimize apps for multiple browsers since React natively supports it. Read full review ScreenShots