Widget-based web JavaScript microframework