How to make ElementaryOS & GTK Linux Apps with JavaScript

In this video we tackle coding a GTK app for ElementaryOS 5 Juno with JavaScript & GTK.

The official GTK bindings for JavaScript are build on top of Mozilla’s JavaScript engine called SpiderMonkey. These JavaScript bindings are as official as the Python & Vala bindings are.

If you are unimpressed with GTK’s build system, you can avoid all of the make/meson file nonsense and use node-gtk. Using Node as your application’s runtime allows you to avoid all of the noise created by the Gnome runtime.

Of all of the Gnome & GTK applications, I find the purpose-built ElementaryOS applications the most impressive. They always seem to have the most cohesive UX and feature sets when compared to the regular Gnome suite of applications. Code vs Gedit is an excellent example of this.

Support the channel by checking out my hardware specs! ?

Primary OS: openSUSE Leap 15

Motherboard: ASUS 970 Gaming Aura

CPU: FX-6300:

GPU: Nvidia GTX 760:

RAM: Kingston HyperX 8gb:

SSD: Samsung 850 EVO:

HDD: Seagate Barracuda 1TB 7200rpm:

☝️ These links are affiliate links and purchases help to support the channel!

18 thoughts on “How to make ElementaryOS & GTK Linux Apps with JavaScript”

  1. Hey!
    As a web developer I am very excited with what I discovered on this video.
    I already tried vala and didn't find an idea to develop an app and put it on the elementary app center. I eventualy tried making an app with vetur (libui bindings for vuejs) but wasn't able to publish it on the store and, I was wondering — if possible — if you could tell me/us how to architecture & publish an app on the elementary apps store when it has been developped with node-gtk.
    BTW, Thanks a lot for all your videos, I'm a huge fan! 🙂

  2. Thank you very much! As for me there is lack of information about coding GTK applications with JS. After your video I researched some new things for me. Do more! Regards ?

  3. Is there a way of creating native looking elementary apps using C#? I have read about gtk# but I'm not sure if it will support their HIG

  4. I don't get the point of using node or js if your app is not cross platform… I mean why not use Electron at this point…


Leave a Comment