- RequireJS (or something like it) is awesome and I'd say totally necessary, in my opinion, for having manageable frontend projects. At my company we store all the JS in large monolithic files, and working with it is an enormous pain.
- It requires a lot of planning to get everything right without doing lots of refactors. Probably common knowledge among experienced frontend developers, but I found myself putting in container divs and such all the time.
- There are some choices on how to communicate between views, and I don't know what works best, but I chose to pass around models with bound events. It works, but as the project grew larger I felt less comfortable.
One thing I would like to incorporate in the future are Backbone.Relational, since some of my models have a one-to-many relationship, and I found out halfway that relational would handle that more cleanly.
I still find CSS annoying (yay for twitter bootstrap at least), and the most annoying thing when doing my project was that there's no simple way of vertical aligning a div. Also IE is a pain and I'm glad this a prototype so I just didn't bother really caring. Maybe my views on CSS will change one day, but more likely is that CSS will get enough frameworks around it that it won't be so bad to work with.