1
An alternative approach that I've been thinking about would be having a slug (for SEO purposes) and an ID in the URL: myapp.com/page/FancyCorporation/mYlIcpWXpCG3GithkD2OdA. Although it makes the URL uglier, naming the thing is less stressful as every name is allowed. Another problem with this solution might be the fact that the slug part can be any string: myapp.com/page/asdasd/mYlIcpWXpCG3GithkD2OdA and myapp.com/page/FancyCorporation/mYlIcpWXpCG3GithkD2OdA point to the same profile. This allows bad actors to create URLs that look legit.
Am I overthinking or what do you think?
[1]: https://www.reddit.com/r/rust/comments/9dole9/proposal_crate_squatting_on_cratesio/