client-first approach