# NodeGUI
[](https://spectrum.chat/nodegui)
[](#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.
## How does it look?
**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. If you like this project, please consider support my work with Ko-fi.
[](https://ko-fi.com/E1E510AV9)
or
Issues on NodeGui can be funded by anyone and the money will be distributed to respective contributors.
[](https://issuehunt.io/r/nodegui/nodegui)
### LICENSE
MIT
## Maintainers ✨
People maintaining this project.
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!