January 19, 2007

The birth of a FOSS application

Author: Brice Burgess

Late in 2005, my brother needed free, easy to use mailing list software to reach out to some 3,000 fans he acquired while touring the country with his band King Wilkie. As his technical expert, I was unable find a FOSS application that met his need for a free, simple, Web-based newsletter that provided the flexibility of mailing subgroups. I decided to roll my own under the GPL -- partially to give back to the FOSS community, partially to practice new programming techniques, and partially to provide a solution. What I learned may be as valuable as the software I helped create.

Before deciding to create yet another mailing list application, I had to ask myself whether it was worth the effort. Was the software-to-be significantly different than what was already available? Could I collaborate on an existing project to achieve my goal? Would it take too much time?

I searched Google and popular software repositories Freshmeat, SourceForge.net, and Hotscripts with keywords like "HTML Mailer," "PHP Mailing List," and "Newsletter." I discovered many mailers, but none matched my requirements. I needed software where subscribers' field values dynamically define what address groups they belong to. This would allow the band to mail volunteers in New York, for instance, by creating an address group named "NY Volunteers" matching subscribers who checked that they wanted to be a volunteer, and who selected New York as their state.

Since I could not find an existing project that matched my needs, nor one I could contribute to without forking, I had to ask myself if I had the development time. The good news is that I was on an extended holiday, working out of a Virginia basement. I had the time to spend and a relatively loose deadline, so I decided to begin my first "serious" open source project. I soon learned that such projects require more devotion than most people imagine. I sat down with pen and paper and planned my feature set, named the project bMail (I usually prefix my projects with "b," my initial), built the program's HTML skeleton, and sifted through the Open Source Web Design site to establish a look and feel. I created the bMail project on SourceForge.net and set up version control.

Early bMail development was kludgy, lacking in peer review or community feedback, and done in haste to meet the band's minimal requirements. When it reached a "usable" state in February 2006, I decided to make initial announcements on Freshmeat.net and Hotscripts.com. These sites are the New York Times of FOSS scripts, and their listings are free, re-occurring full page ads. The publicity brought in interest from the public, and with the public came the need to make things better. The incompleteness, lack of documentation, and ugly code practices were, frankly, embarrassing. All of a sudden bMail became a daunting task -- there was more to be done than could be accomplished by a single unpaid person. My milestones seemed far-reaching, and my forums were full of sysadmin 101 responses.

To top things off, I received a cease and desist letter about the bMail name, which turned out to be the same as an established Windows-based mass mailer. I was ready to abandon ship. It would have been easy to fold. After all, I had already accomplished my main goal of providing "usable" mailing list software for the band.

Positive public reaction, however, gave me new inspiration. A handful of users expressed true interest in the project. I began to receive translations, the first being Romanian. Corinna Thoeni, an Italian developer, inquired on pitching in and now maintains an experimental SVN branch. Stephane Faroult, a French SQL expert, volunteered his advice. Carey Williamson avidly volunteered his support in the forums. A community was forming, and it proved to be a source of ideas and motivation. I began work began on refactoring the framework, and in late April 2006 the project was renamed poMMo -- short for "Post Modern Mass Mailing Organizer," "Penniless, Open Mass Mailing Organizer," or "Piece Of My Mother's Okra."

Thinking about starting your own FOSS project? Here are some resources and doctrines to consider.
  • Use the proper tools
  • Community Necessities
    • Forums
    • Mailing lists
    • IRC
  • Open policy
    • Public mailing lists
    • Trust in users
    • Development roadmap
    • Development blog
  • Support
    • Developer and user documentation
    • Friendly, prompt support
  • Preparation
    • Be prepared to take responsibility
    • Time dedication
    • Timely bug and security fixes
  • Eye candy
    • Online demonstration/video
    • Screenshots
    • Nice logo

The community soon became poMMo's lifeline, and I began committing more time to the project. My developer buddies soon noticed all the time I was spending on poMMo, and asked "Why poMMo? Why not PHPList?" It's the de-facto FOSS newsletter mailer, sporting advanced features such as subscriber fax. I told them, "You'll see." I wanted to create a simpler alternative, a choice, another fish in the FOSS pool. While I certainly could have forked a trimmed-down hard-coded version of PHPList that would have worked for the band, the flexibility I envisioned in poMMo's customizable subscriber fields and filtering groups required a different architecture than what existed in all the other newsletter applications I saw.

Above all, poMMo is a collaboration effort. I'm always disappointed to hear open source project members say that they had "their developer" modify an aspect of the program without ever hearing from that developer or seeing any of the code. This is not progressive. I hope to transition poMMo development efforts to a wider group of individuals. I am always happy when others seek to help out, maintaining open discussion and policy. Admittedly, having detailed contributor guidelines and strong documentation would help, but this project is still in its infancy. We do have a game plan, however -- a vision for version 1.0.

And so poMMo development continues, as it strives to fill the niche of a simple, flexible FOSS mass mailer that the world can find utility in. We introduced the third framework rewrite in December, and that is beginning to stabilize. Rowan Walker, an Australian HTML wizard, has contributed a breathtaking theme that can be seen in the online demo. A slew of logos have been submitted, and the program has been translated to 12 languages so far. I have not asked anyone for their contributions -- they have all come out of the blue by good people around the world.

At this point the software is far from complete. The community forums and feature list grow, the bugs come and go, developers hope for donations, and downloads increment. Such is the life of a Free Software project.


  • Open Source
Click Here!