

There's many people in Twitter and IRL asking for a "Rails for JavaScript" framework.Īnd you know? In the early stages of any project we have to validate it first with real users/customers.
#Actix student version code#
I won't say any NodeJS framework isn't good enough but in my experience with NodeJS frameworks you have to code a lot of the things Rails already provides. It's the ideal one if you're the only dev for your project because you get so many things already baked-in the framework that you'd only need to deeply care about specific stuff. Rails is currently a very mature and feature complete framework. And that is THE MOST COMMON performance bottleneck of web applications. Node allows developer to easily write code that runs db query, external api calls, or other stuff of that nature in parallel. In term of performance, node has a clear advantage over any other major web frameworks, except the ones built with go. Personally, the cases where I would pick node.js over rails would be projects either require a) high-performance, or b) certain core functionality that has been implemented by some node packages but not by any ruby gems. In addition, it's usually easier to debug a rails app than a node app in my experience. And the moment you realize that you already have it, it's so delightful.

However, down the road, there is a good chance you will need some of those. Yes, many of those stuff may not be useful or necessary at the beginning of the project life-cycle. For example, logging utility, csrf protection, session encryption, etc. Besides, many stuff are built in the framework. Many will work well together out-of-box, for example devise and cancancan. For example, they are all designed with same naming convention. But thanks to that, many of the gems are coded with it in mind. Rails is a very opinionated framework, there're pros and cons to it. So Just go with the prepackaged toolkit then. And looks like you are not building some next-gen super duper fast smart application. Given that you are the only dev on the project, I'd assume that the resource is fairly limited. Of course, at times DIY toolkit can do better on specific tasks. Whereas, node.js with whatever backend framekwork of choice, is like a DIY toolkit assembled by mix-and-match different tools in a large tool shop. Rails is like a prepackaged toolkit, which can get most of the common tasks done fairly with ease.

I'd use the following metaphor to non-technical people.
