We have some Node.js code (not yet in production) for http://lanyrd.com/ for interacting with the Twitter streaming API.
My personal philosophy with Node.js is to use it for small, standalone network servers that complement the rest of my stack - basically anything that needs to handle large amounts of I/O. Everything I've written with Node.js so far has been just a few hundred lines of code.
So for templating, database interaction and so on I'll keep using Django. I'll use Node for stuff like comet/WebSocket pubsub services, handling file uploads, rate limiting API proxies, webhook dispatching, interacting with slow or streaming external web APIs, etc.
Why is it good to use for large amounts of I/O? I'm in the process of making a twitter-based app and I'm debating whether or not I should be using Python / Django.
The thing I like about node.js is that you can now pretty much write your entire web app in JS, both front end and back end. This really helps with the context switches that happens in larger projects. With mongoDB, you can pretty much use JSON throughout the application stack.
I've used it on a few mid sized personal projects and have to say I generally regret the decision. The last project I worked on in node was great at first but as I slowly started adding more features the code became rather unmaintainable; IO heavy parts became a mess of deeply nested callbacks and compared to say python the choices of third party libraries are limited and often of poor quality. At the end of the day I personally rather use a tool that does not force me to compromise on code quality.
Many of my problems with node are simply a matter of taste and I'm not trying to discourage the use of Node.js; its pretty good for quick and dirty web services but, in my personal experience it has not been worth the trouble for large projects.
Some things are a bit less mature than one might desire, but all in all it's a pretty brilliant piece of technology and I find myself using it more and more.
We are at SelfServeApps and it's awesome. Not only is ES5 a decent language but our stack is incredibly simple (great when you don't have a sysadmin). We install node on a frontend server and run our app, that's it. It talks to our backend (Riak) over http.
edit: We have a thick client using Cappuccino and we talk to our Node web service using JSON. The only templating on the server is for a few HTML emails, password reset page, and the email verification landing page.
My personal philosophy with Node.js is to use it for small, standalone network servers that complement the rest of my stack - basically anything that needs to handle large amounts of I/O. Everything I've written with Node.js so far has been just a few hundred lines of code.
So for templating, database interaction and so on I'll keep using Django. I'll use Node for stuff like comet/WebSocket pubsub services, handling file uploads, rate limiting API proxies, webhook dispatching, interacting with slow or streaming external web APIs, etc.
GitHub are using Node in this way at the moment: https://github.com/blog/678-meet-nodeload-the-new-download-s...