I was reading a review of Backbone.js when I came across a quote that anyone who is writing a software library or programming framework should keep in mind.

I look at Backbone, and I say to myself, "Oh, this is code I've written, or wish I'd written only better reviewed and field-tested than the last ad-hoc implementation of this I came up with."

That's it. You don't need a boatload of features and configurability. A framework should abstract a task just enough that it's better than rolling your own version of it.