We received the following question about which is better: Ruby, Node.js (Express.js), or Laravel. The question comes from Tony Valdes Mendez, President at SmartBrite Technologies via StackShare.io.
Ruby vs Node.js vs Laravel
Hello… I’m trying to choose the perfect stack for a new mobile app project that resembles the super apps like GoJek & Grab.
I have gone to BuiltWith and seen what their stack on all fronts…..however, and even though, they both differ from one another, I’m still looking for the perfect stack that will give us PERFORMANCE & SCALABILITY for years to come.
Your comments & suggestions are very important to us, so please share your thoughts.
Great question, Tony! We’re excited you’re researching the top web-based technologies. We ourselves just answered this same exact question internally, recently. We’re just starting building a large SaaS project here at Rackless we plan to use ourselves in running our business. We wanted to make sure we invested in the right software framework like you’re about to do. Given that we work in software development, this was a big and important decision for us and we took the decision quite seriously.
Before we can answer your question and make our recommendation, we must first make some assumptions about your project. In making these assumptions, we hope to point out some areas you may not have thought about as much as we have, at least yet.
After making our assumptions, we’ll be able to make our official recommendation. Before we dive in, though I want you to remember one important fact: there are no wrong answers to your question. All three technologies you’ve chosen for consideration are superior and popular choices. Each has great communities behind them ready to help support you on your journey. However, we do have a preference so let’s see what that is.
Assumption 1: In Need of a Technical Co-founder or Advisor
For our first assumption, we assume you’re in need of either a technical co-founder or advisor to help you launch this venture. You’re smart to get a headstart in becoming educated on the technology stacks you can use. Good for you!
A good technical professional will advise you that all these technologies are awesome! You won’t go wrong adding any of these to your technology stack. However, all technology experts will agree you’re actually comparing 3 different technologies. First, Ruby is a software language used in Ruby on Rails. Secondly, Node.js is a JavaScript run-time. And lastly, Laravel is a software framework based on the PHP software language. A better comparison would be focusing on the software frameworks rather than these differing components. The software frameworks you should focus on instead are:
- Ruby on Rails based on Ruby
- Express.js based on JavaScript running on Node.js
- Laravel is based on PHP
By comparing these software frameworks, you will be comparing apples to apples.
There are other languages and software frameworks you consider along with the 3. The most popular software frameworks beyond these 3 would include Django based on Python and ASP.NET Core based on C#. To learn more about software languages, we recently wrote an article on how to research the most popular software languages in the market today.
Assumption 2: Using Mobile-first Web Development
Next, we can assume you are wanting to build the web app first instead of jumping straight into building the actual mobile app. Otherwise, you would have asked us to recommend software languages and frameworks that run on mobile devices like Apple iOS and Android OS. Technologies we would have expected you to ask about for mobile would have including some of the following:
- Android Native for Android with Java or Kotlin
- Apple iOS Native with Objective-C or Swift
- React Native with JavaScript
- NativeScript with JavaScript
- Xamarin with C#
- Ionic with HTML, CSS, JavaScript and TypeScript
- Ruby Mobile with Ruby
We agree with you making the decision to build the web app first. Doing so will allow you to develop your app’s functionality faster than building the mobile app first. Getting approval for mobile app updates from Android and Apple along with installing on the mobile devices adds extra effort and time. That work and time would be better spent building for the web first. Also, by building for the web first, you can develop the Application Protocol Interfaces (APIs) your mobile app will need to work. By putting your app’s business logic on the web first instead of embedded on the mobile device itself, your mobile app will have a much smaller footprint. This will allow you to roll out new features and updates faster to mobile devices.
Another recommendation we have is that you should develop your web app using ‘responsive design’, also known as ‘mobile-first design’. By using mobile-first design via the web, you’ll have the design, layout, and functionality you want making it easier to emulate later in the actual mobile app.
Assumption 3: Picking a Software Framework
We also can assume you have already made the decision to follow the Agile Methodology. By selecting a software framework, you’ll get a faster start versus coding every feature from scratch. We even wrote an article on why product owners like you should use a software framework. Common software features you’ll gain from a software framework include logging in, forgot password, billing, invoices, security, and more. We love this decision because a software framework will get you up and running faster!
You can’t go wrong with any of the software frameworks we’re reviewing here: Ruby on Rails, Express.js, or Laravel. All three will help you build a minimal viable product (MVP) on the web. Later, you can write your mobile apps for Apple iOS and Android natively or use a popular software framework there, too. Those mobile development decisions, of course, can be made later. For now, we will focus solely on the web app.
When it comes to scaling, another part of your question, you well covered there too by all of these software frameworks! Ruby on Rails, Express.js, and Laravel will scale swell so no worries there. We should mention though that Ruby on Rails has had a slightly checked past. Let’s spend some time touching on that and why we feel it should not stop anyone from using it.
Ruby on Rails Historical Scaling Issues
I should note that you may see online where Ruby on Rails had scaling issues in the past years ago. Twitter originally built its web app using Ruby on Rails but later rewrote their app after running into scaling issues. Most professionals agree that those scaling issues for Ruby and Ruby on Rails have long since been addressed.
If you do run into issues later, your company like Twitter will be in a position to handle them. By then, you will be bigger and more successful when you run into them. At that point in time, you will be able to address them more precisely. Don’t spend too much time worrying about scaling issues today. As I shared in a recent tweet, that is the ‘equivalent of voting yourself rich.’
Lastly, the upcoming release of Ruby 3.0 will naturally improve Ruby on Rails well into the future. Ruby 3.0 is designed to be much faster and will require fewer server resources. Be sure to research more on Ruby 3.0 as you consider Ruby on Rails because that will be a big watershed moment for the Ruby on Rails community.
Our Official Recommendation: Laravel
We recommend Laravel over Ruby on Rails and Express.js. We chose Laravel ourselves for our own internal software project, recently after comparing these same 3 software frameworks. In selecting Laravel, we chose to build our app using the software language PHP. The software language PHP has the largest market share of all the web-based software languages (close to 80% of all websites use PHP). Also, Laravel is the fastest-growing software framework based on PHP making it a wise choice.
At Rackless, we also plan to integrate WordPress and WooCommerce later with our Laravel web app. WooCommerce and WordPress like Laravel are built using PHP. WordPress is the most popular Content Management System in the world. WordPress will allow us to build out the front-end marketing website quickly. Also, we plan to offer subscriptions and sell products in the future at Rackless. For this online store functionality, we will use WooCommerce. WooCommerce is the most used e-commerce platform based on PHP in the world. We’ll be able to use our same Laravel developers to extend our app to WordPress and WooCommerce. Another bonus of PHP’s large market share is that it will be an asset as we start recruiting talented software developers to our team.
Lastly, we are gaining access to a fast-growing and awesome community that supports Laravel. Before we made our decision, I personally met Laravel’s founder Taylor Otwell along with several of his team members. After meeting with the Laravel team at Laracon US in New York City and learning more about the direction they are going with the software framework, we’re confident we made the right decision.
Standing on the Shoulders of a Giant
While selecting technology solely based on market share could be arguably participating in a popularity contest, you have to admit that PHP obtaining 80% market share isn’t really even a contest. PHP reigns as the undisputed champion when it comes to backend software languages for the web.
At Rackless, we advise our clients to ‘stand on the shoulders of giants.’ By selecting PHP as your software language for your web-based apps, WordPress as your website’s CMS, and WooCommerce for your shopping cart, you’d be successfully meeting this suggestion by a mile. Instead of ‘standing’, though, I guess it would be better said we are ‘building on the shoulders of a giant.’
What about Express.js and Node.js?
I, myself, would recommend avoiding Node.js and its most popular software framework Express.js, at least for now. We do like Express.js and we’re actually using the software framework for a small client’s web project. However, at this point in time, we would avoid Express.js except of course for small web-based projects. The reason is the JavaScript communities are still finding their bearings both from a frontend-design and backend-development perspective. There are going to be winners and losers as the JavaScript software framework market matures and grows.
There is one point I want to make sure we make with regards to the most popular JavaScript software framework for Node.js. Express.js describes itself as ‘a minimal and flexible Node.js web application framework‘. Based on your question mentioning both performance and scalability as concerns, I don’t get the feeling you’re also seeking ‘minimal.’ Based on that assumption, Express.js and thus Node.js can be safely ruled out.
What about or Ruby on Rails?
While picking Ruby on Rails isn’t a mistake, there are shifting winds you’ll face. First, Ruby on Rails has been losing market share in recent years to other fast-moving and fast-growing software frameworks. Secondly, Ruby on Rails founder, DHH, is challenging the recent surge in popularity of JavaScript frontend frameworks like React.js, Vue.js, Angular.js, and more. This rejection of popular frontend JavaScript frameworks could further hurt Ruby on Rails’ ability to attract young software developers entering the marketplace today.
If you aren’t familiar with Ruby on Rails founder DHH, he doesn’t stray from controversy. DHH’s natural gift of challenging the status quo has made him quite popular with the Ruby on Rails community. Recently, DHH poked fun at some of the new burgeoning technologies. In a new product that DHH’s building named Hey, he was asked what technologies he was using. In typical DHH fashion, he pretended to complement technologies he has often has railed against (pun intended). Technologies DHH is not a fan include:
- microservices (vs a monolithic app approach he recommends)
- serverless technologies (vs server-based technologies he recommends)
- multiple new backend software languages including Go, Rust, Flubber (competitors to Ruby, Ruby on Rails, and Ruby Mobile)
- new frontend technologies including React, Redux, Vuejs, and Angular (DHH recommends traditional JavaScript, CSS, and HTML for the frontend).
Join Laravel Under The Big Tent
For the most part, I tend to see a lot of truth DHH’s concerns with the somewhat complicated direction new technologies seem to embrace. However, I find myself more attracted to how Taylor Otwell and the team at Laravel handle these growing and popular JavaScript frontends.
Founders like Taylor Otwell of Laravel, have embraced these JavaScript frameworks taking a more inclusive approach. At the recently Laracon US, Taylor even invited the founder of Vue.js to even speak at their conference. Evan You, the founder of Vue.js, regularly provides updates to the Laravel communities on how Laravel and Vue are working together. Thus, Laravel, I feel has chosen a ‘big tent’ approach. I call it a ‘big tent’ approach because the Laravel community is actively inviting diversity in both thought and approach. Time will be the judge on whether the DHH Rails approach or Otwell Laravel approach proves more effective longterm. Our money is figuratively and literally on Laravel!
Our Final Case for Laravel
So we hope we have at least convinced you, Tony, to give Laravel strong consideration. In summary, here are the reasons why we recommend Laravel over Express.js and Ruby on Rails and why we feel Laravel’s arguably the logical choice:
- Laravel uses PHP, the software language with the largest market share on the web
- Laravel represents the leading software framework based on PHP
- the fact Laravel plays well with other technologies makes it attractive
- the vast number of talented PHP and Laravel software developers available to help
- the ability to incorporate WordPress and WooCommerce later into your web app
However, if you end up choosing Express.js or Ruby on Rails, you will not be making a mistake. You will have made the right decision based on your own specific needs and research. Hopefully, as a result of our recommendation here even if you choose something else, you’re now more educated on the trade-offs of each.
No matter your choice, be sure to share your appreciation with your software framework’s community and its leaders. Their willingness to participate in debate and offer alternative and competing choices serves us each. We are better and smarter consumers of theses software frameworks due to their sacrifice. We are faster at software development, and more educated because of their risks. So be sure to thank them for putting their works of art out to be judged, used, and appreciated.
Good luck!