About openFace
March 23rd, 2008 | Back to Blog Listing


The first openFace logo
Welcome to openFace!
...online archiving software

It's been over three years since I decided to embark upon my own personal content management system (CMS) specifically for powering my personal archival space on the internet, www.kevinludlow.com.

My first version of such a software package was designed under the guidelines that database designs were not only unnecessary, but also that they provided gaping security problems to the average user. As a result, my first CMS (which incidentally has powered www.kevinludlow.com for the past several years) was designed such that the administrator could use databases for support, but that the resulting website would be 'built' and hence all pages would actually be static. Given the system was driven by pluggable modules, it was titled staticMOD.

Though the staticMOD system worked well, it became more and more clear that in order for a CMS to be truly dynamic, it could not rely upon the administrator to 'build' new database remarks into the static pages. After coming to that sad realization, I discontinued building the finer features of staticMOD

In the summer of 2006, I began working on new concepts for how a true personal archival package should be built, and specifically how it should differ from the typical content management system. The system should avoid more technical features commonly used for allowing administrators to set up slashDot style websites, and should rather focus on the aspects truly desired by users: photo support, video support, personal blog, contact capabilities, and etc. Additionally that all aspects of text should be taggable in a wiki-like style thus allowing visitors to truly learn about the website owner's world.

After over a year of here-and-there planning, the first bits of code were written on the 19th of July, 2007. From then on, the software package has slowly been transformed into the vision I have had for it all along.

Some of the more interesting features, in my opinion, deal specifically with how entities are tagged throughout the openFace system. For example, say you are looking at a scanned photo over 80 years old of relatives, perhaps your grandparents. openFace has the unique ability to not only let you discern who is who in the picture, it will also tell you roughly (or in most cases exactly) how old the individuals are in the photo. Additionally, you have the ability to click on the individual and read more about them and how they pertain to my life. The same profile display will link you to various stories about the individual, any video footage I may have of them, some personal information, and of course will allow you to view all images with said individuals.

As far as the look of openFace goes, it may strike you that the website has a remarkably similar look and feel to Facebook. Though I suppose it is safe to say this is no coincidence, no portion of Facebook was used to design this website. Additionally, no codebases, external or otherwise, were in any way borrowed from Facebook. I simply feel that of the social networking sites available online Facebook is the only one that has done it right as far as a clean interface goes. My imitation of that cleanliness is nothing shy of flattery to the web-layout team over at Facebook.

To expand on the previous statements, all code was written from the ground up in Linux shells using nothing more than VIM. The codebase is primarily written in PHP, though it also relies heavily upon JavaScript, CSS, and of course HTML. To date, the entire codebase (including comments) is in excess of 16,000 lines. The entire API is also documented with the help of Doxygen.

Though there are still many features and functions on the way, some of which are even discussed in the former paragraphs, I hope you'll enjoy the first new version of my content management system personal archival system, openFace!