I don't quite understand why some people default to UUIDs as Primary Keys in Postgres. There are some situations where that makes sense, like database or service distribution/decentralization but there are significant performance drawbacks.
If you only have one primary database, bigint PKs are much more efficient and simpler to reason about. I guess even in a local sharded setup.
If you need a non-guessable public ID, just add a UUID column.