Choosing Vue or React for Your Headless Commerce Build
August 13th, 2021
August 13th, 2021
Part of what makes Nacelle unique in the headless commerce space is that we’re a platform that supports composable commerce. We’re not prescriptive and we want merchants to curate a tech stack with the best tools, platforms, and systems for their unique business needs.
Merchants need that level of flexibility to be responsive and agile as their business grows in the ever-evolving world of eCommerce.
We’ve tapped Nacelle CEO Brian Anderson and Lead Developer Levi Whalen to discuss some of the nuances between the two.
The primary benefit of using Vue or React is that you can make applications in the browser. You’re essentially turning a website into an application. We want to give an app-like feel to eCommerce stores because it increases interactivity and radically improves the shopping experience in the process. Customers are also so used to native mobile app experiences on their phones that it sets a high bar for UX. Vue and React are responsible for bringing that app-like feel to websites. That’s really attractive for merchants, and a cornerstone of the headless commerce experience.
Brian Anderson: Right. It’s a bit of a square peg, round hole with the tools that existed before headless, so this opens up the door for getting the right tools to build an experience that meets customer expectations.
Levi Whalen: Exactly. You also shouldn’t expect your eCommerce platform to provide a UI layer. That’s sometimes an expectation from the Shopify Plus world, and they’re never going to get that totally right. Merchants should use something that has been built by teams that are solely focused on making the UI great, and making the interactivity experience amazing. Rely on your eCommerce platform for the product data, but don’t rely on it for the presentation, that’s where libraries like Vue and React come in.
Levi Whalen: This gets into human psychology a little bit, asking what tools are more coveted and why. There are a couple of factors that come to mind like the size of the library’s community. People using a tool can inadvertently invoke a “network effect” and people will rally behind leaders in the industry, interested in whatever they’re using.
In the case of React, there’s also the fact that Facebook is the corporate sponsor. There are certain companies that are just going to say, “it’s backed by Facebook so we can trust that it’s going to be around long enough for us to invest in it as our core technology.” The more upmarket we go the more we see people reaching for React due to this reasoning.
Brian Anderson: People also view hiring and resourcing as a risk to headless implementation, and there’s a misconception that it’s easier to hire React developers because the community is bigger. So, it appears that the logical way to reduce that risk is to lean into the most popular libraries and frameworks. But it’s a misconception. Developer expertise and quality need to far outweigh framework popularity while making this decision.
It’s important for merchants going headless to make this decision through a development lens and remember that popularity and quality aren’t necessarily the same thing.
Levi Whalen: Right. Because of React’s popularity, more often you run into situations where, for example, a developer attaches a React-driven banner to a Shopify Liquid store and with that they call themselves a React developer. We see people that have a very limited scope of what they’re doing turn around and assume their skills will seamlessly translate to building a full React-based app or webstore.
As mentioned, you can use Vue as a scripting language, but I feel it was always more geared towards building serious applications. Because of that, it attracted a community early on that was by default more senior.
Levi Whalen: To add to that, the state management patterns in React are still like the Wild West. They made it more open, rather than recommending state management. Conversely, the core team at Vue built a state management package to be the office state management which is called Vuex. That stance is one that provides a lot more for you out of the box, whereas with React, you’d have to build yourself. That can be daunting and make your code harder to work on.
Brian Anderson: Nacelle works well with either but if I were a merchant, personally, I would choose Vue and Nuxt [a framework built on top of Vue] because I think it would be easier to hire a team that’s really good around it that I can rely on. It would reduce my build risk and my timeline, and it would ensure the storefront is superb. Also, I could hire that team faster and move with higher velocity for a comparable cost.
Levi Whalen: The Vue developers I interview are often living and breathing Vue and very passionate about it. That’s what I want, the kind of people who have a folder full of passion projects.
Brian Anderson: Vue definitely has a cult-following.
Levi Whalen: Definitely. Vue developers are usually the kind of people who think about problems more holistically and drive better code. React teams are also usually larger. You see Vue teams of one to two people building Vue applications so they tend to think more big picture and be more agile rather than looking at one little piece of the puzzle.
Brian Anderson: React projects tend to be the ones that take longer and need more QA around it. We’ve noticed a trend that all the React projects we’ve done need a little bit more hand holding. To me it’s a result of the nature of the culture around React and Vue that Levi just touched on.
On the flip side, some of the really established frameworks that sit on top of React like Next are brilliant. And I think Nuxt is equally as powerful. But typically the problem is the average React developer doesn’t understand the nuances of the details around building a Next project, and so they get lost in the mix causing a huge impact on the build.
Even here at Nacelle, we’ve been trying to hire some React-specific developers. We have a couple extremely talented individuals on staff already—but generally speaking, the React developers we interview don’t pass our technical bar.
The pass rate is 10x lower, easily, for React candidates compared to the pass rate for Vue candidates. And I think it’s even harder to hire React developers as an eCommerce merchant than a venture-backed SaaS company.
I encourage merchants to really think about this choice. Don’t go with what everyone else is doing, really think about the pros and the cons of each framework while making your selection.