Several weeks ago, I came across StrongLoop's Loopback framework for node, and have been slowly starting to become familiar and comfortable with this as part of developing a custom node app with social login. The app will have be usable from both an Angular.js-based web app, and from an Android mobile app (IOS as well, if needed).
There is a considerable flurry of activity going on at StrongLoop right now, with many changes/fixes/features being added all the time (particularly from StrongLoop's Raymond Feng, whose workflow I would love to observe so that I could get even a fraction of his productivity). Maybe this is a common situation when building node apps. I don't know how often they are updating the npm registry, and I want to stay current with the latest in github. Further, I will likely need to fix little things myself in the core Loopback modules pending those things being fixed in the Loopback repos. I was trying to determine a workflow that would somewhat work with all these factors.
What I've settled on for now is to fork the Loopback modules I use, and then refer to my forks in package.json for my custom app. This includes core loopback, loopback-component-passport, loopback-component-push, loopback-component-storage, loopback-datasource-juggler, and strong-remoting.
I'm using WebStorm as an ide, which seems to work nicely with github, and have local projects based on my forks of the Loopback modules as well. I'm doing this rather than modify anything in the node_modules of my custom project, which would require turning off gitignore there.
Maybe there's a better/official way to do these things - will see how this works and what needs to change about it.