A Product Guy’s Take on Hotwire Vs. Vue & React
by Timothée de Laitre on 18 February 2021 , updated on 23 June 2021
I’ve had the chance of talking directly to @DHH himself, creator of Ruby on Rails, on the 28th of January, mostly about Hotwire (video at the end of the post). Just writing this, as a product guy who never shipped a line of Ruby in production, still feels completely crazy.
How it happened
It all started as a joke. At WizVille, like most startups, we struggle to hire Fullstack Rails developers that match our (rather high) expectations. Which is a problem when your whole strategy is based on changing the way your customers go about their business through technology and innovation. Especially when you feel like you’ve cracked it and start having stronger traction than ever, both nationally and internationally, and have had 3 senior Software Engineers positions open for 4 months (see our remaining open position)…
So one night, I call Clément, our CTO, and tell him : « Let’s ask DHH to come talk at our first ever WizVille-hosted tech event!». The idea would be to make a powerful statement to the Rails community in France: « WizVille means business, and takes inspiration from the best, you should join us! ».
Clément laughed and answered, « well, that’s a crazy idea, but he just launched Hotwire and a new version of Turbo today ». I open Hacker News, « Hotwire: HMTL over the wire » is the #1 post. I find out about the tech and realize that not only Hotwire is a potential game changer, but also that this is the perfect opportunity.
It just took one email, I offered to gather as much of the French Rails community as possible for an event during which he could spread the word about Hotwire, and he accepted within 24 hours. I think he did because the email transpired the fact that I was maybe the most determined guy out there to be willing to gather as much of the Rails community for a dedicated event about HW.
Not just another front-end framework
At first, I thought Hotwire wasn’t meant to take over the front-end development game in David’s mind. But I was shocked by his answers and the displayed pureness of his ambition on why he created it and shipped HW for the world to use.
We all know David for his game changing vision with Rails, and his radical approach to working described in Rework and how it influenced the way the tech world sees work. But Rails was launched at a different time, when you’d think the competing technologies were “rather clearly” retrograde.
We also know how powerful frameworks like vue and react are today. So, assuming the potential limitations of Hotwire, since it’s HTML-based, and the incredible contenders there are in the front-end development world (Facebook, Google…), I never thought David was going to pitch us an upcoming shift in the way apps are created… even though it kinda feels obvious now that he’s described it to me.
Why Hotwire could be the future
- You can learn Hotwire over a week-end according to David. On average it takes about a month or two with React. With vue, about 2 to 4 weeks.
- Having to code everything in Javascript on the front-end has never been a free choice: it’s always been a choice made out of the absence of alternatives. With HW, app builders won’t have to deal with the complexities of having developers specialized in a completely different technology. And will use the needed technology for the appropriate goal. That will dramatically increase the developer’s satisfaction since he will be able to use his preferred language and also manage most of the spectrum of web app building himself.
- Hotwire is an independent project from Rails, which means it works with any back end development framework.
- Hotwire also works on mobile. Out of Hey’s mobile app’s +100 screens, only one of them is built in native languages. There’s also a misconception about Strada (not released at the moment I’m writing this): it will just give developers a more conventionalized approach for interacting with their native apps, but that’s it.
- Hotwire works for every kind of app, save for apps that really require javascript’s abilities as a technology, and need to work independently in the client (calendars or apps like Figma). That kind of app is a very small fraction, and Hotwire can be combined with a JS framework like react or vue if needed.
So there you have all the ingredients to replace any front-end framework:
- Speed: get your developers up to speed on your front-end framework faster, and therefore potentially ship your product faster
- Simplicity: easier for back-end developers to do otherwise complex front-end work
- Coherent technology choice : use complex front-end frameworks only when needed for some features
- Compatibility : works with all back-end frameworks and all types of web apps
Main concerns to date
The main concerns are mostly related to how little time it’s been since Hotwire has been released. This means smaller community and stack overflow threads, and also fewer plugins. The most advanced design framework you could use is Tailwind, a CSS framework. Which may have us coding our own animations or having to combine with other libraries…? Also, having to combine front-end frameworks in some cases, doesn’t feel ideal.
David told us that Hotwire was up to a much stronger start than Rails, so we could expect to have most of those concerns solved along the road.
But the mere fact that David Heinemier Hansson deeply believes that his mission is to liberate developers from the grip of Single-Page-Apps with Hotwire should definitely have everyone’s attention in Tech. And it definitely has ours at WizVille.
About the event
The event was called « Hotwire & Startups: Dreaming bigger With Rails in 2021 » and you can enjoy David’s 1 hour fireside chat mainly about Hotwire below:
We also asked their opinions about Hotwire to Sylvain Utard (AI General Manager @ Algolia), and Nicolas Denayer (VP Engineering @ Doctolib) along with our own CTO, Clément Bruchon, see the video of the panel here (in French):
We plan on hosting a 2022 edition of a similar event and are sure to have even more to say on the matter of Hotwire vs React & Vue.