Marked as helpful by the asker
JSONB is right for settings: they change often, they are read as a unit, and you rarely query by them. Two rules: validate the shape in the app (a Zod schema), and the moment you need where settings->>'x' = ... in a hot query, promote that key to a real column with an index.