Good means stable and reasonably mature, has an API of sorts (i.e. can
be controlled through scripting or the like), and made for SPS/ WSS
Document Libraries.

Any tips?

Ben