Monday, May 12, 2008

What is WebFront?

Front DoorUnderstandably I get a lot of confused looks and questions when asked what I'm doing and I try to explain this. I'd prefer to keep philosophical clutter out of ObremSDK wiki and leave it up more as a reference to functionality. So here it is ...

WebFront will initially be a web service which allows you to produce a solid, fully-functional site from a Blogger blog by utilizing free-tagging and meta elements to determine how to process individual posts. Each post is seen as an arbitrary node which may represent a singular page, list of links (e.g. portal) to other pages on the same site, filter for additional information (neighboring pages, global text/links, or ratings), or lastly a XML stylesheet. The intermediate format for the page before it is processed by XSLT is an RSS 2.0 document.

Technical Overview

Starting the process is a .htaccess on your web host which rewrites all HTML page URL's. An index.php handles all these requests and turns them into a HTTP GET call to the WebFront command in the NeilStuff API web service. For example:
http://api.neilstuff.com/?c=WebFront&dn=example.com&path=/photos/page01.html&cfgkey=abcdefghi
When the main function is run it loads and decrypts the configuration from an internal variable based on the key; this contains the Blogger authentication information necessary to login and retrieve comments/posts. Then the function goes through its primary process of finding a post based on the path passed in, performing a search for posts on a list page if necessary, gathering comments, data adds, and finally finding and processing the XML stylesheet.

Configuration data is only temporarily stored on the server as part of a session between the web host and the API server, but it remains for a relatively long time unless explicitly purged. If it is missing the server will return 403 Forbidden and the index.php will thus have to restore a session by adding the authentication data through another API command using some standard strong encryption method and a key.

Any data that WebFront stores, even temporarily, for a site is encrypted using the key provided by the web host (index.php) combined with the domain name, current date (YYYY-MM-DD), and a couple server-specific variables such as the local path to the API. The data itself, before encryption, is salted. The obvious purpose is to prevent leaked files or data from revealing your sensitive data (your Google/Gmail login and password!).

Why? Who would use this?

I'm developing this first version exclusively for my benefit. Specifically the two test subjects will be Fart.Go and the Colbie Caillat Fansite; both have slightly different needs with the former being directly updated by me and the latter being driven more by fans. While anyone can access the source code and try it for themselves, it won't be easy to setup or use at first.

Another Content Management System (CMS)?

Negative, and I think this term is over-used and far too generic. WebFront acts as a [hopefully] lightweight glue between your domain name and your input sources (e.g. blog). You write the special posts which it interprets to fit your pages together into a meaningful site. The actual input, moderation, sorting, etcetera is dealt with by whatever system your content sits on top of (e.g. Blogger).

Is this a Mashup/Portal?

I'd say it's more a portal than a mashup, but both terms fail to apply completely. A mashup is typically a rich end-user application (DOM Scripted, Flash, Silverlight, etc.) which dynamically pulls in and processes data when the page is requested; WebFront does its duty on the server and outputs static web pages meant to be indexed under permanent URL's. A portal is like this except it generally only displays excerpts, because it is merely snippets of content from 3rd parties with links to the whole thing. These snippets also tend to die off as they become "stale" (think news portals).

Why Blogger?

Google's API for Blogger makes it relatively simple to retrieve posts and comments in a programmer-friendly fashion, the interface is something familiar, and finally I know they'll be around for a while and continue to add features I'll be able to take advantage of. Their Gdata implementation, for example, still lacks some functionality. And while I like their concept of templates, they aren't flexible enough to define non-blog-style site/URL structures.

What else will there be?

The final goal is to grow this into something which can generate your site from multiple, varied sources, not just Blogger. This would allow you to create a unified profile fronted by your own domain and drawing from all the websites you like to use like LiveJournal, FaceBook, WordPress, Drupal, MySpace, Del.icio.us, YouTube, Windows Live Spaces, and on and on. Instead of a thin window, just links to these other websites, it would be a thick website of your own with all of that data there, easily browsed, and themed to fit together. I think the personal domain name is the future of the "singular online persona/profile" and this is how I plan on achieving it.

For others like myself who seek to run multiple websites about wildly varying things with a minimum of fuss, this will be a way to either quickly set them up, tie a bunch of sources together, or distribute a few sources to a bunch of different front sites. For example, you might have a single blog where you tag entries with the domain name or category of domain that post shows up on. I think it's nice to re-use existing systems of content input and combine or separate them by your own organizational means, rather than constantly migrating data into a single latest/greatest/newest insanely configurable CMS ... and then doing it again later.

That's WebFront in a nutshell, any more questions?

0 comments: