Seems to read different opinions on the node stack here.
I am getting to a similar conclusion to you though, where other tools were good for prototyping and the node stack really better for the real projects (post-prototyping).
We just finished rewriting a 3 year old Rails app in Node+Knex, performance with 10k concurrent sessions is roughly 4x and p95 is 10x better.
Keep this in mind whenever someone decides Rails is fine for a quick prototype and then leaves you to deal with production.
I am of the unpopular opinion that Rails "many opinions" are confusing as hell to someone who doesnt breathe Rails due to the sea of implicitness: Symbols just appear you are supposed to know where from, debug requires context dumps, gems are an unholy mess of registering hooks and overloading core apis. Combined with "slow as a dog", I really dont see what there is to love here.
I still reach for Rails a lot for prototyping. If the application can leverage Rails core functionality and the bigger gems in the ecosystem, I find it the quickest to prototype in, and the point of a prototype to me is to optimize for speed and customer feedback, often as the only developer. In many cases, the prototype needs to be re-written anyways when core assumptions don't survive encounters with the customer.
I think the reason this productivity exists is the all batteries included approach. For example, if I build a Rails gem, I can include data persistence through ActiveRecord and that code becomes less code that the developer using my library would have to write. Multiply that out by the various core libraries and the time savings can become significant.
I would also point out that for very early stage startups, the biggest problem is speed of development with only one to two devs. If they can't get the features out to reach product-market fit, it doesn't matter how good the performance of their application is.
> Symbols just appear you are supposed to know where from
While I don't like Symbols yes you are expected to know Ruby to at least a basic level if you wanna write Rails.
It's like me saying in Node you are supposed to know Promises/async. Of course you are.
Also what were you using to support the concurrency before the switch? There are quite a few solutions out there you could have tried before doing a rewrite. Seems to me like you guys just wanted to write Node, which is fine, but it probably cost you quite some time.
I am getting to a similar conclusion to you though, where other tools were good for prototyping and the node stack really better for the real projects (post-prototyping).