I recommend to use TEXT as type for that kind of columns.
99 out of 100 theories about "this value will never be longer then xx
characters" fail in the long run.
And "text", limited only by PostgreSQLs limits, performs as good or
better then varchar(length_limit) The time of "we only can allow n
chars for first name" for performance reasons have gone by, together
with walkmen and VHS.
You do need to be wary of malicious users who put a first name of a few hundred megabytes.