A small Remix 3 blog
Three notes on writing a website in Remix 3
Each post is the same Remix 3 framework looking at itself from a different angle — what it gives up, what it gets back, and what it felt like to type the first hundred lines of code.
May 28, 2026 · 8 min read
The benefits of Remix 3 aren’t about Remix at all — they’re about admitting that the React-first habit was making every other layer of the stack harder than it had to be
A framework that walks away from React in 2026 sounds like a stunt. Spend an afternoon writing routes, handlers and components in it and the move stops feeling brave and starts feeling overdue. Here’s the case for taking it seriously.
Read the note →May 26, 2026 · 5 min read
There is one rule in Remix 3 that you will type wrong on your first afternoon and never type wrong again — there is no top-level import, every package is a subpath, and the whole framework gets quieter the moment you accept it
`import { ... } from "remix"` does not work. There is no barrel. Everything you load comes from `remix/<something>` — and once that lands, the framework stops feeling like an SDK and starts feeling like a standard library.
Read the note →May 24, 2026 · 6 min read
The Remix 3 component model is not React without hooks — it is a different question being asked, where state lives in setup scope, re-renders are something you ask for on purpose, and the closest reference point is the early days of Knockout, not Preact
Components return a render function. You read props from a handle. You call `handle.update()` when something changes. Three sentences in, you are going to want to know what the trade-off is — so let’s talk about that.
Read the note →