I spent a few days looking for a customizable real-time chat component to use on our new project. There were plenty of excellent components (mostly built in flash) that you couldn't customize at all. Since we need a bunch of features that those chat clients don't offer, they were only tempting dead ends. In the end, I decided to roll my own. In the search process I ran across Juggernaut, a Rails plugin for persistent connections. Building basic chat off of Juggernaut has required adding a couple feature enhancements (a system of handlers for connect and disconnect events), but overall it's been a solid base. My new chat project is called Zinzani; most of the functionality is now in place, although the default template is still very ugly.

I'll try to make http://zinzani.rubyforge.org/ a functional demo soon.