{"id":13674279,"url":"https://github.com/notifo-io/notifo","last_synced_at":"2025-12-24T10:11:07.062Z","repository":{"id":37242839,"uuid":"323372546","full_name":"notifo-io/notifo","owner":"notifo-io","description":"Multi channel notification service for collaboration tools, e-commerce, news service and more.","archived":false,"fork":false,"pushed_at":"2024-04-11T17:05:20.000Z","size":25475,"stargazers_count":739,"open_issues_count":16,"forks_count":68,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-04-13T15:34:03.668Z","etag":null,"topics":["asp-net","bootstrap","email","email-marketing","mjml-template","mobile-push","notifications","react","sms-messages","sockets","web","web-push"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/notifo-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-12-21T15:17:39.000Z","updated_at":"2024-04-15T13:06:14.853Z","dependencies_parsed_at":"2023-11-07T21:56:31.221Z","dependency_job_id":"2da26855-c993-40d9-9f97-b23a4aaad7d6","html_url":"https://github.com/notifo-io/notifo","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notifo-io%2Fnotifo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notifo-io%2Fnotifo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notifo-io%2Fnotifo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notifo-io%2Fnotifo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/notifo-io","download_url":"https://codeload.github.com/notifo-io/notifo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251330215,"owners_count":21572243,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net","bootstrap","email","email-marketing","mjml-template","mobile-push","notifications","react","sms-messages","sockets","web","web-push"],"created_at":"2024-08-02T11:00:44.714Z","updated_at":"2025-12-24T10:11:07.054Z","avatar_url":"https://github.com/notifo-io.png","language":"C#","funding_links":[],"categories":["Software","\u003ca name=\"C%23\"\u003e\u003c/a\u003eC#"],"sub_categories":["Communication - Custom Communication Systems"],"readme":"# Notifo - Notification Service\n\n[![Release](https://github.com/notifo-io/notifo/actions/workflows/release.yml/badge.svg)](https://github.com/notifo-io/notifo/actions/workflows/release.yml) \n[![Docker Image Version (latest by date)](https://img.shields.io/docker/v/squidex/notifo?sort=date)](https://hub.docker.com/r/squidex/notifo)\n\nTry it out at https://app.notifo.io!\n\nNotifo is a multi-channel notification service for collaboration tools, e-commerce, news, magazines and everybody who wants to notify their users.\n\n![Notifo Tour](https://github.com/notifo-io/notifo/raw/main/media/tour/Notifo.gif \"Notifo Tour\")\n\n## Features\n\n* Powerful and rich REST API with OpenAPI documentation.\n* Management UI to create notification templates, users, subscription, projects, settings and email templates.\n* Email templates with MJML and Liquid Templates.\n* Rich notification with a lot of formatting options like small and large images.\n* Abstraction over multiple channels and providers\n    * Emails (currently Amazon SES)\n    * Web (Sockets)\n    * WebPush (custom built)\n    * MobilePush (currently Google Firebase)\n    * SMS (currently MessageBird)\n* Reliable through retry mechanisms and message queues for all notifications and channels.\n* Tracking which notification has been read or confirmed.\n* Integrated plugin to add a notification overlay to your web application.\n\n## Integrations\n\n![Integrations](https://github.com/notifo-io/notifo/raw/main/media/Integrations.png \"Integrations\")\n\n## How it works\n\n* **Users** subscribe to topics that are defined by a path such as `clothes/shoes/nike`. It is your job to provide a good UI for that.\n* **Backend** creates events using very specific topic paths, such as `clothes/shoes/nike/\u003cmodel\u003e`.\n* **Notifo** creates user events based on the matching subscriptions. Subscriptions are either for specific paths or parent paths as in the example above and having individual notification preferences.\n* **Queues** and schedulers are responsible to send notifications to users when the notification has not been confirmed yet.\n\nThis allows a wide range of scenarios:\n* In a task management system you can automatically subscribe users to a project, e.g. `project/123` and use a notification preference to only send web notifiations or web push notifications. When a user manually subscribes to a specific task, e.g. `project/123/tasks/abc` you can create this subscription with a preference to send out emails as well.\n\n* Notifications can have a confirmation preference (None, Explicit, Seen). Only unconfirmed notifications are sent through a channel and you can configure a delay when sending notifications. This means that a user does not receive a confirmation when he or she has already explicitly confirmed it (**Explicit** Mode) or has seen it (**Seen** mode). This avoids to spam your users which notifications he does not need anymore and you can also track who has seen or confirmed urgent and important notifications.\n\nHave a look to the [presentation](https://github.com/notifo-io/notifo/raw/main/media/notifo!.pdf) to understand how it works.\n\n## How to run it\n\nBefore you install it, try it out at https://app.notifo.io\n\n### Install it using the docker image\n\ndocker images are available: https://hub.docker.com/r/squidex/notifo, you can try the [docker compose](deployment/docker compose/docker compose.yml) file.\n\nRead more about the installation in the [wiki](https://github.com/notifo-io/notifo/wiki/Installation).\n\n### How to configure it\n\nHave a look to the settings for all configuration options: [appsettings.json](https://github.com/notifo-io/notifo/blob/main/backend/src/Notifo/appsettings.json). Everything in the settings can be configured using environment variables.\n\nThe following setting\n\n```json\n\"mongoDB\": {\n    \"connectionString\": \"mongodb://localhost\",\n},\n```\n\nis mapped to the enviornment variable `MONGODB__CONNECTIONSTRING` (note the double underscore).\n\nRead more about configuration in the [wiki](https://github.com/notifo-io/notifo/wiki/configuration).\n\n## Tech Stack\n\nNotifo uses the following technologies.\n\n### Server\n\n* ASP.NET Core 6 for Multi-Platform Support\n* SignalR for Sockets\n* MongoDB (support for more Databases is planned)\n* OpenID Connect\n\n### Frontend\n\n* React\n* React Router\n* Formik\n* Redux\n* Redux Toolkit\n* Typescript\n* Bootstrap with custom Sass and [Argon Design](https://www.creative-tim.com/product/argon-design-system) Theme.\n* ...many more libraries.\n\n## Where is it used?\n\nIt was originally developed for Squidex Headless CMS (https://squidex.io), it is also used in a few other commercial applications in a testing stage.\n\nCurrently it is still in Beta and some features such as Mobile Push and Emails are not used in production yet.\n\n## How to contribute?\n\nThere is still a lot to do:\n\n* Support for other databases (I would prefer https://github.com/sebastienros/yessql)\n* Other Email providers.\n* Other SMS providers.\n* Test application for mobile push (iOS and Android)\n* Hardening scheduling and message queues.\n* More channels (e.g. WhatsApp or Voice).\n* Testing and tests\n* Automated API and UI tests and more tests in general.\n\n## Sponsors\n\nNotifo is sponsored and used by the following companies.\n\n[![Squidex](media/logos/squidex.png)](https://squidex.io/) [![Squidex](media/logos/easierlife.png)](https://easierlife.de/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotifo-io%2Fnotifo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotifo-io%2Fnotifo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotifo-io%2Fnotifo/lists"}