Por "convenção pessoal" e como exigência da vaga, a base do projeto foi feita com React + TypeScript. Nenhuma lib de UI, apenas styled-components.
Utilizei Storybook para desenvolver os componentes e documentá-los de forma mais intuitiva.
Sobre o gerenciamento global de estado, acabei optando pelo ContextAPI.
E para fazer requisições à API do openweathermap utilizei axios, um custom hook e uma espécie de "endpoints creators".
Removi boa parte das observações aqui pois o projeto foi praticamente refeito. A interface estava muito rudimentar.