Nuvaka › Developer docs › Platform compatibility
Platform compatibility
Nuvaka runs on Windows, macOS, Linux and Android. Most extensions run everywhere; when a feature exists only on some platforms (e.g. picture-in-picture is desktop only) you declare it in the manifest. The store warns on incompatible devices and the app stops auto-updating.
Manifest
"platforms": ["windows", "macos", "linux"],
"platformNote": { "tr": "Yüzen pencere masaüstü gerektirir.", "en": "The floating window needs a desktop." }
| Field | Rule |
|---|---|
platforms | optional; array of windows, macos, linux, android. Without it the extension supports every platform. |
platformNote | optional; { tr, en }, at most 300 characters each. Explains why it's limited; shown in the store detail. |
What users see
- Installing is not blocked. On an incompatible device the store shows "This version may not work on this device" and your
platformNote. - The store has a "Only ones that fit this device" filter.
- If a new version doesn't support the user's platform, the app does not auto-update to it; it shows the update with a warning.
Dependency rule
Your extension can't go beyond the platforms its required direct dependencies (uses or extends) support:
- The effective set is
platforms; without the field it counts as "all platforms". - That set must be a subset of the platforms of the dependency version chosen from the range. Otherwise publishing is refused:
400 platform_exceeds_dependency — <dependency> yalnız [...] destekler. - Optional dependencies aren't checked; your code must ignore them on platforms where they're missing.
- Addons (In-app store) must stay within the host's platforms.
- If a dependency later drops a platform, install and update are not blocked; the detail returns
platformSupported: falseandplatformBlockedBy: [dependency id], and the app warns.
In practice: if you depend on a library with a platform limit, write your own platforms the same or narrower.
Store API
| Request | Returns |
|---|---|
GET store | platforms on each card (null = all) |
GET store?platform=<p> | Also platformSupported on each card. &platformOnly=true drops incompatible ones. |
GET store/{id}?platform=<p> | platforms, platformNote, platformSupported, and platformBlockedBy when relevant |
GET store/{id}/dependencies?platform=<p> | platforms and platformSupported on every dependency node |
GET updates?platform=<p> | platforms and incompatible on each item. incompatible: true means the target version doesn't run on this platform; no auto-update. |
At runtime
Platform-dependent calls return an error where unsupported; for example nuvaka.ui.pip returns unsupported on Android. If you want such a feature to be optional, catch the error and hide the feature instead of narrowing platforms.
Nuvaka Apps API v1 · last updated 2026-09-28