How this goes against the recent Twitter move to return rendering to the server?
How to find the right balance of client and server functionality?
It was definitely something we thought about, and even discussed with the devs from Twitter. Twitter has a very different use-case to SoundCloud. When you follow a link to Twitter, it's usually to read a single tweet (or maybe a handful), and that's it. SoundCloud is visited by someone who is already willing to invest at least a couple of minutes to listen to a tune, and is much more likely to explore the site. Therefore, the value of making further navigation of the site fast (via client-side rendering, etc) is weighted differently at SoundCloud than at Twitter.
Do anyone knows any pattern to have the server templates sent to backbone avoiding duplication?
Templates={}
Templates['templatename']=function(){/*compiled template*/}
They can then be referenced quite easily in your backbone render methods.