Data minimization
Collect only the data you actually use, nothing 'just in case'. Every extra field is one more thing to protect, explain, and delete.
See it
What it is
Data minimization says every field you collect must be adequate, relevant, and limited to the purpose you actually have. If nobody can name the feature that reads a field, it should not be on the form. The engineering version is blunter: data you never collected cannot leak, cannot be subpoenaed, cannot be mis-joined, and never shows up in a deletion request.
It applies past the signup form. Log the user ID, not the full request body. Store a coarse city instead of a raw IP. Ask for a birth year when you only need an age gate. Send the payment processor the token instead of routing card numbers through your servers. Each of those moves shrinks the blast radius of an incident and shortens the questionnaire you fill in later.
Gotcha: 'we might need it for machine learning one day' is the phrase that quietly kills minimization, and it is not a lawful purpose. The other trap is the second copy: you minimize the database, then a session replay tool, an error tracker, or an analytics warehouse hoovers up everything you carefully left out.
Ask AI for it
Audit this signup flow and data model for data minimization. For every field we collect and every property we log, state the concrete feature or legal requirement that consumes it, and mark it keep, make optional, collect later (progressive profiling), coarsen (for example city instead of full IP, birth year instead of full date of birth), or drop. Then rewrite the form with only the keep fields, and list the logging and analytics changes needed so the dropped data stops being captured downstream too.