skillfed

django-push-notifications

Send push notifications to mobile devices through GCM, APNS or WNS and to WebPush (Chrome, Firefox and Opera) in Django

django-push-notifications v3.3.0 279.2K downloads/30d#8,124 on PyPI2,389
Permissive license Active released

What it is and what it does

django-push-notifications is a Django application that abstracts push notification delivery across four major platforms: Apple Push Notification service (APNS), Firebase Cloud Messaging (FCM/GCM), Windows Notification Service (WNS), and WebPush. It provides Device models that store device registration tokens and metadata, allowing you to associate notifications with specific users or devices and manage their active or inactive status.

The package handles the complexity of multi-platform notification sending by offering a unified interface through Django models and an admin panel for testing. It requires minimal setup beyond adding it to INSTALLED_APPS and configuring platform-specific credentials. Optional dependencies are available for each backend, so you only install what you need. The app integrates with Django's ORM and admin interface, making it suitable for applications that need to send targeted notifications to mobile or web clients.

Use it for:

  • Send targeted push notifications to iOS users via APNS using device tokens stored in the database.
  • Deliver bulk notifications to Android devices through Firebase Cloud Messaging with automatic batching.
  • Test notification payloads in the Django admin panel before deploying to production.
  • Manage device registration lifecycle and link notifications to specific user accounts.
  • Send WebPush notifications to web browsers from a Django backend.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

A Django app that manages device registrations and sends push notifications through APNS, FCM/GCM, WNS, and WebPush protocols.

Yes. The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. It solves a real problem (multi-platform push notifications) with a clean Django integration. Install it if you need to send notifications across APNS, FCM, WNS, or WebPush; skip it if you only target a single platform or use a third-party notification service.

Install

django-push-notifications on PyPI

pip

pip install django-push-notifications

uv

uv add django-push-notifications

poetry

poetry add django-push-notifications

Installing django-push-notifications

Before you install

Low install friction with a single runtime dependency (Django). Active maintenance with recent commits and 2389 repository stars. Supports current Python versions and modern Django releases.

License in practice

Licensed under MIT (permissive), allowing commercial and private use with minimal restrictions.

Quickstart

pip install django-push-notifications

# In settings.py
INSTALLED_APPS = [
    ...,
    "push_notifications"
]

PUSH_NOTIFICATIONS_SETTINGS = {
    "APNS_CERTIFICATE": "/path/to/certificate.pem",
    "APNS_TOPIC": "com.example.app"
}

Requires Django 2.2+ and Python 3.7+. Optional dependencies (apns2, firebase-admin, pywebpush) must be installed separately for each notification backend.

Verify before relying

  • Whether the package supports async/await patterns for high-throughput notification scenarios.
  • Performance characteristics when sending bulk notifications to thousands of devices.
  • Current state of FCM HTTP v1 migration and whether legacy APIs are still supported.

Package facts

License not declared (permissive)
Python support supports the current Python release (>=3.7)
Install friction low — pure-Python wheel
Runtime dependencies 1 — Django
Maintenance actively maintained — 271 days since the last release
Last repo commit
First released
Downloads 279,176/month — #8,124 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_push_notifications-3.3.0-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 2.2Framework :: Django :: 3.0Framework :: Django :: 3.1Framework :: Django :: 3.2Framework :: Django :: 4.0Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Internet :: WWW/HTTPTopic :: System :: Networking

Tags

django push notificationssend apns fcm notificationsmobile device push messagesdjango webpush integrationmulti-platform push servicedevice registration managementios android windows push
push-notificationsmobile-messagingdjango-app

More WWW/HTTP packages