Every app must have at least 1 non-monetary gains for myself. Examples:
* When I build an app with Tornado, it's because I want to see how event driven server works and how to interact with epoll.
* When I build an app with Rails, it's because I want to experiment with things I probably won't do for professional rails work. E.g. using Rubinius or Erubis.
* One of the older app I killed was written in Zend framework because CakePHP was (a while back) too slow and I think modularity in PHP app is a good thing.
* The latest one is being written in Lua because I have heard so much awesomeness about its JIT.
* With every single app that stays running, I continually learn something new about Ubuntu administration and jQuery plugins.
Of course I killed my apps if they don't take off because VPS renting gets expensive fast.