This week, we’ve got a breakdown of the Remix vs. Next.js battle royale, new TypeScript updates, and lots of programming buzzwords that we think are real — but at this point we’re too afraid to ask. Welcome to #84.
Come down here and see what happens if you try and hit me.
Remix vs Next.js — The Showdown
Let’s get ready to rumble… Remix threw down the gauntlet last week with a 6,700 word essay on why they’re better than Next.js. It’s well-written but super long, so we made this 13-second video summary for you.
How We Got Here: Remix is a React meta-framework that’s SSR-only and was created by the folks behind React Router. It’s “edge-first,” able to deploy anywhere, and has gotten lots of hype since it launched v1 in November.
But how is that different from Next.js? Turns out, the Remix team was tired of literally everyone asking that question, so the article uses lots of nuanced measurements to directly compare a Next.js app and a Remix app. From there, they shared the following scientific conclusions:
HOW? The Remix app server-rendered every single page, instead of using SSG. They could do this faster than Next.js because they cache their data “at the edge” with a Redis database and also run their servers “at the edge.” (Not everyone agrees on what “the edge” actually means, but just imagine servers close to users.)
But at what cost? Is “best-in-class performance” really worth it if you have to run a distributed server and a distributed database and a Redis cache? That Remix example even included a Docker Compose file — and now I’ve got Egghead pushing Docker courses for Remix devs on my timeline. At least we all got our Master’s Degrees in Distributed Systems, right? 💀
Remix is on to something, though — hosting sites closer to users does provide a better experience, and Vercel knows it too. Soon, Vercel will follow Remix over the edge by providing edge-rendered sites, thanks to their new Edge Functions feature (AKA two Cloudflare Workers in a trench coat). All the speed and flexibility of edge-rendering without all the extra infrastructure sounds pretty nice right now.
Bottom Line: When frameworks compete, developers win. When frameworks have raised mountains of VC cash, they tend to compete a little harder. Personally, I’m still just waiting for this livestream to happen.
The only pair programmer I’ll allow [sponsored]
Raygun gives you X-ray vision
…for your code. Now stop looking at me like that.
Raygun is a super powerful tool that makes it easy to get all the diagnostics you care about for your team’s web and mobile apps. When there’s an issue, it shows you exactly what’s going on, who’s being impacted, and exactly how to fix the root cause – down to the specific line of code itself.
This X-Ray Code Vision lets you quickly prioritize fixing the issues that have the biggest impact on your users, so that you can quickly return to watching Spider-Man 3 starring Tobey Maguire (aka the greatest film of the 21st century).
Start a 14-day free trial of Raygun and give your team a tool that’ll genuinely make their lives easier. It only takes a few lines of code, and their simple usage-based plans start at $4 a month – a small price to get your users to love you, your team to love you, and your stepdad to finally respect you.
Try it out. Thank me later.
better type inference with indexed access types
TypeScript just announced its v4.6 beta — but unlike our last story, they didn’t even write a blog post calling out one of their rivals by name (boring). Hopefully they’ll fire up the hot take machine soon and write that scorching “TypeScript vs. Flow” blog post we’ve all been waiting for (since 2014).
In the mean time, there are a lot of new features and improvements in TypeScript 4.6. Will you notice most of them? Probably not, but here’s the highlights:
Bottom Line: It’s another solid release for TypeScript — but Zuck just told me that Flow already had all these exact same features years ago. I guess it’s time for him and Satya to take a page out of the Remix vs. Next.js playbook and settle this once and for all… by writing long blog posts and subtweeting each other while pretending they’re on the same team.