Reactive MVI implemented with KnockoutJS