In our case, we use Brunch (node.js-based tool) to build client-side code. With Ep.io, we'd just build the code locally and then do `epio upload`. While Heroku requires everything to go through repository. Since it's impossible, I think, to run a Node.js tool directly on Heroku, we'd need to `git push` compiled code. It is not nice.
One thing you may be interested in is heroku-buildpack-multi[1] which lets you run multiple buildpacks. You could theoretically use this to include the standard Python and Node.js buildpacks plus a small custom one that just installs and runs Brunch.
I definitely agree with other comments in this thread that paas and orchestrated-iaas are on a collision course. Exciting times!
In the long run, though, it's probably better to include the Brunch step as part of your build. With the new version of the dotCloud Python service[2], you can hack the build script[3] to do whatever you want. For simple build tasks, there's one version of Node already installed, but you could also poach part of the Node build script[4] to install another version, if you need it.
---
[1]: http://docs.dotcloud.com/guides/git-hg/#pushing-uncomitted-c...
[2]: https://github.com/dotcloud/python-on-dotcloud
[3]: https://github.com/dotcloud/python-on-dotcloud/blob/master/p...
[4]: https://github.com/dotcloud/node-on-dotcloud/blob/master/nod...