GIFexplode – community powered web development


Let me share with you a very cool story about strangers coming together and building something.

I was browsing reddit yesterday, and I saw a thread entitled “Someone needs to make a Firefox add-on that lets you step through animated gifs frame by frame“. I thought “hey that’s a nice well defined simple idea” – just the kind of thing I love, so I registered a nice-sounding domain name and started looking at how to use PHP to split an animated gif into its component frames – I figured it couldn’t be too hard.

It wasn’t. Less than an hour later, GIFexplode.com was up and running with some bare-bones functionality based around some freeware code I’d found. I posted the link to reddit and thought “well it’s not quite a firefox extension but it’s close enough” (by the way, click any of the gifs on this page to see how GIFexplode processed them).

Within ten hours, other members of the reddit community had produced a working Firefox extension for GIFexplode, two bookmarklets, a logo, a front-end design and a spoof thread

not to mention the 700+ animated gif files that were uploaded in that first day.

Why did everyone pitch in like that? Well I can’t speak for anyone else, but I started working on it because I thought it would be an interesting challenge.

Fame? A little – but while I got a few upvotes on reddit and earned a little respect, that really doesn’t go too far online. Fortune? Unlikely – even if GIFexplode became as popular as imageshack or tinyurl (which it won’t), I’d still have to work out a good enough revenue model to cover the hosting and bandwidth charges. Over 1.5GB was uploaded on that first day, and if GIFexplode carried on at that rate I’m sure I’d be asked to upgrade to a private server pretty quickly. Dreamhost coped excellently with the traffic though.

So that’s the story of how GIFexplode was born and, as one commenter aptly phrased it, put in front of “a live firing squad challenge”!

As to the future? Well there are a few extra features I want to implement, but I really have more important work to be doing this month. I expect the traffic to drop very sharply and hit around 10 visits per day by the end of September. Perhaps I’ll post another followup in a few months once we have some more features and the code is a bit more robust.

But in the meantime, a sincere thankyou to everyone who chipped in – if I ever do become a millionaire from this I’ll make sure you get your slice.

Some random stats:

  • Around one third of the uploaded files were porn. I am amazed it wasn’t a higher proportion.
  • The bouncing gif (you know the one I mean) was uploaded at least 200 times – at one point I was considering making a static page just for that gif (I still may do)
  • The largest file uploaded was a 5.14Mb file of a cicada molting
  • The non-porn files consisted mainly of people jumping around, trippy stuff, cartoon clips, cats and other animal antics ;0)

I’ve archived everything that was uploaded to my local machine. Is there anything you’d like to know? Any ideas or suggested features?

update: For the moment, you can browse what’s being uploaded (lots NSFW). I will clear the contents of that directory every day or so, so don’t bother linking to the files there. A better way of sharing these gifs will come in a few months.

Bookmark and Share


Related Posts:

, , , , , ,

  1. #1 by ahoho on August 2, 2009 - 4:20 PM

    is the bouncing boobs shay laren? jesus, i know that girl IRL and see her everywhere online.

  2. #3 by P on August 3, 2009 - 10:14 AM

    if I may make a suggestion as to file space, do some processing on the images, optimize them and whatnot, then find out if the image already exists on the server, trading off using space for cpu usage.

    • #4 by user24 on August 3, 2009 - 10:57 AM

      Yes, absolutely.

      I plan to rewrite the code pretty much from the ground up.

      When you upload a new file, it’ll MD5 the contents and add that entry to the database, along with details like upload time, dimensions, meta-data if applicable and so on. It will generate a unique short URL for the file at that time (I’ve already got the code for that in place on another site of mine). Then it will split the file into its component frames and display.

      The component frames will be deleted 24 hours after the last viewing. The original upload will be deleted 10 days (or so) after the last viewing. This way popular files will be served almost statically – no splitting needs to take place, and intermittently popular files can be re-split on demand.

      If you upload a file that’s already been uploaded within the last 10 days, it will just redirect you straight to the existing file.

      I think that represents the best way to manage both space and server resources.

  3. #5 by Jer on October 1, 2009 - 10:37 AM

    I’m disappointed! I’ve gone through about 30 or so images, and so far only one porn gif… geez… ;)

(will not be published)