Table of Contents
- Web App Vs Desktop
- Features Unavailable or Restricted in the Web App
- Browser-Related Limitations
- Storage, Memory, and Performance
- File Size and Upload Limits (Sync)
- Offline and Background Processing
- Plugin and Integration Limitations (Web)
- Native Features Not Available in the Web App
- Platform-Specific Availability
- Documented Error Conditions (Web)
- Notes
Web App Vs Desktop
This reference enumerates functional differences and limitations of the web app compared with the desktop (Electron) app. Most limitations stem from browser security (CORS, CSP, sandboxing) rather than intentional feature removal.
Features Unavailable or Restricted in the Web App
Plugin System
Plugins that require Node.js execution (elevated permissions) are disabled in the web version. When such a plugin is loaded, the app shows a disabled placeholder with an error stating the plugin requires the desktop version.
Calendar Integration
Calendar providers can be disabled for the web app or Android app via an isDisabledForWebApp flag to avoid CORS and WebView failures. When this flag is set and the app runs in a browser or Android WebView, calendar event requests return empty results instead of performing the HTTP request. The UI shows a prominent warning that calendar integration will likely not work in the browser or Android app and recommends downloading the desktop version.
Local File System
- Automatic backups to file system: Available only in Electron (desktop) and Android; not in the web browser.
- Local file sync: The web app cannot sync to local or network folders; that sync provider is not available in the browser.
Time Tracking
In the web version, time tracking only works while the app is open. Idle time tracking in the browser requires the Super Productivity Chrome Extension to be installed.
App Updates
The web app updates itself through its service worker and prompts for a reload when a new version is deployed. The desktop app instead checks the GitHub releases API once a day and shows a dismissible notice linking to the download page (configurable via the Misc setting "Automatically check for new versions"; not present on Microsoft Store, Mac App Store, or Snap builds, which update through their stores).
Browser-Related Limitations
CORS (Cross-Origin Resource Sharing)
WebDAV sync and calendar integration are likely to fail in the browser due to CORS. The app detects CORS-related failures and can show localized messages suggesting the user check server configuration. The desktop and mobile (iOS/Android) apps issue these requests through a native HTTP layer and are not subject to browser CORS; the web app is. This is why CalDAV calendar sync (e.g. with iCloud) works in the desktop and mobile apps but typically fails in the web app, where the server does not send the required CORS headers.
WebCrypto API
The web app depends on modern browser support for:
- Dropbox PKCE authentication: Requires
window.crypto.getRandomValuesandwindow.crypto.subtle.digest. - Secure context: WebCrypto (e.g.
crypto.subtle) is only available in secure contexts (HTTPS). The app shows alerts when WebCrypto is unavailable or when run over non-HTTPS.
Multi-Tab Instance Prevention
The web version uses BroadcastChannel to prevent multiple tabs from running the app at once. If another tab already has the app open, the new tab shows a blocker message asking the user to close one of the tabs.
Storage, Memory, and Performance
Browser Storage Persistence
The web app requests persistent storage from the browser. If the request is denied, the user sees a warning that data may be lost. Denial is surfaced via a snack notification.
Storage Quota Monitoring
The app uses the Storage API to estimate usage and quota. When available space falls to 333 MiB or less, the user is alerted that disk space is low and the app may be affected.
IndexedDB Quota Exceeded
When IndexedDB quota is exceeded, the app triggers emergency compaction with reduced retention (24 hours instead of 7 days) and uses a circuit breaker to avoid infinite retry loops.
Service Worker
The web app registers a Service Worker for offline caching (PWA). This is disabled for Electron and Android. Background behavior is limited to what the browser's Service Worker API allows.
File Size and Upload Limits (Sync)
These limits are enforced by the sync server; they affect web users who sync:
- Operation payloads: 20 MB maximum.
- Compressed operations: 10 MB maximum.
- Snapshots: 30 MB compressed, 100 MB decompressed.
- WebDAV: 10 MB maximum for XML responses; 100 MB maximum for file content.
Offline and Background Processing
Background Throttling
The desktop app disables background throttling for its window. The web app is subject to the browser's background tab throttling, which can affect timer accuracy and background task execution when the tab is in the background.
Offline Support
The web app uses a Service Worker (production builds) to cache assets for limited offline use. Full offline behavior is more limited than on desktop and Android. The app shows an offline banner when the network is unavailable.
Plugin and Integration Limitations (Web)
Plugin API in Iframes
Iframe plugins receive a filtered window.PluginAPI object injected into index.html.
The iframe can use the injected task/project/tag APIs, dialog and notification APIs,
navigation helpers, persistence helpers, registration helpers, counters, and action
dispatch. APIs not injected into the iframe are unavailable, even if they exist on the
host-side plugin bridge.
executeNodeScript() is proxied through the host bridge for iframe plugins when
the desktop app grants the plugin nodeExecution permission. The desktop app
currently grants this only to packaged built-in plugins whose manifest can be
verified by the main process.
Iframe Boundary
Iframe plugins are isolated from the host page:
- The iframe sandbox does not include
allow-same-origin, so iframe content has an opaque origin. - Host access goes through the filtered Plugin API
postMessagebridge. - Inline CSS, JavaScript, and small assets in
index.htmlfor portable iframe plugins. Arbitrary extra files from uploaded plugin ZIPs are not served to the iframe; external URLs depend on the app/runtime CSP.
Chrome Extension for Integrations
Jira integration and idle time tracking in the web version require the Super Productivity Chrome Extension to be installed.
For self-hosted Jira instances where the server is configured with appropriate CORS headers, the extension requirement can be bypassed: enable Fetch Jira directly from the browser (bypass extension) in the Jira advanced settings. When active, the app sends API requests directly from the browser instead of routing them through the extension. This option has no effect in the desktop app or on Android.
If the Jira API is reachable at a different host than the public issue links (e.g. an internal API endpoint vs. a public URL), set Alternative host for Jira links to the public host. That value is used only for constructing browser URLs in task details, not for API calls.
Native Features Not Available in the Web App
The web version does not have:
- Native file system access (open/save dialogs, automatic backups to disk).
- OS-level notifications (it uses the Web Notifications API instead).
- Window management (minimize to tray, global show/hide, custom title bar).
- System tray integration.
- Global keyboard shortcuts (only in-page shortcuts; desktop can register system-wide shortcuts).
Certain UI elements tied to these features are hidden in the web build via platform-specific CSS or logic.
Platform-Specific Availability
Donation and Contribution Links
The Support Us page and links that can lead to GitHub Sponsors are unavailable in native iOS and macOS desktop builds. They remain available in the web app, native Android, Windows desktop, and Linux desktop builds.
Documented Error Conditions (Web)
- CORS errors: WebDAV (and similar) sync may report CORS failures with localized messages suggesting server configuration checks.
- WebCrypto unavailable: Dropbox OAuth and other crypto-dependent features show alerts when WebCrypto is missing or not in a secure context.
- Storage persistence denied: A snack notification warns when the browser denies the persistent storage request.
- Quota exceeded: The app handles multiple quota-exceeded variants (e.g. Firefox
NS_ERROR_DOM_QUOTA_REACHED, Safari code 22) and triggers emergency compaction.
Notes
- The project README describes the web version as "a bit limited" and recommends the desktop version for full functionality, especially for calendar, file system access, and plugin support.
- The Android app offers a "Connectivity-Free Mode" for fully offline use; the web app does not provide an equivalent.
- Some integration features in the browser depend on the Chrome extension to work around security limits.
For installation and download options, see 2.01-Downloads and Install. For sync backends and limitations, see 2.09-Configure-Sync-Backend.
1.00-Quickstarts
2.00-How_To
Using Super-Productivity
- 2.01-Downloads and Install
- 2.02-Restore-Data-From-Backup
- 2.03-Add-Tasks
- 2.04-Manage-Subtasks
- 2.05-Manage-Scheduled-Tasks
- 2.06-Manage-Repeating-Tasks
- 2.07-Manage-Task-Integrations
- 2.08-Choose-Sync-Backend
- 2.09-Configure-Sync-Backend
- 2.19-Sync-Proton-Drive-via-rclone
- 2.13-Run-with-Docker
Contributing to Super-Productivity
- 2.18-Contribute-Translations
- 2.11-Run-the-Development-Server
- 2.16-Set-Up-Development-Environment
- 2.12-Package-the-App
- 2.14-Build-for-Android
- 2.15-Develop-a-Plugin
- 2.17-Add-a-New-Issue-Integration
3.00-Reference
- 3.01-API
- 3.02-Settings-and-Preferences
- 3.03-Keyboard-Shortcuts
- 3.04-Short-Syntax
- 3.05-Web-App-vs-Desktop
- 3.06-User-Data
- 3.07-Issue-Integration-Comparison
- 3.08-Sync-Integration-Comparison
- 3.09-Theming
4.00-Concepts
Data-and-Integrations
Organizing
- 4.06-Project-View
- 4.07-Tag-View
- 4.08-Time-Estimates
- 4.09-Task-Attributes
- 4.10-Task-Notes
- 4.11-Subtasks
Planning
Doing
- 4.01-The-Today-View
- 4.02-Inbox-View
- 4.05-Board-View
- 4.14-How-Time-Is-Logged
- 4.15-Timers-and-Focus-Mode
- 4.16-Break-Reminders
- 4.17-Idle-Time
- 4.08-Time-Estimates
Reviewing
If you have further questions, please refer to the discussions page.