I finally achieved the milestone of supporting more then 100+ services and just wanted to share with with you all!

What is Apprise?

Apprise allows you to send a notification to almost all of the most popular notification services available to us today such as: Telegram, Discord, Slack, Amazon SNS, Gotify, etc.

* One notification library to rule them all.
* A common and intuitive notification syntax.
* Supports the handling of images and attachments (to the notification services that will accept them).
* It's incredibly lightweight.
* Amazing response times because all messages sent asynchronously.

I still don't get it... ELI5

Apprise is effectively a self-host efficient messaging switchboard. You can automate notifications through:
- the Command Line Interface (for Admins)
- it's very easy to use Development Library (for Devs)
- a web service (you host) that can act as a sidecar. This solution allows you to keep your notification configuration in one place instead of across multiple servers (or within multiple programs). This one is for both Admins and Devs.

A lot of systems have already adapted to it such as HomeAssistant, Apache Airflow, ChangeDetection, Uptime Kuma and many others (<https://github.com/caronc/apprise/wiki/showcase#integrations>) which shows the commonality. Mailrise is an incredibly talented program that converts Emails sent to it to trigger notifications via Apprise.

What else does it do?

1. Emoji Support (:rocket:) built right into it!

2. File Attachment Support (to the end points that support it)

3. It supports inputs of `MARKDOWN`, `HTML`, and `TEXT` and can easily convert between these depending on the endpoint. For example: HTML provided input would be converted to TEXT before passing it along as a text message. However the same HTML content provided would not be converted if the endpoint accepted it as such (such as Telegram, or Email).

4. It supports breaking large messages into smaller ones to fit the upstream service. Hence a text message (160 characters) or a Tweet (280 characters) would be constructed for you if the notification you sent was larger.

5. It supports configuration files allowing you to securely hide your credentials and map them to simple tags (or identifiers) like `family`, `devops`, `marketing`, etc. There is no limit to the number of tag assignments. It supports a simple TEXT based configuration, as well as a more advanced and configurable YAML based one.

6. Configuration can be hosted via the web (even self-hosted), or just regular (protected) configuration files.

7. It Supports "tagging" of the Notification Endpoints you wish to notify. Tagging allows you to mask your credentials and upstream services into single word assigned descriptions of them. Tags can even be grouped together and signaled via their group name instead.

8. Dynamic Module Loading: They load on demand only. Writing a new supported notification is as simple as adding a new file; see here: https://github.com/caronc/apprise/tree/master/apprise/plugin...

9. Developer CLI tool (it's like `/usr/bin/mail` on steroids)

It's worth re-mentioning that it has a fully compatible API interface found here: <https://github.com/caronc/apprise-api> or on Dockerhub (<https://hub.docker.com/r/caronc/apprise>) which has all of the same bells and whistles as defined above. This acts as a great side-car solution!

Program Details

- Entirely a self-hosted solution.
- Written in Python
- 99.27% Test Coverage (oof... I'll get it back to 100% soon)
- BSD-2 License
- Over 450K downloads a month on PyPi
- Over 2.8 million downloads from Docker Hub

I would love to hear any feedback any of you have!