Build performant, native and cross-platform desktop applications with JavaScript + powerful CSS like styling.๐
NodeGUI is powered by Qt5 ๐ which makes it CPU and memory efficient as compared to other chromium based solutions like electron.
If you are looking for React based version, check out: React NodeGUI.
Visit: https://nodegui.github.io/nodegui for docs.
This project is in active development. It should be okay for smaller projects but anything complex - electron is the way to go for now. ๐ง
More screenshots?
https://github.com/nodegui/examples
- ๐งฌ Cross platform. Should work on major Linux flavours, Windows and MacOS.
- ๐ Low CPU and memory footprint. Current CPU stays at 0% on idle and memory usage is under 20mb for a hello world program.
- ๐ Styling with CSS (includes actual cascading). Also has full support for Flexbox layout (thanks to Yoga).
- โ Complete Nodejs api support (Currently runs on Node v12.x - and is easily upgradable). Hence has access to all nodejs compatible npm modules.
- ๐ช Native widget event listener support. Supports all events available from Qt / NodeJs.
- ๐ธ Can be used for Commercial applications.
- ๐ต๏ธโโ๏ธ Good Devtools support.
- ๐ Good documentation and website.
- ๐งโโ๏ธ Good documentation for contributors.
- ๐ฆน๐ปโโ๏ธ Good support for dark mode (Thanks to QT).
- ๐ First class Typescript support. (Works on regular JS projects too ๐).
- (Partial support is present) Easily exstensible for creating custom native widgets (like react native).
- (Partial) Should have a decent list of stylable native widgets.
- Easy build and packaging process.
- Check out nodegui-starter to get up and running with your own React NodeGUI app!
- Read through the docs.
Community guides
- https://hibbard.eu/node-gui/ - Excellent guide from James Hibbard.
It is easier than you think, try it
Looking to contribute? If you wish to implement a new widget/add more features and need help understanding the codebase, you can start here: Contributing developer docs.
Please read https://github.com/nodegui/.github/blob/master/CONTRIBUTING.md
npm run build [--qt_home_dir=/path/to/qt]
NodeGUI is an open source project and requires your support. If you like this project, please consider supporting my work with Ko-fi. Alternatively, Issues on NodeGui can be funded by anyone via Issuehunt and the amount will be distributed to respective contributors.
https://github.com/nodegui/.github/blob/master/CODE_OF_CONDUCT.md
MIT
People maintaining this project.
Atul R |
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!