In 2009, I was asked to serve as Presentation Architect for a very ambitious project at Cerner known as “Healthe”. I was tasked with bringing the forthcoming web solutions level with the rest of the industry: semantic markup, high levels of accessibility, mobile, low bandwidth, etc.
I set straight to work, rapidly iterating on static HTML prototypes of visual designs and putting them in front of stakeholders. I wrote a great deal of code in that time, and I began to think of ways we could better leverage this highly semantic, viewable-in-Lynx web code. My thought was, if we adhered to this strict Progressive Enhancement model, could we simply “re-skin” our HTML code passively for any device?
What followed was the implementation of what I call a “Web Bootstrapper”, where immutable properties of the web client are provided to a server-side process (e.g. rules engine) in order to determine the best collection of static resources for that client. While some presentation flexing tools download all front-end code and flex based on client attributes, the Bootstrapper returns only those items that are necessary. In addition, it allows for runtime configuration, where skins can be “shut off” or added at will.
As a side project within Cerner, my Web Bootstrapper didn’t get much attention until it hit production on our Personal Health Record, (PHR) and Activity Tracking prototype. I was able to show demonstrations where I would take the oldest mobile device in the room, (some scarily obsolete!) and load my PHR quickly and, most importantly, coherently. Shortly thereafter, teams began using it to flex their PE muscle in all kinds of ways.
In 2009, I submitted a paper to the World Wide Web and W4A conferences in Madrid, where I was accepted and invited to speak on the impact of Progressive Enhancement on Accessibility and code reuse. A few months prior to the presentation, Cerner filed a patent. Later that year, I also presented the approach at the Ajax Experience.
Since it’s inception, the Web Bootstrapper has been ported internally to Ruby on Rails and Python. I’ve been working with my senior management to open source the tech for feedback and enhancement. I also have plans for a “mixin” approach for feature detection, a storable “profile” of attributes, and other tweaks. I own and maintain the “Bootstrap the Web” demo site, as well.
I’m excited to see if this approach has applications outside of Cerner. Stay tuned!