I understand that node.js is a server side javascript. I want to write a desktop application using node.js. What would be the best tool to build a UI for this application/ what languges frameworks do people usually use to build a GUI for node.js app.

  • 2
    While Node.js is cross platform not all of GUI libraries are; hence what are your target operating systems? Apr 15, 2014 at 8:07
  • by the way Node package manager probably will have something for you. Apr 15, 2014 at 8:09
  • Haven't really thought about the target operating system but It would be good to have it run on all the platforms. Webkit seems to be doing it.
    – sublime
    Apr 15, 2014 at 18:38

4 Answers 4


NW.js (formerly node-webkit)

You can write desktop apps using websites (HTML, CSS, JavaScript) while retaining access to all Node.JS features and APIs.

Quoting its readme on GitHub:

NW.js is an app runtime based on Chromium and node.js . You can write native apps in HTML and JavaScript with NW.js. It also lets you call Node.js modules directly from the DOM and enables a new way of writing native applications with all Web technologies.

Features (also quoting from the readme):

  • Apps written in modern HTML5, CSS3, JS and WebGL.
  • Complete support for Node.js APIs and all its third party modules.
  • Good performance: Node and WebKit runs in the same thread: Function calls are made straightforward; objects are in the same heap and can just reference each other;
  • Easy to package and distribute apps.
  • Available on Linux, Mac OSX and Windows

2016 Update

There are few options for writing GUI apps in Node:


Electron can be used for it. You can check it out here It's all by HTML CSS and JS Hope it helps


There's a project called NodeGUI, which is based on Qode. It allows developing applications using the QT toolkit. If you've used PyQT/PySide, you should be at home with this.

NodeGUI is still under active development (not recommended for production) and might not contain all QT widgets/functionality.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.