# NodeGUI [![Join the NodeGUI community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/nodegui) [![All Contributors](https://img.shields.io/badge/all_contributors-9-orange.svg?style=flat-square)](#contributors) 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](https://github.com/nodegui/react-nodegui)**. Visit: https://nodegui.github.io/nodegui for docs. logo ## How does it look?
demo_linux demo_win demo_mac
kitchendemo_macdemo_win
**More screenshots?** ### More Examples: https://github.com/nodegui/examples --- ## Features - 🧬 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 😉). ## Current focus: - [ ] (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. ## Getting Started - Check out [nodegui-starter](https://github.com/nodegui/nodegui-starter) to get up and running with your own React NodeGUI app! - Read through the [docs](https://nodegui.github.io/nodegui). ## Docs for contributing ``` 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](https://github.com/nodegui/nodegui/tree/master/docs/development). ## Building `npm run build [--qt_home_dir=/path/to/qt]` ## Funding 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.

Buy Me a Coffee at ko-fi.com     issuehunt

## THANKS - [Logo](https://github.com/nodegui/nodegui/blob/master/extras/legal/logo/thanks.md) Thanks to Vishwas Shetty from the Noun Project. ## LICENSE MIT ## Maintainers ✨ People maintaining this project.
Atul R
Atul R
## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Lucas Ramage
Lucas Ramage

📖
Denis Sikuler
Denis Sikuler

📖
Nahuel José
Nahuel José

💬
Kakul Gupta
Kakul Gupta

💻
Rahul Gaba
Rahul Gaba

💻
Paweł Borecki
Paweł Borecki

💻
Marcus S. Abildskov
Marcus S. Abildskov

⚠️
Átila Camurça Alves
Átila Camurça Alves

📖
James Hibbard
James Hibbard

💻
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!