Ruby on Rails clone in NodeJS

It’s basically done and used for private projects, but it’s not polished and there’s no documentation,

only some examples. MonoJS - RoR clone in NodeJS.

Examples to play:



(Register here to play with it and see it in action)

Would you be interested in such framework? I need to know it to decide -

create documentations and polishing it or just keep it as it is for internal usage.

What’s the same as in RoR

  • Looks and feels like working with RoR. Uses same API, naming and conventions.

  • Forget about asynchronous code, use plain and simple synchronous code (without

blocking the node, thanks to Fibers).

  • More robust error handling (thanks to Fibers).

  • Full support for RoR AJAX techniques for Classical Web2.0 AJAX - remote links, JS responses,

js-helpers, Turbolinks.

  • Controller with before / after callbacks.

  • RESTful routing.

  • AssetPipeline (based on Browserify, support CoffeeScript, ClientSide Templates, minifying, etc.)

  • Code Reload

  • Pluralize and localize helpers.

  • Modular, create many applications and combine it as you wish (similar to how it’s done in express).

  • Request format recognition and automatically use correct ContentType for response and Template extension.

  • Full support for CoffeeScript, use it for server code, server templates, client code (Backbone.js for

example) client templates. All will be assembled automatically and in case of client stuff also

transpiled to JS packed and delivered to Browser.

  • Use mocha.js to create tests similar to RoR RSpec

What’s different from RoR

  • Unlike RoR its internal structure is modular, every of its Core Component can be replaced. So, you

don’t need things like RoR Engines, it’s already there out of the box.

  • Small code size, basically it does nothing by itself, it’s just a gluecode

delegating all actual work to other well known and established Node.js libraries.

  • No enforcement on project structure, you can use folder structure like RoR or whatever other

your like.