Notifications are an integral part of any product. It helps to improve user engagement and makes sure they get useful information at every step of interaction with the product. We built Engagespot to help developers from spending months to build a notification stack for their product.
When we talk about notifications, it's not just about Push. A notification is any piece of information for the user. And it should be delivered through multiple channels like email, push, realtime message inside the app, sms etc, depending on the urgency and nature of the information.
 

A good product notification stack should have the following components - 
Multiple notification delivery channels such as InApp, Web Push, Mobile Push, Email, SMS etc. 
Multiple notification service providers such as Amazon SES, Sendgrid, FCM etc
Notification Preference Manager for Users 
Notification Categories 
Grouped Notifications etc.
 
Building a basic notification system for your product with a single channel such as email might seem easier in the beginning. But once you want to add more features and give preference controls to your users on different channels and categories, most of your development effort will be spent on notifications. We believe that a developer should never try to re-invent the wheel. Write code only for what is not there, else simply plug it in! Your time is precious. Spend it on building your core features.