Opening Up Librelist.com Code, Looking For Volunteers

This is a quick announcement that I’m looking to turn librelist.com into a free competitor to google’s groups mailing lists. I’ve created a completely open bug tracker, RCS, and wiki site at support.librelist.com and put the most recent code in it. The goal is to make it a donation supported mailing list system that caters specifically to open source projects, in much the same way that freenode.net operates. To get there though, I’m going to need help.

Why?

I started Librelist because I was sick of Yahoo! and Google’s mailing list systems. It seemed to me that they were taking advantage of open source projects and user groups by creating policies that were counter to the open source ethos. Just a few of the grievances with these two services are:

  1. They make you log in just to see archives, which ruins any promotional and educational value your archives have.
  2. This forced login is not open, and thus the antithesis of open source.
  3. It’s impossible to get your own archives off if you want to present them in a more useful way.
  4. They make users jump through insane signup hoops in the name of “spam”, yet meanwhile they let spam fly through without any blocking.
  5. In many systems there are useless advertisements attached to the bottom or your emails, ruining the ability of a user to search for relevant information.
  6. Many systems allow a small minority to tyrannically control the group, applying censorship where nobody actually wants it.

The short version of the above complaint is that a commercial for-profit corporation has too many incentives to enact policies that are counter to a open source project. This isn’t to say that for-profit companies are bad, it’s just that if they can make money by tracking your behavior and serving you ads, then that will take precedence over giving your project a good user experience.

How?

Instead, we need a service that has incentives to stay free and cater to open source projects and the motivations of openly communicating with other collaborators. This is why I’m proposing that Librelist be run similar to freenode.net in that it should be developed by the same community and a not-for-profit operation.

Initially I think it’ll be cheap enough for me to just run since the hosting requirements are tiny. I pay effectively $1 a month to host it. If the hosting needs to change then we’ll just have a donation drive to cover the cost of hosting for a year.

In addition, the project can be developed as an open source project and contributors can join in to make it be the best mailing list system for open source projects. By creating the support site I’m hoping people can start putting tickets in for features they need, bugs they find, and contributors can grab the code and start hacking.

Having the source open like this also means that if Librelist.com ever “goes rogue” then the entire kit can be forked and moved to another server. This is even more relevant since each project can rsync down their whole mailing list each day, so Librelist will never actually own anything. This simple change to archive ownership means that there’s incentive to keep Librelist honest.

Finally, Librelist is GPLed, so that means everyone who contributes will always have access to the source and the right to see what gets done.

What?

With Librelist what I (and hopefully others want) is the following:

  1. No logins required to signup or see archives. Ever.
  2. No advertisements in the emails. Ever.
  3. Archives are owned by the list, and fully accessible via rsync or HTTP using JSON.
  4. Spam will be heavily filtered, and users will be able to mark spam as such.
  5. Nothing to allow tyranny of the minority or majority. It’s all about free speech and open communication.
  6. However, this is balanced with the above spam marking, and potentially a “troll rating” that’s similar to a spam rating.
  7. Entirely user developed, supported, and funded. I will make no money on this other than enough to run it.
  8. No user behavior tracking at all, apart from the fact that you have emails in archives.

Much of this feature list is already implemented in the current librelist.com features. Right now you can subscribe, discuss, do simple archive browsing and rsync down your archive as often as you like. It even blocks spam (although that needs improving).

When?

Right now.

I’m hoping to take more of a director and BDFL kind of role eventually, but right now making new features and deploying them is trivial. That means what I’m looking for is potential contributors and folks who want to punch in bugs and features that need to be worked on. If you have suggestions for implementing the above features, or other feature requests, then put a ticket into the support site and we’ll get hacking.

If you want to contribute, even if that contribution means discussing things, then join the meta@librelist.com mailing list and start talking.

If you want to get cracking on looking at the code and potentially contributing, then here’s what you do:

  1. Go get Fossil for your platform. It’s a dead easy 1 binary install.
  2. mkdir ~/fossils
  3. fossil clone http://support.librelist.com/ ~/fossils/librelist.fossil
  4. mkdir librelist
  5. cd librelist
  6. fossil open ~/fossils/librelist.fossil

Librelist is written using Lamson and Django which are both heavily documented projects. Go read their docs.

You’ll also want to read up on fossil:

After that, you’re set. Go grab or write a ticket and write some code for it. When you got things working (you may need help on setup) then you just run fossil server and tell me where to get your code.

Do that often enough and I’ll get annoyed and just give you an account so you can post your code directly.

Conclusion

I hope that other people feel the same as me. While I doubt Librelist will take on all of Google’s and Yahoo!'s group email system, I do really want to provide a free (beer/speech) system that caters to people like me. If you feel the same way I do, then come make that happen.