Framework for an offline web app