Monday, March 1, 2010

Mailinator and (not) Death-by-Popularity

As far as I know, Mailinator was the first website of its kind. A website to accept any email at all, no sign-up, no registration. Obviously, email websites surely existed before but not with this "no one owns any account" twist. And what a twist it turned out to be. Check out the original web page in 2003 at the Wayback Machine (including the "its like flicking a booger at spam!" original tagline!)

Needless to say, copycat websites showed up fast. And that's a decent indicator that a new idea is a good one. Or at least an interesting one. As I've (and many others have) said before ideas by themselves are basically worth nothing. And any good idea is destined be copied, stolen, and taken credit for. Execution is the key.

If you don't believe me - here is part of Mailinator's terms of service present on every inbox page:

"You agree to hold ManyBrain, Inc./Mailinator harmless from any damages caused by loss of emails, content within emails, damage to your computer or innocence from viewing emails, direct or indirect use of this system, or anything else you can think of. Use at your own risk."

I wrote those words a bunch of years ago. I'm no lawyer so I tried to come up some simple words to get the message across.

Now. Go to google and search on (quoted) "computer or innocence". Here's a screen shot of what I got.

Almost all entries on this page are Mailinator copycat services that not only "borrowed" the idea of Mailinator - a few even "borrowed" its terms of service !! Talk about uncreative copying. :)

For the public record - again, I'm no lawyer so if you unauthorizedly copied my terms of service and get in trouble - you can't blame me.

Now keep in mind here - theft of ideas is all part of the game. It is, for better or worse, part of human nature. And as I outlined here - the execution and evolution of Mailinator was mine, but the idea of no-sign-in email wasn't. It was my old roommate's (who at times, has helped out on Mailinator copy and such).

Google didn't invent the idea of internet search. Facebook didn't start the social web. They just made it better or more usable - or something. But they won. Sometimes taking a great idea and twisting it just a little, turns it into something great.

Mailinator however is an interesting beast. It is a hard business to monetize. And that's just fine, so long of course, it doesn't cost a ton to run.

But therein lies the rub.

There's a strong sentiment in the web industry that performance, at many levels, doesn't matter. That you simply can "buy another server" and solve many performance problems. And that's true. And generally that's a good idea. I mean, wasting a lot of developer time (who could instead be creating new features) on performance optimization is dubious. Especially if you can throw down 2 or 3 thousand dollars and simply buy another machine to solve the problem.

I wrote here that the initial incarnation of Mailinator started to die at around 800,000 emails per day. If you want to make a Mailinator copy - its really not very hard. You can do it with almost all off-the-shelf (and free) software. Sendmail to receive and some sort of webmail front-end to view.

That's it. And that's largely what Mailinator was when it started and it took about a weekend to setup.

But then... I ran into that 800,000 a day problem. This was a performance problem of epic proportions. That is, the site was perpetually crashing. I needed a solution.

One solution, as I pointed out was to "buy another server" but that would have cost the 2 grand plus the ongoing monthly cost to pay for it. And Mailinator was not making enough to cover that at all. I would have had to start paying for Mailinator out-of-pocket to keep it going.

And maybe worse - that would have just solved the problem temporarily until I needed yet another server.

So instead, I did the wrong thing. I rewrote the system from scratch. Threw out the off-the-shelf stuff and built a software system that was customized for Mailinator. Again, financially this was a poor decision (i.e. cost of my development time) but luckily Mailinator is a hobby too so I wrote it off as just that.

As soon as I brought up the new software email jumped to 3,000,000 a day. The old system was not only choking at 800,000 it was refusing connections. I then upgraded the network at the time from 10mbs to 100mbs and the email again leaped to 6,000,000 a day. That is, the new software was fast enough to expose that we were now saturating bandwidth.

(Mailinator has now seen >25,000,000 emails per day)

So that's all fun stuff - but remember those copycat services? Over the years, I've seen 3 of them rise in popularity - and then die (as in literally, site gone, blog explaining it became too expensive to run).

That's what I meant when I said Mailinator is an interesting beast. Its a paradigm that's extremely easy to reproduce - so long as you don't actually get popular (or you find a great way to monetize).

Seems like the web has a lot of opportunity for services like this. Cool ideas that in many senses are just too costly to keep running. Then again, the price of tech comes down - and performance increases.

A Sendmail/Webmail Mailinator today on a modest machine could probably handle a fair bit more than 800,000 a day.

Every few years I try to re-evaluate every old idea I dropped because I felt it wasn't technically/financially feasible. There's a perpetual convergence of faster tech and cheaper prices.

New things become feasible every day that weren't feasible yesterday.

Got any ideas?


Arnt Witteveen said...

I saw a review once of an anti-spam box that used an original approach. IIRC, instead of accepting every email it gets, it 'refuses' every email (or probably the connection request from the sending smtp server) the first time it gets it, with an 'overloaded, try again in xx seconds' return code. The theory was (and appeared to work at that time according to the review) that spammers would configure their sending machines to give up right away.

This also made me wonder, I wonder, do you get the same amount of email throughout day? Or are there peak times and slow times?

Anonymous said...

This "refure 1st try" is called greylisting and is still useful (although not so much as in the past). Mainly eliminates infected windows machines which send tons of spams. The botnet code is not so big, so they don't implement proper email server, they just try to send email to as much addresses as possible. And for this the grelisting still works.

Rykel™ said...

Hey, for so long I have LOVED the idea of Mailinator, but had always thought that it was some spam-related service set up to phish logins etc.

I never knew that a real, talented programmer was behind it all and with great intentions!

Thanks again pal for keeping Mailinator in service.

Lee said...

Very interesting post! It's nice to get some background information.

Steve Morgan said...

Great idea!

You allude to it but never state it - so I'll just ask (putting aside British reservedness...). Does it actually fund itself yet!?

Jonathon said...

Mailinator has been very, very useful to me. I really should buy some swag just to show my support. I thank you for keeping it up all these years out of the goodness of your heart (and your hobby inclinations).

It's fun to read your posts about tweaking and improving performance. I don't understand them, but if I did, I'd want to be doing the same thing. I guess it's a perfectionist thing.

Best regards!

Anonymous said...

Loved this idea since the beginning, i like it even more now that you shed some light on it's inception. And the "success doom" :) that an improper architecture can cause.

Likai Liu said...

From 0.8mil to 25mil, are you saying your software rewrite increased the performance by 31x? Then the cost of 31 machines is a sizable paycheck, not to mention at that point you'll have to hire someone part time to maintain the server farm.

But that financial consideration does bring up an interesting perspective: if Alice writes software that is 2x as fast as Bob's and if they both finish at the same time, then Alice should be paid twice as much as Bob. And even if the software takes Alice longer to write, her software saves 1/2 of on-going hardware maintenance cost, so she should still be paid 2x.

However, if Alice's employer expects her to throw away her software every 2 years, they would be better off hiring Bob. It's like, if you're going to throw away your cup after each use, you are not going to be using a nice $10 glassware (Alice), but a 10 cent plastic cup (Bob).

Anonymous said...

thanks for this little bit of history, and of course the truism that execution of an idea can be more important than the idea itself.

Out of curiosity, what does it cost to run mailinator?

guido said...

hey there, just a comment, this old logo is way cooler than the current one. bring it back!

Anonymous said...

mailinator is GREAT. i use it once a month!!!
it is such a good service that a lot of other services block the mailinator domain including the alternate ones.

would it be possible to change some alternatives more often, to win the race?
thanks - keep on going - you are the original : Anatomy of a Spammy Campaign

Mailinator is a popular disposable email service. It's also become a great tool for QA Teams to test email receipt, acknowledgment, au...