Nuxt and state management with apollo-link-state (how to ditch Vuex)

I got nothing against Vuex, but using it with Apollo doesn't feel quite right. Apollo already comes with a cache so why not utilize that and have single source of truth for all your data?

I've been looking for a guide on how to setup apollo-link-state (local state management) with Nuxt, but there seems to be very little information out there. I did some research and wrote down what I did to make it work.