UML sucks because it takes forever and if your software changes you have to change your UML. I just use tooling that allows me to generate diagrams on the fly based on the existing code.
In the planning phases I just use Draw.io, but that always ends up out of date and irrelevant once the system actually exist.