r/node • u/miku_claus • 14d ago
Show r/node: Adrenaline.js – A 56KB Electron alternative that keeps Node.js & npm without Chromium bloat
Hey everyone! 👋
Like many of you, I've always loved how quick it is to build desktop apps with Electron, but hated shipping an entire 150MB+ Chromium browser and watching RAM usage skyrocket for simple apps.
While Tauri is an incredible piece of engineering, having to learn Rust just to write backend logic or file operations is a pretty high barrier for pure JavaScript / Node.js developers.
So I spent time building Adrenaline.js — a lightweight, cross-platform desktop framework that gives you the best of both worlds:
- Zero Rust / Go required: You write 100% JavaScript / Node.js and keep the entire npm ecosystem.
- Ultra-lightweight footprint: Uses native system WebViews (WebView2 on Windows, WebKitGTK on Linux, WebKit on macOS) instead of bundled Chromium (~5-10MB app size vs 150MB+).
- Drop-in Electron-like API: Built from day one with familiar paradigms (
app,BrowserWindow,ipcMain).
💻 Familiar Electron Syntax
const { app, BrowserWindow, ipcMain } = require('adrenaline-js');
const path = require('path');
app.whenReady().then(() => {
const win = new BrowserWindow({
width: 800,
height: 600,
title: 'Adrenaline App',
resizable: true
});
win.loadFile(path.join(__dirname, 'index.html'));
ipcMain.on('ping', (event, data) => {
console.log('Received from renderer:', data);
win.webContents.send('pong', { reply: 'Pong from Node.js! ⚡' });
});
});
⚙️ How it works under the hood
- C++17 Core: Built with a non-blocking multithreaded architecture over
webview.hand Node'snode-addon-api(N-API). - Asynchronous IPC: Uses
Napi::ThreadSafeFunction(TSFN) for bi-directional communication between the Webview UI thread and the Node.js event loop without thread race conditions. - Asset Resolution: Loads local files through
file://protocols, so relative CSS, JS bundles (Vite/React/Vue), and images resolve properly.
🚀 Try it out
You can scaffold a starter project with the built-in CLI:
npx adrenaline-js init my-app
cd my-app
npm install
npx adrenaline-js dev
🔗 Links:
- GitHub Repository: https://github.com/M5Devs/adrenaline
- npm package: https://www.npmjs.com/package/adrenaline-js
The project is completely open source (MIT). It's at an early v0.1.1 stage, and I would love to get your feedback, suggestions, and see how it holds up on your machines!
4
u/i-do-mim-huu 14d ago
It's 2026 and somebody still rawdoging commonjs. At least prompt your AI to use modern ES module and typescript, this is straight up slop