If anyone has other suggestions or a better way, I am happy to read about it.
If your language of choice does not have a decent, audited implementation of Argon2id, you can go with bcrypt or scrypt, which would be an improvement over PBKDF2, and usually widely available in most languages.
https://en.m.wikipedia.org/wiki/Argon2
https://crypto.stackexchange.com/questions/30785/password-ha...