The granularity of error boundaries usage is up to the developer based on project needs. You can follow either of these approaches,
You can wrap top-level route components to display a generic error message for the entire application.
You can also wrap individual components in an error boundary to protect them from crashing the rest of the application.