Drupal is a free, open-source content management system written in PHP that competes primarily with Joomla and Plone. The standard release of Drupal, known as Drupal core, contains basic features such as account and menu management, RSS feeds, page layout customization, and system administration.
N/A
React
Score 8.8 out of 10
N/A
React is a JavaScript library for building user interfaces. React enables users to create interactive UIs. Design simple views for each state in an application, and React will update and render just the right components when data changes. React is available free and open source under the MIT license.
N/A
Pricing
Drupal
React
Editions & Modules
No answers on this topic
No answers on this topic
Offerings
Pricing Offerings
Drupal
React
Free Trial
No
No
Free/Freemium Version
No
No
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
—
—
More Pricing Information
Community Pulse
Drupal
React
Features
Drupal
React
Security
Comparison of Security features of Product A and Product B
Drupal
7.8
72 Ratings
5% below category average
React
-
Ratings
Role-based user permissions
7.872 Ratings
00 Ratings
Platform & Infrastructure
Comparison of Platform & Infrastructure features of Product A and Product B
Drupal
7.2
67 Ratings
7% below category average
React
-
Ratings
API
6.562 Ratings
00 Ratings
Internationalization / multi-language
7.858 Ratings
00 Ratings
Web Content Creation
Comparison of Web Content Creation features of Product A and Product B
Drupal
6.2
76 Ratings
23% below category average
React
-
Ratings
WYSIWYG editor
5.769 Ratings
00 Ratings
Code quality / cleanliness
7.973 Ratings
00 Ratings
Admin section
6.276 Ratings
00 Ratings
Page templates
5.575 Ratings
00 Ratings
Library of website themes
5.466 Ratings
00 Ratings
Mobile optimization / responsive design
6.370 Ratings
00 Ratings
Publishing workflow
6.674 Ratings
00 Ratings
Form generator
5.970 Ratings
00 Ratings
Web Content Management
Comparison of Web Content Management features of Product A and Product B
Overall, I would give my rating of Drupal a 7/10 because there is an easy user experience for those without a website background but there is some technology work required to build more website capabilities that aren't as user-friendly. Drupal is specifically well suited to update content (like changing Relationship Manager cards when there is employee turnover), post announcements (putting up a holiday banner to let our customers know the dates we will be closed over Thanksgiving, Christmas, etc., and creating a sophisticated website hierarchy of pages (for our firm, several dropdowns depending on if you're looking for personal banking, business banking, investment banking, about us, etc.).
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.
It has excellent security features and consistent updates.
It allows for extensive customization with the integrated themes and core code, especially when you first install it. This allows our dev team to get creative with marketing initiatives.
There is a large online community of Drupal users that consistently help answer any questions and issues
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.
Security and new release notifications are a hassle as they happen too often
Allowing them to write PHP modules is a big advantage, but sometimes integrating them is a small challenge due to the version the developer is working on.
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.
The time and money invested into this platform were too great to discontinue it at this point. I'm sure it will be in use for a while. We have also spent time training many employees how to use it. All of these things add up to quite an investment in the product. Lastly, it basically fulfills what we need our intranet site to do.
As a team, we found Drupal to be highly customizable and flexible, allowing our development team to go to great lengths to develop desired functionalities. It can be used as a solution for all types of web projects. It comes with a robust admin interface that provides greater flexibility once the user gets acquainted with the system.
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.
Drupal itself does not tend to have bugs that cause sporadic outages. When deployed on a well-configured LAMP stack, deployment and maintenance problems are minimal, and in general no exotic tuning or configuration is required. For highest uptime, putting a caching proxy like Varnish in front of Drupal (or a CDN that supports dynamic applications).
Drupal page loads can be slow, as a great many database calls may be required to generate a page. It is highly recommended to use caching systems, both built-in and external to lessen such database loads and improve performance. I haven't had any problems with behind-the-scenes integrations with external systems.
As noted earlier, the support of the community can be rather variable, with some modules attracting more attraction and action in their issue queues, but overall, the development community for Drupal is second to none. It probably the single greatest aspect of being involved in this open-source project.
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.
I was part of the team that conducted the training. Our training was fine, but we could have been better informed on Drupal before we started providing it. If we did not have answers to tough questions, we had more technical staff we could consult with. We did provide hands-on practice time for the learners, which I would always recommend. That is where the best learning occurred.
The on-line training was not as ideal as the face-to-face training. It was done remotely and only allowed for the trainers to present information to the learners and demonstrate the platform online. There was not a good way to allow for the learners to practice, ask questions and have them answered all in the same session.
Plan ahead as much you can. You really need to know how to build what you want with the modules available to you, or that you might need to code yourself, in order to make the best use of Drupal. I recommend you analyze the most technically difficult workflows and other aspects of your implementation, and try building some test versions of those first. Get feedback from stakeholders early and often, because you can easily find yourself in a situation where your implementation does 90% of what you want, but, due to something you didn't plan for, foresee, or know about, there's no feasible way to get past the last 10%
Drupal can be more complex to learn, but it offers a much wider range of applications. Drupal’s front and backend can be customized from design to functionality to allow for a wide range of uses. If someone wants to create something more complex than a simple site or blog, Drupal can be an amazing asset to have at hand.
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
Drupal is well known to be scalable, although it requires solid knowledge of MySQL best practices, caching mechanisms, and other server-level best practices. I have never personally dealt with an especially large site, so I can speak well to the issues associated with Drupal scaling.