# nodegui/nodegui

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nodegui-nodegui).**

9,221 stars · 314 forks · C++ · MIT

## Links

- GitHub: https://github.com/nodegui/nodegui
- Homepage: http://docs.nodegui.org
- awesome-repositories: https://awesome-repositories.com/repository/nodegui-nodegui.md

## Topics

`cross-platform` `desktop` `gui` `javascript` `nodejs` `openlibrary` `qt`

## Description

NodeGUI is a framework for building native desktop applications using Qt6 widgets, controlled entirely from JavaScript and Node.js. It provides a Qt6 Node.js binding that maps native widget classes to JavaScript objects, enabling developers to create cross-platform desktop apps for Linux and Windows with full access to the Node.js ecosystem and npm modules.

The framework distinguishes itself by allowing developers to style native desktop widgets with CSS and Flexbox layout rules, without relying on a web browser. It translates CSS properties and Flexbox layout into Qt stylesheet and layout manager calls, while native Qt widgets emit events that are forwarded to the Node.js event loop for JavaScript handler execution. This approach combines the performance and native look of Qt widgets with the familiar development patterns of web and Node.js applications.

Under the hood, NodeGUI organizes native widgets into reusable component hierarchies, maps each widget type to platform-native Qt implementations for consistent behavior across operating systems, and embeds the full Node.js runtime to enable direct npm module usage within the desktop application context. The project provides documentation and installation guidance for getting started with building native desktop applications using this toolkit.

## Tags

### Web Development

- [Cross-Platform Desktop Frameworks](https://awesome-repositories.com/f/web-development/cross-platform-desktop-frameworks.md) — Builds native desktop applications for Linux and Windows using Qt6 widgets controlled from Node.js. ([source](https://cdn.jsdelivr.net/gh/nodegui/nodegui@master/README.md))
- [Qt Widget Event Handlers](https://awesome-repositories.com/f/web-development/native-event-handling/qt-widget-event-handlers.md) — Responds to all Qt and Node.js events emitted by native UI components within the application. ([source](https://cdn.jsdelivr.net/gh/nodegui/nodegui@master/README.md))

### DevOps & Infrastructure

- [Qt Desktop App Builders](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-tooling/native-desktop-ui-frameworks/qt-desktop-app-builders.md) — Creates cross-platform desktop applications using native Qt UI widgets that map directly to each operating system's building blocks. ([source](http://docs.nodegui.org))

### Programming Languages & Runtimes

- [Node.js Desktop Integration](https://awesome-repositories.com/f/programming-languages-runtimes/node-js-desktop-integration.md) — Embeds the full Node.js runtime, enabling direct use of npm modules inside native desktop applications. ([source](http://docs.nodegui.org/docs/api/manual/synopsis))
- [Qt6 JavaScript Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/node-js-desktop-integration/qt6-javascript-bindings.md) — Develops desktop applications using Qt native widgets controlled directly from JavaScript and Node.js.
- [Node.js Runtime Integration](https://awesome-repositories.com/f/programming-languages-runtimes/node-js-runtime-integration.md) — Embeds the full Node.js runtime to enable direct npm module usage within the desktop application context.

### Software Engineering & Architecture

- [Cross-Platform Desktop Development](https://awesome-repositories.com/f/software-engineering-architecture/development-methodologies/application-targets-domains/cross-platform-desktop-development.md) — Builds cross-platform desktop applications with native Qt widgets using Node.js and CSS styling.
- [Widget Event Bridges](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/widget-event-bridges.md) — Forwards native Qt widget events to the Node.js event loop for JavaScript handler execution.

### User Interface & Experience

- [Qt Style Sheet Translators](https://awesome-repositories.com/f/user-interface-experience/css-to-native-style-translators/qt-style-sheet-translators.md) — Translates CSS properties and Flexbox layout into Qt stylesheet and layout manager calls for native widgets.
- [JavaScript Widget Abstraction Layers](https://awesome-repositories.com/f/user-interface-experience/native-widget-mapping/javascript-widget-abstraction-layers.md) — Maps Qt widget classes to JavaScript objects with consistent cross-platform API surfaces.
- [Qt Widget Mappings](https://awesome-repositories.com/f/user-interface-experience/native-widget-mapping/qt-widget-mappings.md) — Maps each widget type to platform-native Qt implementations for consistent cross-platform behavior.
- [Qt Widget Bridges](https://awesome-repositories.com/f/user-interface-experience/native-widget-toolkits/qt-widget-bridges.md) — Provides a Qt6 Node.js binding that maps native widget classes to JavaScript objects for desktop app development. ([source](http://docs.nodegui.org/docs/api/manual/synopsis))
- [Qt6 JavaScript Bridges](https://awesome-repositories.com/f/user-interface-experience/native-widget-toolkits/qt6-javascript-bridges.md) — Bridges the Node.js JavaScript runtime with Qt6 C++ widget toolkit through a native binding layer.
- [Component-Based UI Integrations](https://awesome-repositories.com/f/user-interface-experience/node-based-ui-components/component-based-ui-integrations.md) — Organizes native Qt widgets into reusable component hierarchies managed through JavaScript object trees.
- [CSS Styling](https://awesome-repositories.com/f/user-interface-experience/css-styling.md) — Applies cascading stylesheets and Flexbox layout to native Qt widgets for visual customization. ([source](https://cdn.jsdelivr.net/gh/nodegui/nodegui@master/README.md))
- [CSS-to-Native Style Translators](https://awesome-repositories.com/f/user-interface-experience/css-to-native-style-translators.md) — Styles native desktop widgets with CSS and Flexbox layout without relying on a web browser.

### Part of an Awesome List

- [Javascript Desktop Runtimes](https://awesome-repositories.com/f/awesome-lists/devtools/javascript-desktop-runtimes.md) — Native desktop UI framework powered by Qt and JavaScript.
