Use the User field built in notifications by toggling the "Notify users with base access when they're added" option in the field settings. This will smartly batch notifications into as few emails as possible and is my preferred approach.
Create an automation that watches when a field/the record is updated OR when a record matches conditions such as a task date being 3 dates away (as the trigger) and sends a customized email (as the action) to a linked email address stored somewhere in your base or to the User field's populated users. This is best for custom "this is coming due" or "this is late" reminders. Notification emails will not be batched.
Manually @mention a base user in the comments of an expanded record to alert them to take action with a custom message to their inbox which remains visible on the record for other users to see. These notifications will be batched.