Frappe
Cloud
Marketplace
Frappe
Products
Insights

Installation Guide
installs
Publisher
Supported versions
Categories
E-Commerce
About
A Progressive Web App (PWA) implementation for the Frappe Framework, enabling your applications to be installed and run as native-like apps on both desktop and mobile devices. ๐
โก Progressive Web App Support โ Turn your Frappe site into an installable PWA
๐ฑ Cross-Platform Installation โ Works on iOS, Android, and Chrome Desktop
๐ FCM Push Notifications โ Firebase Cloud Messaging for desk Notification Log alerts (mentions, assignments, shares, energy points)
๐พ Offline-First Architecture โ Smart caching via Service Worker
๐จ Customizable Manifest โ Icons, colors, display modes & screenshots
๐งฉ Easy Configuration โ Manage everything from simple Frappe DocTypes
Go to Web App Manifest in your Frappe Desk and configure:
๐ท๏ธ App Name โ Full name of your app
๐ค Short Name โ Short display name
๐จ Theme & Background Colors
๐งญ Display Mode โ fullscreen, standalone, minimal-ui, or browser
๐ผ๏ธ Icons โ Upload in multiple sizes (192x192, 512x512 recommended)
๐ธ Screenshots & Categories โ For app store appearance
Click "Automatically configure PWA" to:
โ Add manifest link to Website Settings
โ Enable PWA features automatically
โ Optionally enable Desk Mode support
Visit Service Worker doctype to:
๐ Generate VAPID keys for classic Web Push
โ๏ธ Configure caching and update policies
Every logged-in desk user gets a browser push notification whenever a Notification Log entry is created for them (mentions, assignments, shares, energy points, alerts) โ no changes needed on the Frappe/ERPNext side, this hooks into the core Notification Log doctype. Nothing for end users to click or configure: it enables itself silently on their next desk login, once an admin has set it up (below).
Log in to your site's Desk as a System Manager (e.g. Administrator).
Create a Firebase project and enable Cloud Messaging.
Under Project Settings โ Cloud Messaging โ Web configuration, generate a Web Push certificate (VAPID key pair) and copy the public key.
Under Project Settings โ General, copy the Web app config (apiKey, authDomain, projectId, storageBucket, messagingSenderId, appId).
Under Project Settings โ Service accounts, generate a new private key (downloads a JSON file) โ this is used server-side to send messages via the FCM HTTP v1 API.
In your Frappe Desk, open the Service Worker doctype and fill in the Firebase Cloud Messaging (FCM) section:
โ Enable FCM Push Notifications
๐ FCM VAPID Public Key โ from step 3
โ๏ธ FCM Web Config (JSON) โ from step 4
๐ FCM Service Account JSON โ paste the full contents of the file from step 5 (stored encrypted, never shown again in plain text)
Click Save.
That's it โ no further admin action needed. Every desk user (including the admin) will pick this up automatically on their next login.
Nothing to configure. On their next desk load, the browser will silently register for push and โ the first time only โ show the browser's native "Allow notifications?" permission prompt. Once Allow is clicked, they're subscribed for good; nothing changes for them if they click nothing or dismiss it (they simply won't get push notifications until they allow it, which they can also do later from the browser's own site-permissions UI).
A successful subscription creates a record in FCM User Token, one per user per browser/device:
Tokens FCM reports as unregistered (e.g. browser data cleared, uninstalled) are pruned automatically the next time a push is attempted.
Visit your site
Click the Install icon in the address bar or select Install [App Name]
Open your site in Chrome
Tap Add to Home Screen when prompted
Open your site in Safari
Tap Share โ Add to Home Screen โ Add
Visit /install for a full installation guide.
pwa_frappe/
โโโ pwa_frappe/
โ โโโ doctype/
โ โ โโโ service_worker/ # Service Worker + FCM config
โ โ โโโ fcm_user_token/ # Per-user FCM tokens
โ โ โโโ web_app_manifest/ # Manifest settings
โ โโโ fcm.py # FCM subscribe/unsubscribe + Notification Log push
โ โโโ public/js/
โ โ โโโ pwa_frappe.js # Desk manifest injection
โ โ โโโ fcm.js # Desk FCM registration & foreground messages
โ โโโ www/
โ โโโ app.html # PWA-enabled Desk template
โ โโโ manifest.json # Dynamic manifest endpoint
โ โโโ sw.js # Service Worker script (+ FCM background messages)
โ โโโ pwa.js # Client-side PWA logic
โ โโโ install.html # Installation instructions
Caches:
Static assets (CSS, JS, images)
Frappe core resources
Custom app assets defined in hooks
Old caches are auto-cleared upon activation ๐
Web App Manifest โ Main configuration
Manifest Icon / Screenshot / Category / Related App โ Child tables
Service Worker โ Caching & FCM notifications config
FCM User Token โ Registered browser push tokens per user
๐ Ruff โ Python linting
๐ Prettier โ Code formatting
๐งญ ESLint โ JavaScript linting
โ Chrome (Desktop & Mobile) โ Safari (iOS 11.3+)
๐ FCM push notifications currently cover the desk Notification Log doctype only (no portal/website push yet)
๐ HTTPS required for PWA features
๐ Limited iOS PWA support (and no push notifications on iOS Safari)
โ PWA not installing?
Ensure HTTPS is enabled
Verify /manifest.json is reachable
Check Service Worker registration in DevTools
๐ Service Worker not updating?
Hard refresh (Ctrl+Shift+R)
Clear site data
Update cache version
Fork this repo
Create a feature branch
Run pre-commit checks
Submit a PR ๐งก
MIT License โ see license.txt
Originally developed by Md Omar Faruk Maintained by the Frappe Community
๐ Frappe Documentation
๐ฌ Frappe Forum
๐ Issue Tracker
User Reviews
No reviews yet, be the first to review.
0 rating
More apps from
Explore more apps