--- id: django-push-notifications version: "3.3.0" license: unclear license_treatment: permissive maintenance: active --- # django-push-notifications — Send push notifications to mobile devices through GCM, APNS or WNS and to WebPush (Chrome, Firefox and Opera) in Django License: permissive · Maintenance: active · Downloads: 279.2K/mo ## 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 above — 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 pip install django-push-notifications uv add django-push-notifications 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_current - Install friction: low - Maintenance: active - Downloads: 279.2K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags django push notifications, send apns fcm notifications, mobile device push messages, django webpush integration, multi-platform push service, device registration management, ios android windows push, push-notifications, mobile-messaging, django-app [View on SkillFed](https://skillfed.io/packages/django-push-notifications) · [View on PyPI](https://pypi.org/project/django-push-notifications/)