They’re both great, they both have a very useful components that it’s just not easy to give up on one of them, it has been the same since Richfaces 3.0 and Primefaces 1.0.
Long story cut short, what happens when you use them together is that Richfaces’ components works “almost” normally, while Primfaces’ just don’t.
The normal components like panels, and buttons doesn’t seem to have much trouble, but components that uses extensive Javascript and Ajax actions such as calendars will be a trouble running.


What seemed to be the problem is two different versions of jQuery library file and they are both invoked with the same resource name, so it’s being loaded twice. The second instance of jQuery script overwrites global jQuery variable.
Now what I did to help solving this issues is calling the resource manually for it to be considered the only resource used by both, and no overriding to occur, the next snippet did the trick for me:

<h:head>
    .....
    <h:outputScript name="jquery.js" target="head" />
</h:head>

If that didn’t work out for you, comment and we might figure out something together.

This article was tested using: JSF 2.1.2, Richfaces 4.0, Primefaces 3.0.M1, Glassfish 3.1