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." }
FieldRule
platformsoptional; array of windows, macos, linux, android. Without it the extension supports every platform.
platformNoteoptional; { 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: false and platformBlockedBy: [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

RequestReturns
GET storeplatforms 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