Charles Harries

| Stream

Remix first impressions

I've run through the basic Remix tutorial, and I wasn't wowed. Still, it's good to see a team trying to solve a new type of problem, so I'm going to keep an eye on it.

The basic Remix app that you build as part of the blog tutorial. Very basic.

Just finished working through the most basic of basic Remix tutorials: the blog. Remix is building hype so I wanted to give it at least a cursory look so that I can hold forth with Opinions when next I'm prompted for opinions on modern JavaScript frameworks. It happens all the time.

And: Remix feels nice! It feels like the closest thing to a JavaScript Rails/Laravel that I've tried so far (disclaimer: I haven't tried BlitzJS). I like the first-class support for databases, the emphasis on testing in the examples, and the friendly attitude towards web standards: win win win all round.

I'm not quite sure about the loader/action APIs for pages. As I understand it, the ActionFunction exported from a route file is a generic handler for POST requests to that route—but it doesn't have the explicit clarity of e.g. SvelteKit, where the handlers are called get/post/patch/etc and all live in an "endpoint" file that handles requests. I'm generally a fan of colocating code that all works together, but I like keeping templating separate from logic, and SvelteKit does a better job on that front. That's just personal preference, though.

Beyond developer ergonomics, though—it feels like Remix is trying to edge in on MVC app territory, and I don't think that any amount of effort is going to be able to chase down Rails or Laravel. JavaScript frameworks do best when they keep concerns separate and stake out a bit of territory to absolutely dominate—see for instance NextJS, which provides serverside-flavoured logic only insofar as it calls some other data-handling API, but which has become the go-to recommendation for building reliable and performant frontends.

Remix is officially on the tech tool carousel, so I'm keen to see where it goes in future. But I don't think I'm going to reach for it when scoping out new projects.

Web Code