Client side framework