Console #172 - Interview with Dima of Novu - open-source notification infrastructure
Featuring pixi, aseprite, and Walk
🤝 Sponsor
This space is reserved for sponsors that support us to keep the newsletter going! Want to support Console? Send us a note at osh@codesee.io
🏗️ Projects
Browse through open source projects on OpenSourceHub.io, add your project to get more exposure and connect with other maintainers and contributors!
pixi
Pixi is a package management tool for developers. It allows the developer to install libraries and applications in a reproducible way.
language: Rust stars: 651 last commit: 3 days
repo: github.com/prefix-dev/pixi
site: pixi.sh
aseprite
Aseprite lets you create 2D animations for video games. From sprites, to pixel-art, retro style graphics, and whatever you like about the 8-bit and 16-bit era.
language: C++ stars: 23,000 last commit: last week
repo: github.com/aseprite/aseprite
site: aseprite.org
Walk
Walk is a Terminal file manager with preview mode, icons support, and image preview.
language: Go stars: 2290 last commit: today
repo: github.com/antonmedv/walk
Novu
The open-source notification infrastructure with fully functional embedded notification center.
language: TypeScript stars: 23458 last commit: today
repo: github.com/novuhq/novu
site: novu.co
Join thousands of other open-source enthusiasts and developers in the Open Source Hub Discord server to continue the discussion on the projects in this week's email!
🎙️ Interview With Dima of Novu - open-source notification infrastructure
Hey Dima! Thanks for joining us! Let us start with your background.
My name is Dima Grossman, and I currently live in the outskirts of Tel-Aviv, Israel. Before programming, I was mostly involved in music. Almost 10 years ago, I decided to pursue my other passion, which was technology. I attended a cybersecurity school where I met my partner in crime and co-founder, Tomer Barnea. We immediately connected because we both realized that information security wasn't our true calling. Instead, we discovered a passion for building products that make people's and businesses' lives easier.
Novu is our 3rd company together as friends and co-founders. Although we both share a passion for programming, Tomer focused on other important aspects of the company, while I am more involved in the technology and product development.
Who or what are your biggest influences as a developer?
Coming from a musical background, I have always been fascinated by the concept of music as a language and a means of communication. I have carried many of these concepts with me into programming. While we write code that compiles into machine language, our main objective is often to collaborate with a team in creating something greater than ourselves. This necessitates expressing oneself concisely and telling a story through the software we write, much like telling a story while composing a song or collaborating with a band.
What is your favorite software tool?
I'm a huge fan of GitHub as a collaborative tool, not just within our company, but also within the global community of developers. It never ceases to amaze me how people who have never met can come together to collaborate on software that has a significant impact on our world, both on and off our screens.
What are you currently learning?
These days, I've been spending a lot of time reading and learning about distributed systems. At Novu, we are experiencing rapid growth and expansion, and we aim to offer our users and community a high-performance solution that they can utilize not only on our cloud service but also when self-hosting Novu.
Why was Novu started?
Novu is our third company with Tomer, and in our previous ventures, we had to rebuild the notification system from scratch. This process felt repetitive, and while the notification system was crucial for communicating with our users, our core product responsibilities prevented us from creating a best-in-class notification experience.
Large companies have dedicated teams solely focused on building notification systems. Our goal was to develop a state-of-the-art, open-source, community-driven notification infrastructure that could be adopted in the time it takes to have 2-3 cups of coffee. Although we are still in the early stages of our journey, the support we have received from engineers at top engineering organizations worldwide has been incredible.
How does Novu work?
Novu's initial implementation, which we open-sourced two years ago, consisted of just around 100 lines of code. These lines outlined the following three core principles:
Triggers
Workflows
Providers
Each component stands as a decoupled entity, easily interchangeable with another. Fast-forward two years, with 200k lines of code and contributions from 300 individuals, this approach enables our users to seamlessly switch between email or SMS delivery providers within seconds, without impacting their existing code.
By separating workflows from triggers and providers, we empower users to modify existing notifications and delegate content management to other stakeholders within the company, relieving engineering teams of that responsibility.
How were you able to involve this many number of community contributions? Do you have any tips for other projects?
We invested a lot in the process of new contributor onboarding by creating a CLI tool called Jarvis, that helps navigating the codebase by splitting the different services and running them easily. We've done a lot of investment in this area, but it's quite a long story :P Can be easily a separate post on that.
Where did the name for Novu come from?
There are multiple ways to select a company name, you can find an existing name that matches the company activity, or, you can take an invented name and pour meaning in to it. Novu was the perfect clean slate to build our vision and create it’s own identity.
Who, or what was the biggest inspiration for Novu?
We have witnessed a similar revolution in various areas of the software industry. Previously, companies would build their billing systems from scratch, but today, most companies wouldn't consider not utilizing an existing billing system. This trend has also occurred in authentication, analytical platforms, and many other fields. Our objective is to ensure that companies no longer need to reinvent the wheel by building the notification infrastructure in-house.
Are there any overarching goals of Novu that drive design or implementation?
One of our biggest guiding principles is providing Novu as open-source platform for customer who want to self-host novu. This affects a lot of our decisions and tool selection.
If so, what trade-offs have been made in Novu as a consequence of these goals?
When developing any functionality in Novu, we always take into account the self-hosted nature of our platform. This means that working with third-party vendors can be challenging because we don't want to tightly couple key Novu principles and impose the use of a specific third-party provider on our community members. It's not always a straightforward task, but we prioritize giving careful attention to this aspect.
What was the most surprising thing you learned while working on Novu?
I’ve been involved in the OSS community throughout my career, but never I have built something in the scale and size of Novu. We have reached 300 contributors recently, and I’m just amazed to see the power of the OSS community. I have met dozens of amazing individuals from all around the world, and I learn everyday from their contributions to our project.
How is Novu monetized? What is your main source of revenue?
Novu provides a managed cloud version people can register and use, we also offer enterprise on-prem licenses to run and manage Novu on-premises for data sensitive companies.
What are you most proud of?
What I am most proud of at Novu is the team and culture we have cultivated. Our diverse group consists of individuals from nearly 10 different countries. The most incredible aspect for me to witness is how we have all come together with a shared goal of building the best notification platform possible.
Have you ever experienced burnout? How did you deal with it?
I’ve been building products and companies in the past 10 years, I’ve experienced burnout multiple times in my career. Some harder than others. One thing that always kept me together is the existence of my Family, and my amazing co-founder, who seen in me in my best and in my worst. One of the important things is to realize you are experiencing something, and ask for help from the closest to you.
What is the best way for a new developer to contribute to Novu?
New contributors can visit our GitHub Page and visit the Issues tab, where they can find issues they can contribute to. Our Discord server is also quite active, so I encourage new contributors to visit it.
Are there any other projects besides Novu that you’re working on?
I often wish I had more days or hours in a week so that I could allocate more time to Novu. Our vision is vast, and there are simply too many things we aspire to build within the limitations of time.
Want to join the conversation about one of the projects featured this week? Drop a comment, or see what others are saying!
Interested in sponsoring the newsletter or know of any cool projects or interesting developers you want us to interview? Reach out at osh@codesee.io or mention us @ConsoleWeekly!