All in the <head> – Ponderings and code by Drew McLellan –

Call For Hackers

Those who’ve been following for a long time may remember a project called Mailio that I announced back at the start of last year. To recap, Mailio is a web based email client. The concept is that it enables children to use email to communicate uninhibited, keeping away the dangers of viruses, spam and poor judgment. Mailio also serves as a useful introduction to email. The interface is really stripped-down and basic, but is based on a typical desktop email client, making it an effective training tool for youngsters.

I had a few different motivators for starting this project. The primary reason was the the resident small person needed a mail client, and we weren’t too happy about the idea that she might be exposed to unpleasant spam and viruses. Leading on from this, I recognised that if we were having the problem then a lot of other people would be too, so the plan from the outset was to solve the problem in-house and then make it available for others too benefit from. In addition to this, I’d not done much PHP at the time (I was primarily hacking on ASP back then) and I wanted a project to help flex my PHP muscle. (That sounds ruder than intended).

The principals are simple. Mail can only be sent and – more importantly, received – from addresses listed in a parentally controlled address book. As a parent, you set the address book up with the names and addresses of friends and family, and any incoming mail from an unrecognised address gets syphoned off into a list for approval. Technically, the aim from the outset has been for the app to be as portable as possible. It stores data as XML so to not require the presence of a database server. The goal is that it should be possible to upload the files to a regular shared hosting account and off it goes.

All sounds great, right?

A lot has happened since then. Mailio is still running strong locally, and is working well for the small person. I’ve not managed to get it to a stage whereby I’m happy to release it for other to use, however. Basically, it’s working great but there’s still a way to go. Off the top of my head, the main tasks are account management (POP3 details are currently hard-coded), display of multi-part emails, and the chunky task of the whole parental interface. At the moment I manage the parental side of things by SSHing into the server and hacking nodes from one XML file to another, and whilst that makes me feel pretty 1337, it’s not the ideal solution moving forward.

Once the basics are done, I’d like to release an initial version, and then begin working or some fun stuff like throwing some ajax into the mix and trying to really add some value to the whole children can have email too thing.

Looking for help

As much as I’d love to, I can’t do all this on my own. I have lots of stuff going on and if in 18 months I’ve not found time to get Mailio to a release level, then the chances are that it’s not going to suddenly happen without change. Ordinarily I’d just forget about it and throw the thing away, but I honestly believe this is too useful a project to give up on. I really want to see it to release, by hook or by crook.

So I’m looking for some people to come on board and help. Primarily, I could use a decent PHP hacker or two who are fluent with writing tidy class-based modular PHP. Currently Mailio uses a lot of XML and XSLT, so any experience in that area (particularly with all the new stuff in PHP) would be really handy. But obviously I’m asking for people to donate their time and expertise, so really being willing and having some time to give is the most I can ask.

What do you get out of it? Well, the chance to work on an interesting project with other like-minded individuals, a sense of accomplishment, and something interesting to put on your CV/resume. If you have any small people in your life, you can help them out with a nice safe email client too. You can’t lose!

If you’re interested in being involved, then a hearty thank you, and either leave a note in the comments or drop me an email. My address is in the sidebar.