JavaScript framework for task-based UIs