A couple of weeks ago I released moron.js – the first public version of a new ORM for Node.js that Vincit has been using internally in various projects during the last year and a half. I started writing my own ORM after using basically all mature Node.js ORMs out there. While most of them do the basic stuff well, I repeatedly got frustrated with some things: Writing more complex SQL queries is difficult, ugly or impossible. Transaction support is either missing or error-prone. In most cases, you have to pass some kind of transaction object to each query you make. Forget one and bad things will happen to good queries.