Start here. This is the direct spoken answer to practice first.
Why this question matters
Settings look small, but they influence many product flows. A good design keeps preferences typed, validated, scoped, and easy to evolve as the product changes.
I would store settings as typed fields or validated key-value entries owned by a user or account scope. The API would expose get and update operations, apply defaults for missing values, and validate allowed values on write. Some settings are user-only, while others belong to a tenant or feature. The response can return the effective settings so clients do not have to reimplement defaulting rules.