The short answer. Electron is the default: Chromium and Node in one binary, an enormous ecosystem, and an app that is measured in hundreds of megabytes before you write a line. Tauri uses the system web view and a Rust backend, which is the answer to the size problem and a different set of trade-offs. nw.js is the older alternative that still has a following. Electrino and MacGap are the minimal wrappers — a web view and a small bridge — which is enough for an app that is really a website. Qt is the native toolkit that is not a web technology at all. React Native macOS, ReactXP and react-desktop are the React paths to a desktop app, and Ionic is the mobile-first framework that also targets desktop. The dividing question is what you are optimising for: reach, binary size, or a native feel, because no framework here gives you all three.

This guide covers 11 cross-platform desktop frameworks for macOS. Every fact below is drawn from the same verified records that back each app’s own page. The recommendations are our editorial judgment, not payment.

Quick comparison

App What it is Pricing Licence Version
AppJS developer utility Open source not published —
Electrino developer tool Free MIT —
Electron developer tool Open source not published —
ionic developer tool Free not published —
MacGap developer tool Free not published —
nw.js developer tool Free not published —
Qt developer tool not published not published —
react-desktop developer tool Open source not published 0.3.8
React Native macOS developer tool Open source MIT 0.14.0
ReactXP developer tool Free not published —
Tauri developer tool Open source not published —

What actually decides this

  • Which rendering engine. A bundled Chromium gives identical behaviour everywhere and a large binary. The system web view gives a small binary and a rendering surface that differs by OS version. The second is why a layout can look right on one Mac and wrong on another.
  • What the binary costs. A bundled engine is tens to hundreds of megabytes before application code. For an app distributed over the internet this is a real cost, and it is the single most cited reason people move to a system-webview framework.
  • What the native bridge can do. Opening a file, reading the clipboard, showing a notification and accessing the camera are progressively harder. A framework with a thin bridge makes the first easy and the fourth a plugin you have to trust.
  • Whether the UI is web or native. A web UI is a browser layout. A native toolkit is a widget tree. The second looks and behaves like the platform and costs you the ability to reuse a web codebase. This is a product decision disguised as a technical one.
  • How the app updates. An auto-updater is not a feature of the framework; it is a signing, notarisation and distribution pipeline. Frameworks with a maintained updater path save weeks, and the ones without leave it as an exercise.
  • What the ecosystem is worth. Plugins for file dialogs, menus, tray icons and updates are the difference between a weekend prototype and a shipped app. A newer framework with fewer plugins is a bet on its community.

Our picks

  • Electron — Its record describes building cross-platform desktop applications with JavaScript, HTML and CSS, which is the default case. Choose it when you want the largest ecosystem and identical rendering everywhere.
  • Tauri — Its record describes creating small, fast, secure, cross-platform applications, which is the size case. Choose it when the binary size matters and the system web view is acceptable.
  • nw.js — Its record describes building desktop apps with HTML and JavaScript, which is the established alternative case. Choose it when you have an existing nw.js app or want the older Node-in-the-browser model.
  • Qt — Its record describes a cross-platform application framework, which is the native-widget case. Choose it when you want a native toolkit rather than a web view.
  • React Native macOS — Its record describes building macOS desktop apps using React Native and Cocoa, which is the React Native case. Choose it when the team already writes React Native for mobile.
  • Electrino — Its record describes a desktop runtime for web apps using the system browser engine, which is the minimal case. Choose it when the app is a website in a window and nothing more.

The apps

AppJS

AppJS is a developer utility for macOS. Lightweight JavaScript UI library for creating mobile webapps that behave like native apps. It is open source.

Full profile and verified facts for AppJS →

Electrino

Electrino is a developer tool for macOS. Desktop runtime for web apps using the system’s browser engine. It is released under MIT. It is free.

What it does. Desktop runtime for apps built on web technologies, using the system’s own web browser engine.

Full profile and verified facts for Electrino →

Electron

Electron is a developer tool for macOS. Build cross platform desktop application with JavaScript, HTML and CSS. It is open source.

Full profile and verified facts for Electron →

ionic

ionic is a developer tool for macOS. Build native and web apps with Angular and open web technologies. It is free.

What it does. Ionic empowers web developers to build leading cross-platform mobile apps and Progressive Web Apps (PWAs).

Full profile and verified facts for ionic →

MacGap

MacGap is a developer tool for macOS. Lightweight JavaScript API for OS X integration. It is free.

Full profile and verified facts for MacGap →

nw.js

nw.js is a developer tool for macOS. Build desktop apps with HTML and JavaScript. It is free.

Full profile and verified facts for nw.js →

Qt

Qt is a developer tool for macOS. Cross-platform application framework. Its pricing is not published.

What it does. All the essential Qt tools for all stages of Software Development Lifecycle: planning, design, development, testing, and deployment.

Full profile and verified facts for Qt →

react-desktop

react-desktop is a developer tool for macOS. React UI Components for macOS Sierra. It is open source.

What it does. React UI Components for OS X El Capitan and Windows 10.

react-desktop is listed with current version 0.3.8.

Full profile and verified facts for react-desktop →

React Native macOS

React Native macOS is a developer tool for macOS. Build OS X desktop apps using React Native and Cocoa. It is released under MIT.

React Native macOS is listed with current version 0.14.0.

Full profile and verified facts for React Native macOS →

ReactXP

ReactXP is a developer tool for macOS. Microsoft platform for Web, iOS, Android, and Windows UWP. It is free.

What it does. A library for cross-platform development.

Full profile and verified facts for ReactXP →

Tauri

Tauri is a developer tool for macOS. Create small, fast, secure, cross-platform applications. It is open source.

What it does. The cross-platform app building toolkit.

Full profile and verified facts for Tauri →

How to choose

Open source: AppJS, Electron, react-desktop, React Native macOS and Tauri (5 of 11).

Common mistakes

  • Choosing a framework before measuring the binary. The download size is a product decision, not a build detail.
  • Assuming the system web view renders like the development browser. It is the OS version, not the browser version.
  • Shipping without an update path and asking users to download a new copy for every fix.
  • Using a web UI and then spending months imitating native menus and shortcuts.

How this guide was put together

Each app’s facts come from its own record: the developer’s own pages and repository, the App Store listing where one exists, and the documentation, each with a source grade and an access date. Where a fact rests on the developer’s own statement rather than on something we verified independently, the sentence says so. Where our data has no value for something, the guide says “not published” instead of guessing.

A price appears here only where the record carries one from a stated source; the guide never estimates one, and it records the pricing model alongside so the two can be read together. Prices change and vary by region, so each app links to its own page for the current detail.

The facts and the recommendations are kept apart on purpose. Everything in the app entries, the comparison table and the answers above is composed from the records. The short answer, the criteria and the picks are our editorial judgment: they reflect what we would choose and why, and they are not paid for. Where we make a recommendation we name the condition it applies under, because we do not call anything “the best” without explaining the criteria.

Frequently Asked Questions

How do I choose between these cross-platform desktop frameworks?

There is no single answer — it depends on what you need. This guide covers 11 cross-platform desktop frameworks: AppJS, Electrino, Electron, ionic, MacGap, nw.js, Qt, react-desktop, React Native macOS, ReactXP and Tauri. They differ mainly in pricing model, licence and the trade-offs each one carries. Pick by the trade-off you care about rather than by rank.

Are these cross-platform desktop frameworks free?

Pricing across this group: open source (AppJS, Electron, react-desktop, React Native macOS and Tauri), free (Electrino, ionic, MacGap, nw.js and ReactXP) and not published (Qt). Where we list pricing as not published, the developer does not state a model we could verify — check their own site before assuming anything about cost. We quote a price only where the record carries one from a stated source, and we never estimate one. Prices change and vary by region and by store, so always check the developer’s own page for the current figure.

Which of these cross-platform desktop frameworks are open source?

AppJS (not published), Electron (not published), react-desktop (not published), React Native macOS (MIT) and Tauri (not published) are open source.

Do these cross-platform desktop frameworks support Apple Silicon?

Our data does not carry an explicit Apple Silicon statement for any app in this group, so we do not claim one. The absence of a statement is not the same as the absence of support.

How do I choose between them?

Start with how you pay: the guide groups these apps by pricing model, because the budget is the constraint most people actually have. Then check the trade-offs listed for each app: the limitations are the part that decides most people’s choice, because they describe what the app will not do for you.