Jorge Manrubia

December 23, 2023

When everyone has a say

I don't think creative processes benefit from democracy — quite the opposite.

After presenting the new Turbo 8 stuff in Rails World, some people opined that Rails needed to improve collaboration in the frontend space. I got a variant of this question in a couple of podcasts, which also happened when we released Active Record Encryption. The underlying idea is that you should collaborate with other authors in the same space when building new things. Someone is using morphing. Someone else is doing database encryption. Why not reach out and join efforts?

To me, that's a fallacious idea.

First, worthy creations have a vision, a soul. You can't build that one vote at a time. That's how you end up with a camel when aiming for a horse. That's CORBA, IndexedDB, EJB, or SOAP. That's pain. Instead, you start with an idea for a concrete need, explore it, discuss it with a few people you trust, and, hopefully, land at a solution for the original problem. Then you share.

If by better collaboration you mean homogenizing criteria, unifying efforts, and getting a synergic combination of each approach, that might sound great, but that's not how software development works.

Second, open source comes with the ultimate collaboration capabilities built-in. Once the seed is out there, everyone can propose, discuss, get inspired, fork, modify, and contribute. That's how Stimulus got outlets or custom Turbo stream actions. That's how Turbo will use a library that originated in htmx or how Laravel will offer Turbo 8 using similar helpers to Rails. Those are recent examples of collaboration of the best kind. Not to say we can't improve things, but collaboration is working: Turbo receives a healthy stream of regular contributions that, ironically, seem to have ramped up after dropping TypeScript.

Furthermore, the Rails frontend space includes great alternatives like Phlex, ViewComponent, StimulusReflex or TurboBoost. I am sure they all originated the same way: a tiny crew with a vision building something they needed before sharing it with the world. And that's how it should be. Everyone is free to chime in on whatever project they want. Everyone can use the library that better fits their taste.

So, collaboration in the Rails front-end space, for sure! But mind democracy when building things. It can cause more harm than good.

About Jorge Manrubia

A programmer who writes about software development and many other topics. I work at 37signals.