Thomas Cannon

Fixing the Rails networking stack is published

I just published ~3K words + diagrams + code samples + demo videos on the frontend networking stack I’m choosing for Little CRM, and all my apps going forward.

You can read it here!

I know that’s a ton to dig into, but I believe this is a very strong path forward for resilient and maintainable web apps.

The idea of throwing out Turbo & going to CableReady + Mrujs might feel like it’s a step “backward," less tested, or that you’re forging your own path by not sticking with what Rails ships with.

But I’d argue the exact opposite. It uses what the browser gives us! The concepts & protocols are universal, not a bespoke framework! And it tees up your app to be resilient by default.

I am honestly worried about the cargo-culting around Turbo and how that’ll cause this to either be ratioed or downright dismissed. 🫣 I think there should be multiple options. I have philosophical disagreements with Turbo & see clear technical shortcomings that are hard to work around. But I’m also human, so I know I’m fallible.

I want a frontend stack for our community that can ultimately grow the ecosystem at large, help us attract & keep new blood, and build significantly better apps. From my perspective, this approach accomplishes all of that. I don’t need everyone to adopt it (I want that, because I believe in it 😜), but the overcorrection to “don’t do anything outside of what the framework provides” worries me. Especially on the frontend, given Rails’s history of jettisoning multiple iterations while never having sat down and truly thought out how the code lives on the client side.

I’m not saying this is the option, but it is an option. And it’s my strongly recommended option—the one I believe to be the most robust and easy to use.

Give it a read, chew on it, and let me know your thoughts 😄