I'm an Admin for a larger than SMB company. They've been asking for an internal IM system, and based on my testing, this looks like a really powerful option! Something I could probably influence a contribution to.
One no-so-minor item that I noticed right away during my multi-endpoint testing is, when I update one client's status, it doesn't seem to update other clients with the new status ("Free to Chat," "Away" "Do not disturb," etc.) I have to assume that Spark is either slow-polling or OpenFire is using some stateful connection...not sure which, but either way, it would be very valuable if said status would be updated pretty regularly, and I don't think it should be difficult to implement.
Just a suggestion,