We talk a lot about portability. It’s because we believe it’s a crucial part of the Internet. Unfortunately, for most services it’s simply not a priority.
Making URLs portable
It’s not easy to make URLs portable. They consist of several components which are not typically owned by the end user.
First off there’s the domain. Chances are that you don’t own facebook.com which means you can’t take your Facebook profile with you somewhere else.
Second there are these unique IDs. They’re typically long alpha numeric strings which represent some record in some database. The problem is that they’re always global for that site. You just get a random ID that no one else on that system has. The problem here is that if you upload a photo to Flickr it might have an ID of abc123 but that same photo on another service might have an ID of xyz987. These IDs don’t mean anything to the end user.
How does OpenPhoto make URLs portable?
You can’t really talk about portability without talking first about ownership. In order to make URLs portable we need to make it so that you own all the components of your URLs. We’re doing that in two ways.
The primary and most important way is that you have the option of owning the domain that your photos are accessed from. This applies to your public facing website as well as your API. It doesn’t matter if you run the OpenPhoto software yourself or if you go with the hosted service we’ll be providing in a few months. If you own a domain then point it to your OpenPhoto site and you’re half way there.
The second way is to let you own the IDs of your photos. Because you don’t share a database with anyone else we’re able to provide you with IDs for your photos that are namespaced for you. This means that the first photo you upload will have an ID of a and your 26th photo will have an ID of z. The same applies to every single OpenPhoto user. This becomes extremely important when you switch hosts or decide you want to change from the hosted service to one you install yourself. Your IDs will remain intact.
The combination of these two mean that every URL for your photo will remain the same no matter what OpenPhoto service(s) you use.