friend-driven JavaScript framework