finds.dev← search

// the find

kusti8/proton-native

★ 10,874 · TypeScript · MIT · updated Jan 2023

A React environment for cross platform desktop apps

A React renderer that targets native desktop widgets (via Qt or wx bindings) instead of the DOM or Electron's Chromium, using the same component/API shape as React Native. It's for someone who wants React syntax and Redux-style state management for a lightweight native desktop app without shipping a whole browser.

Actually delivers on 'no Electron' — it renders through real native toolkit bindings (node-qt/node-wx), not a webview, so the resulting binaries are smaller and the UI isn't a browser tab. Uses Yoga for flexbox layout and ships a custom React reconciler, which is a legitimate way to reuse React's component model outside the DOM rather than a shallow wrapper. React Native API parity means existing knowledge and some existing RN-ecosystem code (Redux, etc.) carries over directly. Hot reloading is built in, which matters a lot for iterating on native UI where rebuilds are normally slow.

The README leads with the maintainer stepping away and pointing to a community fork (proton-nativejs/proton-native) — anyone starting fresh should be evaluating that fork, not this repo, and last push here is from January 2023. Native bindings for Qt/wx mean install reliability depends on system libraries and a working native build toolchain per platform, which is exactly the kind of fragility pure-JS/Electron approaches avoid. Test coverage is thin for a library bridging JS to two different native toolkits — one Window test file with image snapshots, no visible coverage of the component set. Docs are a docsify site with only a couple of per-component pages, not enough for the surface area of a full React Native-style component library.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →