Notifiex: Send notifications/messages to various services!

Hi there,

This is my first ever Elixir project: Notifiex, a library for for sending notifications/messages to various messaging services like Slack, Discord, etc.

Notifiex can be added to any Elixir application, which allows the app to send notifications/messages easily, without crafting custom dispatching logic for your apps.

Once installed, sending a message/notification is super easy:

> Notifiex.send(:slack, %{text: "Hi there!", channel: "general"},  %{token: "SECRET"})

Project Link: GitHub - burntcarrot/notifiex: A dead simple Elixir library for sending notifications to various messaging services.

Feedback:

Feedback is really appreciated. I’m relatively new to Elixir and the library is still in its infancy, I’ll be making more changes in the future releases!

13 Likes

A couple of updates:

  • Support for plugins will be out in the next release! This would allow users to create their own “plugins” for services which isn’t supported by Notifiex.
  • I’m working on asynchronous message/notification dispatching; it should be available in a few releases!

Didn’t knew that this project would blow up, thanks for your support! Feels special to have my first Elixir project to be recognized by the amazing community! :smiley:

3 Likes

Although I haven’t used it, I think there’s another similar project called Raven that you might use for inspiration.

EDIT: Found it.

5 Likes

That’s a great project! I’ll take some inspiration from it!

It seems like the project is no more maintained, I hope Notifiex becomes a successor to it in the near future! :smiley:

3 Likes

I’m glad to announce that support for plugins is out now (in v1.2.0)!

Notifiex now supports:

  • Sending multiple notifications at once
  • File uploads for Slack
  • Asynchronous notification dispatching
  • Creation of plugins (a complete guide on creating plugins - contributions welcome! :D)
2 Likes

Great job! It reminded me about Laravel Notification Channels, they have 54 active notification channels and maybe contributors can take inspiration for implementation from there.

Saw the plugins guide:

It is suggested to publish plugins through Github; not through hex.pm.

Is there a specific reason for that?

1 Like

Publishing to hex is not recommended as there might be multiple plugins/implementations for the same service, for example, User A and User B may create a plugin for Telegram with the name notifiex_telegram, which can cause namespace conflicts while publishing to hex.

Using plugins through Github can help solve this problem, as the plugin now points to the git repository; which means multiple users can create plugins for the same service.

4 Likes