I think it would have been more fun if it were done without CORS, i.e. if balances were available just beside the addresses. Though I am not sure if that's technically possible.
I could do it if I installed an insight server locally.
The reason I went with CORS is so that my server isn't constantly querying blockchain.info, which would lead to time outs.
Using CORS, everyone would get their own connection to blockchain.info so when one person got timed out it doesn't affect everyone else.