https://imranfarooqreactjs.medium.com/3-practical-ways-to-implement-state-management-in-next-js-apps-a30d75f4267c