Fighting spam with Mollom on Glassfish

One of my main projects for the past six months has been the conversion of the Mollom spam fighting service from an isolated Java project into a Java Enterprise project. Recently, as part of this conversion, we've migrated the Mollom Backend to the Glassfish 3.0.1 Application Server. This is, however, only the beginning....

The Mollom project, co-founded by Dries Buytaert and Benjamin Schrauwen, provides a "software as a service" backend that tells clients whether a specific comment is spam or ham. If Mollom is not sure how a specific post should be classified, it returns "unsure," and clients most often then display a CAPTCHA challenge to verify the 'humanity' of the poster. The whole process is self-learning, and a number of parameters (text analysis, IP addresses, and included links) are taking into account. I'm continually amazed by Mollom's accuracy.

Read more

Why our customers love us…

During economic recessions, service companies usually suffer. It actually makes sense. Companies try to cut costs and the first cuts being considered are at companies offering services that fall outside the core business of the cost-cutting company. Nevertheless, Mollom is handling the worldwide crisis very well. One might argue Mollom is not a typical service company but rather a product company. That is partially correct. Mollom builds a great product and therefore it has a product-centric strategy. Though from an external perspective, Mollom is definitely offering a service to 3rd parties: we prevent spam on interactive websites of our customers. Then why is Mollom still going strong? Easy: we offer a substantial, even measurable return on investment.

Read more

Mollom module for Drupal 7 released

Earlier this week, we released the first stable version of the Mollom module for Drupal 7. The release denotes a major milestone for the engineering team at Mollom, because we started to track the development of Drupal 7 very early and kept the module always compatible to latest code in Drupal core.

Read more

Mollom 2010 retrospective

2010 was a good year for Mollom. We ended the year with 352 million spam messages blocked since our start in 2008. The number of spam messages Mollom blocked grew by 35% compared to 2009; 190 million spam messages were blocked in 2010, not counting our work for Netlog. Further, we ended 2010 with a spam classification efficiency of 99.95%. This means that only 5 in 10,000 spam messages were not caught by Mollom, an improvement over our 2009 efficiency rate that should be noticeable to our users.

The number of active sites protected by Mollom grew from 15,000 at the end of 2009, to almost 28,000 at the end of 2010. The number of paying customers doubled. In my 2009 Mollom retrospective, I wrote about how we were able to steer Mollom to profitability. That was a big win, because we're bootstrapping Mollom and it proves our business model works. In 2010, all profits were used to improve the service.

For example, we've made a lot of improvements to the Mollom module for Drupal. Among the most important include the ability to retain spam instead of discarding it, better spam protection for user registration, honeypot support, blacklist support, a refactored internal API with Webform integration as a result, profanity support, usability improvements, and more. We also ported the Mollom module to Drupal 7 -- and it's already used by thousands of Drupal Gardens sites.

We also used our profits to extend the backend team with two part-time engineers to give the Mollom backend a massive overhaul and to improve our operations. The new backend is not visible to our users, but it supports our growth and acts as the foundation of a number of new features and products that we hope to launch in 2011.

We also created more sophisticated tracking metrics like the average lifetime value of our paying customers. For example, the average customer lifetime for a Mollom Plus customer, averaged over the past 12 months, is 21.6 months. This translates to a monthly churn rate of 4.6% and an annual renewal rate of 57% -- calculated as (1-0.046)12. While that isn't bad for a company in our stage, it is something we want to improve in 2011.

Content on the web is growing exponentially. Most of it is spam or otherwise undesired content meaning Mollom has the potential to become 'the garbage collector of the web'. It is rewarding to know we blocked 190 million spam comments in 2010, but there is so much more we could do. I'd love for Mollom to get even more reach in 2011.

Our primary goal for 2011 is to build the best spam filtering and moderation tools available. Both by improving the user experience of our existing tools, but also by launching several new products and features. I'll post more about these in a couple months once we've some progress to show. The bottom line is that many organizations ponder how to manage user engagement more efficiently, and we believe that over time, Mollom can be a big part of the answer.

All things combined, 2010 was a great year for Mollom. We're stronger, better and bigger than in 2009, and we've created a great foundation for 2011.

Mollom gets a new backend

Over the past five months, we've been giving the Mollom backend a massive overhaul. To support this effort, we've extended the team with two part-time engineers; Johan Vos and Thomas Meire, who jointly took on the task of converting our old Java backend to a new Java EE backend based on Glassfish. (Glassfish is the Open Source Reference Implementation of the Java EE specification.) Along the way, we upgraded our servers and rolled out Hudson to provide for continuous testing and deployment of the backend across all our servers. All in all, it's been a productive summer and fall at Mollom.

Most projects are a mix between domain-specific problems and common, mostly infrastructure related, problems. The Mollom backend isn't any different; in fact, we may have more infrastructure related issues than your average project. With our move to Glassfish, we'll have to worry a lot less about memory management, REST handling, XML parsing, database connection pooling, and all the other ancillary things that make big systems work. That frees us up to focus on the domain-specific problems -- the actual moving parts of Mollom itself -- and will help both support our growth and allow us to implement new features and improve the old ones.

Earlier today, we rolled out the new Glassfish-based backend on all of our servers. Though these changes should be transparent to our users, it's possible you might notice a short blip in Mollom's effectiveness. It is never easy to migrate large amounts of data in a running system, while simultaneously keeping it running. So, though it may take a few days for Mollom to build back up to its normal levels of accuracy, we're confident it will do so in short order.

We're confident that the backend changes we've implemented will pay -- and that should be a win-win for all of us.