Mibbit

Mibbit is a web-based client for web browsers that supports Internet Relay Chat (IRC), Yahoo! Messenger, and Twitter. It is developed by Jimmy Moore and is designed around the Ajax model with a user interface written in JavaScript. It is the IRC application setup by default on Firefox.

Design
Mibbit's user interface operates entirely within a web browser and does not require installation of any software on the user's computer. Most modern web browsers that support recent versions of JavaScript are supported, including Mozilla Firefox, Internet Explorer, Opera, Google Chrome, and Safari. Mobile devices such as the Apple iPhone iPod Touch, and Nokia N800, and other platforms such as the Nintendo Wii are also supported.

Unlike typical web-based IRC clients, Mibbit makes use of a client–server design model. The user interface is written in HTML and JavaScript using Ajax programming techniques. The client's backend is written completely in Java and operates independently of the web server in a standalone fashion on the Mibbit server. This design differs from web browser component clients such as ChatZilla or Java applet based IRC clients such as PJIRC that operate entirely from within the web browser. It also differs from server-based web proxy IRC clients such as CGI:IRC where all processing takes place on a remote server.

Because the client–server design allows for a centralized Mibbit client server, Mibbit is able to offer extended functionality which is not present in the standard IRC protocol. Some of these extensions include a channel chat buffer that can be shown to Mibbit clients when they join a channel where another Mibbit user is already present, a notification for other Mibbit users that you are typing a message to them, and distinctive icons that allow identification of the device used with Mibbit such as an iPhone, iPod Touch, Wii, etc.

Mibbit supports the webirc (cgiirc) protocol which allows the client to send the user's IP address and hostname to the IRC server. Servers that support webirc allow Mibbit users to appear as regular IRC clients instead of appearing to connect from the mibbit.com domain. If webirc is not used or is unavailable, Mibbit puts the user's hostname in the client's realname field and encodes the user's IP address in hexadecimal and sends it as the ident reply.

Features
The Mibbit client has the ability to connect to multiple IRC servers, including servers that use SSL/TLS, can join multiple channels, and can be configured auto-join often used channels. Mibbit uses the UTF-8 character set by default but can also be configured to use other character sets. It supports nickname tab auto-completion, an input history for each tab accessible with the up/down arrow keys, aliases, user menu commands, and saving of user preferences. Mibbit can parse smilies, links, channels, nicks, and mIRC color codes, and can automatically create thumbnails for image links and URLs. In addition, Mibbit offers an integrated pastebin, an upload service, and can minify URLs. Mibbit also offers typing notification for other Mibbit users, a recent chat buffer for IRC channels when other Mibbit users are already on the channel, and extended whois information with user profiles.

Mibbit supports the Google API which allows the client to support a number of Google Services. Mibbit can translate text and conversations on the fly using Google Translate, Mibbit can also display geographic locations using Google Maps and supports viewing of YouTube videos.

In addition to the standard client, Mibbit also supports a widget client that can be embedded into a web page. The widget client supports most of the features of the regular client but does not support multiple server connections.

Reception
Mibbit has been praised by CNET and Lifehacker for its ease of use. Drupal administrators use it to add IRC widgets to sites, noting the benefits of its modular design. Mashable suggests Mibbit as an appropriate resource for those new to IRC.

Firefox support
Firefox 3.5 and beyond builds already support Mibbit as the default IRC protocol handler and support for encrypted ircs:// SSL/TLS connections is also included.

Abuse mitigation
Because Mibbit is effectively an IRC proxy it has the potential to be abused or used to evade bans and blocks. This has resulted in the client being banned from accessing some IRC networks and channels. Mibbit now supports DNSBL checking via the DroneBL service as a means to help block access from abusive users and botnets. Mibbit was listed as an open proxy in the DroneBL DNS blacklist in December 2008, and due to a database glitch mistakenly again listed in March 2009. This prevented Mibbit users from connecting to IRC networks that make use of the DroneBL service. Mibbit was added to DroneBL's whitelist to help prevent future service disruptions. On June 19, 2009 it was banned permanently from freenode, and a new officially supported open-source AJAX client was introduced.