DEV Community

Ajeeb.K.P
Ajeeb.K.P

Posted on

3 2

Neutralinojs: For lightweight, crossplatform applications

Introduction

Portable and lightweight cross platform application development framework. Or you may think it like a lightweight Electron.

Getting the Starter Kit

Download Starter Kit (In docs, they call it SDK. I feel it like a Starter kit or Bootstrap) from github releases page https://github.com/neutralinojs/neutralinojs/releases. ie. Download neutralinojs-v1.3.0.zip file.

Now extract it. It contains 2 folders (app:- where we write our UI code in html, js and css, storage: another folder) and 3 executables(1 each for Linux, Windows and Mac).

Code it

As I mentioned above we are going to add UI related logic in html, js and css. Open below files, and replace content as I mentioned.

app/index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>NeutralinoJs</title>
    <link rel="stylesheet" href="/assets/app.css">
  </head>
  <body>
    <div id="neutralinoapp">
      <h1>Hello <span id="name"></span></h1>
    </div>
    <script src="/neutralino.js"></script>
    <script src="/assets/app.js"></script>

  </body>
</html>
Enter fullscreen mode Exit fullscreen mode

app/assets/app.css

html, body{
    margin: 0px;
    padding: 0px;
}

#neutralinoapp {
    position: absolute;
    width: 100%;
    height: 100%;
    background: #FFD700;
}

#neutralinoapp h1 {
    position: relative;
    float: left;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: Arial;
    font-size: 60px;
    padding: 0px;
    margin: 0px;
}
Enter fullscreen mode Exit fullscreen mode

app/app.js

var getUsername = function () {
    var key = NL_OS == 'Windows' ? 'USERNAME' : 'USER';
    Neutralino.os.getEnvar(key, function(data) {
        document.getElementById('name').innerText = data.value;
    },
    function () {
        //handle error
    }
    );

}

Neutralino.init({
    load: function () {
        getUsername();
    }
});
Enter fullscreen mode Exit fullscreen mode

Run it

Go to the folder, double click the executable corresponds to your OS. Mine was Linux (Debian). So, I opened neutralino-linux. A window was shown with Hello myusername.

Conclusion

Neutralinojs is a very simple and straight forward framework for building apps. In my case, my neutralino app was taking only 11MB of my RAM (I think, it takes around 30MB or 40MB for electronjs.).

Call for action

What do you think about this app ?
Do you find any alternative to this ?
Comment it below.

Reference

https://neutralino.js.org
https://neutralino.js.org/docs/#/gettingstarted/firstapp

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more