OPT OpenLayers - https://react.dev/ + https://openlayers.org/
https://www.youtube.com/watch?v=Eozu7moovRk tutorial
https://taylor.callsen.me/using-openlayers-with-react-functional-components/ tutorial
https://medium.com/swlh/how-to-incorporate-openlayers-maps-into-react-65b411985744 tutorial
https://github.com/allenhwkim/react-openlayers sample
https://openlayers.org/en/latest/examples/ examples
npm create vite@latest
react + typescript
npm i
npm i class-variance-authority
npm i clsx
npm i tailwind-merge
npm i @headlessui/react
npm i lucide-react
npm i react-router-dom
npm i ol
npm i zustand
npm i -D prettier
npm i -D @tailwindcss/forms
npm i -D autoprefixer
npm i -D postcss
npm i -D prettier-plugin-tailwindcss
npm i -D prettier-plugin-organize-imports
npm i -D tailwindcss
npm i -D tailwindcss-animate
npm i -D vite-tsconfig-paths