You can even define your own components. For example, you could define a component called FollowsMouse which means the sprite will follow the mouse cursor.
The main issue so far is that the documentation is sparse and the examples are not at all up-to-date. When you create an entity, you do it like this:
obj = Crafty.e("list", "of", "included", "components");
However it turns out that the capitalization style of components has changed:
// examples say to do this:
obj = Crafty.e("2D", "canvas");
// when in fact you do this:
obj = Crafty.e("2D", "Canvas");
These types of problems are very difficult to track down, since there is no failure notice when a required component doesn't exist. Instead, the system just ignores it and your entities don't render. I typically follow the adage, "the bug is not in the library, despite how much it seems like it" and yet, sometimes the bug is actually in the library (or in this case, the documentation).
There is probably a few other hiccups, maybe I'll make a few tweaks to the library and send it over in hopes they'll merge a patch in.