In the Beginning

Monday September 19th 2005, 8:53 pm Printer Friendly Version
Filed under:AllPeers
Posted By: Matt

The AllPeers saga began in October 2002 when I visited Cedric (now our CEO) at his home in Aix-en-Provence. Instead of doing whatever it is that normal people do when on vacation (lying comatose on the beach, most likely) we spent an inordinate amount of time talking about Ced’s idea for a peer-to-peer community. Having run a couple of large online communities, he had experienced firsthand the cost (in servers and bandwidth) of supporting a growing user base with centralized infrastructure. He theorized that moving to a peer-to-peer architecture could result in significant cost savings and thus represent a real competitive advantage.

After mulling this over for a while, we started to work on a platform for creating peer-to-peer applications. The platform approach is particularly compelling in this context because it’s so hard to develop this type of application. By nailing the difficult bits ourselves, we aimed to make development of peer-to-peer software quicker and more accessible to a wider range of developers.

Since platforms don’t demo well, we implemented the first AllPeers service in parallel, for digital photo sharing. Both the platform and the first app were very successful, in my view. As first releases of a complex product, they are far from perfect, of course. But they have served as the ideal validation of our ideas and vision.

At the same time, our experiences with AllPeers 1.0 led us to two important realizations. First of all, decades of combined bad experiences with multiplatform development inside our engineering team had led us to develop a Windows-only product, with the idea that we would somehow tackle portability in the future. As it transpires, this type of networked software really needs to run on all popular platforms. Otherwise, even Windows users will hesitate to adopt it if their Auntie Frieda in Herzogenaurach, with whom they want to share photos, has a Mac.

Secondly, and more fundamentally, it dawned on us that what we were really doing was building a new generation of web browser: one with a structured framework for extensibility, powerful data storage/replication features and peer-to-peer communication capabilities. Leaving aside the obvious technical challenges, it was hard for us to imagine that we could impose a new browser on the world in the teeth of entrenched competition from big, powerful players.

Luckily, at about this time (mid-2004, in my recollection) Firefox started to creep onto our radar. I realized that this might be the ideal basis for a multiplatform release of AllPeers that leveraged an existing browser with great buzz and traction. Subsequent experience with developing on Firefox has only served to strengthen this view. But I’ll talk more about that next time.


2 Comments »

  1. Nice approach. Always thought that peer-to-peer support belonged into browsers. One thing I’d like to suggest: Try to get some basic, uncontroversial, and small level of protocol support into Firefox itself, so that your software is an add-on. Provide a teaser, so to speak.

    Comment by Ingo — 9/20/2005 @ 4:06 pm

  2. Ingo,

    Heh, didn’t know you were watching. :-) Seriously, thanks for the suggestion, it’s a good one. Certainly we are thinking a lot about “tease” people into trying out AllPeers. If you’re talking about getting support for our protocol into the Firefox distribution, this is exceedingly hard to do. These guys are pretty much rock stars at this point, so they’re getting sollicited from all sides. There is tons of stuff in AllPeers that I believe could be in the Mozilla kernel, but we won’t have the stature to lobby for that until we’ve proven our technology independently. Hopefully by Firefox 2.0 we’ll be in a position to make this happen, not just to help us become stinking rich, but also because, IMHO, we actually have some pretty darn good ideas.

    With respect to driving “viral adoption” in general, we’ve had a lot of ideas that are applicable in the short term:
    1) Our P2P protocol is going to be BitTorrent.
    2) Our resources are accessible using the standard Mozilla RDF interfaces (even remotely).
    3) We’re planning to let AllPeers function as an HTTP server, so you can publish your AllPeers “stuff” as HTML pages for those poor souls who don’t yet have AllPeers.
    4) …

    I dare say my next few posts will clarify some of these ideas, but this should give you a taste of the lines we’re thinking along.

    Comment by Matt — 9/20/2005 @ 5:01 pm

Trackback URL RSS feed for comments on this post. TrackBack URI

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

(required)

(required)