Building the first open-source notification infrastructure
Tags: javascript, opensource, discuss
Published: 2021-10-28 12:34:22

**Hi Community!**
Looking forward to hear your thoughts about this.

[Novu](https://github.com/novuhq/novu) was started out of pain me and @ComBarnea felt when developing products that required product based notifications. We've built the infrastructure so many times that we decided to take it out to the world. That's when Novu was born. We took the multi-channel notifications and provided a unified set of API's to generate notification content and simplify delivery across multiple channels. 

### It's more than just sending an email or push
![C6ROe0mU0AEmpzz](https://user-images.githubusercontent.com/8872447/139248224-f35b2dc2-daa9-4976-ae58-b120d3561c49.jpg)
_(Part of slacks notification system)_


From our past experience, we know that a wholesome notification infrastructure requires more than a unified API. We believe that building a solid notification infrastructure is something that is accessible not only to fortune 500 companies but to every developer out there. 

## Notificaiton infrastructure foundations
### Smart Notification Engine
Using a stateful API instead of local config files can provide further functionality like:
- Run time **changes** without redeploying your code.
- **Digest** mechanism that allows to aggregate multiple events/messages to a single email or in-app notification for the customer. For example, a user received an email a minute ago, we don't want to send him the next one immediately and wait if further messages are planning to arrive. 
- **User preferences** - With the ever-growing number of channels, an end-user can get notifications can create a lot of noise. Notification preferences are an expected thing from most users this day. A stateful API can manage all the complexities of it out of the box. 
- **Priority management** - Not all notifications created equally, while password reset email must be delivered in real-time. Repeatable and frequent notifications can be throttled or scheduled to a later time.
-  **Timezone awareness** - Send a specific set of notifications only in the user wake hours.
- **Monitoring** and **webhook** integrations to all the delivery providers.
- **Analyze** sending patterns and **debug deliverability** across multiple channels

### In-app notification center
- An embeddable widget that is easy to integrate and customize.
- Real-time update using a socket.
- User preference widget to control the channels and motivation groups he would love to receive.
- The ability of the user to Snooze, mute and hide notifications easily.

We would love that everyone can have the best notification infrastructure possible without investing thousands of hours on it again and again. By the community. For the community.

## Next steps
We are working on porting parts of the closed source platform we developed over the years to OSS. This includes an out-of-the-box API for managing notifications, an embeddable notifications widget, activity monitoring and more. 

Star or follow us on twitter to get notified when we release the first  API version, embeddable widget and admin panel to the world.

<img width="314" alt="Screen Shot 2021-10-28 at 14 53 57" src="https://user-images.githubusercontent.com/8872447/139250840-23b0141f-6d0c-479f-9706-8ca46a78f6d4.png">


What are your thoughts about the need for such a system? Have you built something similar with your team? What would expect to see there?


Feel free to comment here or at our Github page https://github.com/novuhq/novu/