Mobile web app framework