I’m in an Open Relationship with Remix
Paul Scanlon takes the Silicon Valley ethos perhaps a little too far. He’s in an open relationship with Remix, but swears React doesn’t mind!
If you’re not familiar with Remix, it’s an open source React-powered server-side framework built on top of web standards… and so much more.
Remix is open in other ways too. Right there in the docs you’ll see: Bring Your Own Server, which is wild, considering it’s a server-side framework, and sometimes the “server” part of a framework only really works when teamed with a specific cloud provider… which is usually where all that sweet, sweet, $ is made!
Remix is open about where you deploy because the money to keep this project alive doesn’t come from you, or rather, your credit card.
Remix was acquired by Shopify in October 2022, and for all intents and purposes are now considered to be an internal engineering team building great stuff for the business. It just so happens that Remix can also be enjoyed by you, no strings attached.
Remix has been developed by the state of Utah’s most beguiling couple, Michael Jackson and Ryan Florence. No one’s really sure how these two met, but rumor has it they were both at a coffee shop one day. Ryan was wearing a t-shirt that read “rendertoString” and Michael, a t-shirt that read “hydrateRoot”, and the rest as they say, is history.
Prior to launching Remix, the two had previously developed, and continue to maintain React Router. Michael and Ryan have given a lot to the React community over the years, so entering into a new relationship with them using Remix, for me, wasn’t something I had to think too hard about.
When Remix first announced they’d been acquired by Shopify, I was like, “W.T.Flip”, what on earth does Shopify want with a framework?
Historically speaking, (and now seems like quite an antiquated approach), companies that develop a framework would have to nudge you towards their “paid for” services in order to survive as a business. I imagine it’s quite costly to develop and maintain a framework that’s effectively “free” to use, so any company adopting this strategy would need a pretty solid underlying business model to support it.
As time’s gone by though, the Shopify acquisition has started to make more sense, Shopify already has a core business, one that isn’t directly dependent on the success of a framework and by bringing Remix in-house, they get to reap the rewards of having some of the world’s brightest minds building something their core business can directly benefit from.
I’ve noticed this sentiment in the community too, with many folks beginning to become suspicious of the “framework + cloud” offering. This “integrated” approach might seem like a win to begin with, but after a while many of us have started to feel like the Boiling Frog.
Shopify has no “cloud” as such, and no real method to boil you. Instead, they continue to invest in Remix, and we all get to use it for free — it’s a win, win!
Remix doesn’t mind if you fool around with AWS, GCP, Cloudflare, Render, Fly, Railway, Netlify, or any of the other trustworthy cloud providers. It doesn’t matter to them where you deploy because that’s not where the money comes from. And this isn’t just a marketing message, it’s an engineering principle — there’s no valid reason (that I can see) for the Remix team to favor one cloud provider over another, and given their architectural choices it’s hard to imagine it could even happen.
The other great thing about Remix is, it is actually a framework. It comes with just enough stuff built-in to be helpful, but is understanding enough to stay the f*** out of the way when you need your space. It is, in my opinion, what a framework should be: a frame and a set of guiding principles, rather than governing rules. Remix provides the frame, you paint the picture!
I imagine at one time or other all frameworks will have to take a long hard look at the deepest parts of themselves, but Remix is open here too. The team recently announced the new (unstable) Vite plugin which allows you to essentially, “bring your own compiler”; plus, it’ll give you access to the entire ecosystem of Vite plugins.
This is a hard one for me because I love React. Before React, I was spending a lot of time individually manipulating different parts of the DOM to ensure my apps worked correctly. With React, I felt much more secure; but that was back when React was a younger, more attractive UI Library.
I don’t actually know React anymore, these days it feels distant and seem to spend an awful lot of time doing things for that Gavin Belson guy from work. That said, I trust that the React/Remix relationship remains intact, and because of that, when I’m building with Remix I don’t have to worry about potentially trying to use a React feature that’s not actually a React feature — even though I keep being told it is a React feature.
Instead, I’m able to develop my app knowing that the Remix team has included React’s “greatest hits”, which are framework-agnostic, and actually production ready!
Naturally, it depends. Not just on what you’re building, but on what your relationship goals are.
I’m not even going to pretend I know what other people’s goals are, but I will tell you what mine are; and if you agree, dating Remix will probably be good for you too.
I like the web, I like to understand what it is I’m doing, I like to take my time, and I like to keep my options open.
In this industry, things change fast and you can only make decisions with the information you have at the time. I like Remix because it provides a sense of freedom… almost too much freedom. There’s so much about Remix that can be changed to suit my needs that I feel selfish.
They’re so flexible and give so much, and I give so little. Then again, I wrote this blog post so I expect if we were to have a blowout, we’d quickly overcome our differences and resolve to kiss tenderly for several minutes.
This reminds me of how I deployed Flash applications many years ago where, if required, I’d simply drag and drop a .swf into a different Cyberduck window and hit the foosball table. But Flash is my ex, Flash is gone forever and never coming back…and, I’M FINE WITH IT, OK!
You never really know if a relationship is going to work until you invest time in it, and it’s now been a little over a year since Remix and I have been together and it’s cool. I’m still happy, I get to see other frameworks, hang out with other clouds and spend my money on whatever I like, and crucially, choose my own clothes.
You seldom see a member of the Remix team, or community participant, decked out head-to-toe in Remix swag. And whilst I don’t know for certain, I’m fairly confident it’s not the wishes of the Remix team to have you strolling around the streets of San Francisco looking like their framework threw up on you.
If this sounds like the kind of relationship you’d like to be in, maybe you should give Remix a try!
Leave a reaction and let me know how I'm doing.