Web Dev Kent Dodds on Remix and His Frontend Secret Weapon

Today we’re launching a new type of content for The New Stack’s frontend and web application coverage: Developer profiles. If you’d like to be featured, please contact loraine@thenewstack.io and tell us a bit about why we should cover your site creation or revamp.

Kent Dodds is a web developer, educator and a co-founder of the framework, Remix. He’s also the creator of Epic Stack, an opinionated full app starter pack. He outlined his Epic Stack web choices for The New Stack a few years ago, so we thought it’d be worthwhile to check in and — in light of the emergence of post-React frameworks — see how Dodds felt about those same choices today. He described the technical stack for his personal website back in 2021. The conversation is edited for brevity.

Your framework of choice for your website was Remix, (now React Router 7). Would you still recommend Remix?

I actually built my site with Remix first and then I joined as a co-founder later because I enjoyed it so much. What was Remix when I built my site is now React Router Version 7, and that’s what I use and recommend for anybody building web applications.

Why was Remix right for you?

It has a number of things that I love about it. I actually have a blog post titled Why I Love Remix, and that is still relevant today but the basic idea is it has a really great model for managing state, like global state that comes from the server and keeping those mutations up to date.

The progressive enhancement story is also very good and it’s also the most widely used framework in the world, as it’s the most widely used React framework in the world. And React is widely used. To be clear, it’s not the most widely deployed. The most widely deployed is WordPress still, but as far as developers who can work on this and the mind share, React Router version 7, specifically, but React Router in general is the most popular React framework.

Would you recommend Remix for developer portfolio sites?

Not necessarily. For myself, I would definitely use Remix or React Router v7 for any site that I build, but for developer portfolio sites, they’re pretty simple — a handful of blog posts. They can be statically generated and just use server HTML. You can do all of that with React Router.

If you want to keep it simple, it is very easy to keep simple, but there are other tools that are more catered to that use case and have lots of useful bits in them. Astro comes to mind. So if what you’re building is really, really simple, then another framework might have more catered tools for that specific use case of a developer portfolio site.

My site was built intentionally over-scoped so I added a lot of features that you would not typically add for a developer portfolio site. I would not refer to my site as a developer portfolio site. It is a web application that I over-scoped for purposes of making it real-world realistic, so that I could then turn around and teach people how I built that — and that’s what I did with Epic Web.

Is there anything in your frontend stack that you are rethinking?

I have no desire to leave React Router. When Remix version 3, the new Remix that’s a completely ground-up Remix, comes out, I will evaluate the value in migrating my site to that. But other than that, I’m really happy with it.

Would you still use Node.js over some of the newer offerings such as Deno or Bun?

I do still use Node for everything. The latest version of how I build web applications is actually in the Epic Stack. I took what I built with my personal website and I stripped away everything that was really specific to my use case and created the epic stack. And so it’s a project starter and generator that people can use. It’s open source. On GitHub. And so if you want to see what the latest of my recommendations are, that’s it, and it does still use node.

If I had to choose between Deno and Bun, I would choose Bun. I can’t really explain why. I just like the vibe of Bun better. I have deployed Hello Worlds in every one of them. Bun is pretty interesting. Its focus on performance is pretty cool.

But I haven’t felt so strongly about that to decide to change everything.

What’s the first decision you make when building a website?

It just depends so much on the context of why the website is for. I threw together a site using a vibe coding tool the other day, because it was a really simple thing. I threw together a site and I hosted it on Netlify. If I’m going to build something that I think is a long-lasting product that I want to maintain, then the first decision I make is to use the Epic Stack, because the Epic Stack has already made a bunch of decisions, and I made those decisions. There’s the decisions document here in the Epic Stack that explains all the different decisions that were made.

Kent Dodds, Remix co-founder and creator of The Epic Stack, explain his development decisions in this profile.

What is the number one thing you look at when deciding where to host a site?

First, it’s got to be capable of the requirements — that’s going to be the number one thing; not everywhere is capable of doing the things that you want to do, and depending on your requirements, some hosting providers are going to be easier to use than others. If it’s just a static site, then I probably wouldn’t use Fly.io to host that […] But if we’re talking about a non-static site, like a really dynamic site, then yeah, I definitely would use Fly.

I am also looking into Cloudflare. Cloudflare is really interesting, especially with their container support, so now its capabilities have expanded immensely. But even still, I really like the fact that on fly, I can just have a single box. I can have everything on there that I need, and I don’t need to have multiple services that need to integrate and talk to each other, whatever. So I like that about Fly, but Cloudflare is looking really interesting for even those advanced use cases as well.

And to be clear, like it’s absolutely capable of those really advanced use cases, it’s just a matter of do I want to wire up a bunch of different services together or internally to Cloudflare? It’s all services within Cloudflare, or do I want to just have a single box, like a single Docker file that handles everything?

For me, the single Docker file, as much as I don’t like Docker, or as much as Docker is challenging, it is really nice to just have one portable thing makes reproducing the environment a lot easier.

Do you have a frontend secret weapon — something you use that maybe isn’t as well-known or popular but that you just love and would recommend?

I don’t think a lot of people know about MSW, (Editor’s Note: Mock Service Worker is a library that enables API mocking in both browser and Node.js environments.) That is kind of a secret weapon.

If you check out the Epic Stack, and also my personal website, I use MSW to mock third-party services or external services so that I can work offline, or like I go up in the mountains and I work where there is no internet connection. And in addition, if those services go down, it doesn’t affect my local development. It makes it way, way easier to test. It makes it easier to develop.

The name is a bit of a misnomer because I run it on in Node on the backend, pretty much exclusively. So there’s no service worker there, but it is fabulous. And fun fact, the creator, Artem Zakharchenko, is also an instructor on Epic Web, and he is recreating testing javascript.com on Epic Web, and he’s doing a fabulous job.


Group Created with Sketch.


Continue Reading