A lightweight, component-based JavaScript framework