governance dead 2008

Pidgin Funpidgin/Carrier

Fork of Pidgin that restored manual textbox resizing and other minor UI preferences.

What it is

Pidgin is a multi-protocol instant messaging client that connects to AIM, MSN, Yahoo, ICQ, IRC, XMPP, and many other IM networks through a plugin architecture (using libpurple). It runs on Linux, Windows, and other platforms. The fork Funpidgin/Carrier was a straightforward patch set on top of Pidgin, primarily restoring the manual text input resize and adding minor UI customization features.

The story

The Funpidgin fork is the fruit fly of open source drama: tiny, short-lived, and yet perfectly illustrative of a much larger principle. It started with a text box. Specifically, the text input field in Pidgin version 2.4, released in 2008, which could no longer be manually resized.

Pidgin (formerly Gaim) was the dominant open source multi-protocol instant messaging client, supporting AIM, MSN, Yahoo, ICQ, IRC, and dozens of other protocols through a single interface. When version 2.4 landed, it replaced the manually resizable text input area with an auto-resizing one that grew and shrank based on how much text you typed. Sounds minor? Users didn't think so.

The community erupted. Bug reports flooded in. Users who had customized their chat layouts were furious. The input field was sometimes rendered nearly invisible, and the auto-resize behavior felt unpredictable. Users asked for a simple preference toggle — let people choose between auto-resize and manual resize. The Pidgin developers refused, closed the bug as WONTFIX, and were, by many accounts, combative bordering on hostile in their responses. It became a textbook example of 'developer knows best' syndrome.

A fork called Funpidgin appeared, restoring the resizable text input and adding other user-requested features the Pidgin team had rejected. It was later renamed to Carrier. The fork attracted some attention and press coverage (Jeff Atwood wrote about it on Coding Horror), but it never achieved critical mass. The reality is that forking a chat client over a UI preference is hard to sustain — you need continuous protocol updates, security patches, and community energy, and a text box grievance doesn't generate that kind of long-term motivation.

Funpidgin/Carrier quietly died, and Pidgin itself faded into irrelevance as instant messaging moved to proprietary platforms (Facebook Messenger, WhatsApp, Slack) that multi-protocol clients couldn't support anyway. The text box that launched a fork became a footnote in a story about a dying software category.

Timeline

Pidgin 2.4 released with auto-resizing text input, removing manual resize

Bug reports and complaints flood in; developers close as WONTFIX

Funpidgin fork announced on SourceForge, restoring manual text resize

Jeff Atwood's Coding Horror blog post brings wider attention to the controversy

Funpidgin renamed to Carrier

Carrier development slows to a crawl

Carrier effectively dead; last meaningful releases

Key people

Sean Egan
Pidgin lead developer
Mark Spencer
Gaim/Pidgin original creator
Jeff Atwood
Coding Horror blogger who covered the controversy
“The text input area controversy is a textbook case of developer hubris.”

Impact

Funpidgin/Carrier had virtually zero lasting technical impact — it died quietly and Pidgin itself became increasingly irrelevant. But the fork's cultural impact was outsized. It became the canonical example cited in discussions about developer-user relations, the 'WONTFIX' problem, and the arrogance that can infect open source maintainers.

The incident demonstrated that even trivial-seeming UX decisions can become existential when developers refuse to engage with user feedback. It's taught in open source governance discussions as a perfect illustration of how to alienate your community. The lesson isn't about text boxes — it's about whether you listen to the people who use your software.

Lesson: Closing a bug as WONTFIX while being combative to your users is a great way to trigger a fork — even if the fork dies, the reputational damage is permanent.