veilletech.fr
9 oct. Feed du jour
#06 WEB Article

tinyjs : une app desktop en JavaScript de 6 Mo

Cent cinquante mégaoctets pour un utilitaire interne, c'était peut-être beaucoup.

tinyjs produit des applications de bureau d'environ 6 Mo : la fenêtre est la webview du système, le backend tourne en JavaScript sur txiki.js et parle à la page par un socket Unix, sans port ouvert. C'est le poids de Tauri sans Rust ni compilation, avec dialogues, menus, trousseau et mise à jour intégrés à l'API. macOS est stable, Windows et Linux en bêta.

3 min de lectureintermédiairevidéo 1:25
Partager
Sommaire5 sections
  1. Ce qui se passe
  2. Comment c'est construit
  3. Comment s'y prendre
  4. Les limites, selon l'auteur
  5. À retenir

Ce qui se passe

tinyjs, sous licence MIT, fabrique des applications de bureau pour macOS, Windows et Linux en JavaScript, sans Electron. Une application livrée pèse environ 6 Mo sur les trois systèmes, contre au moins 150 Mo pour Electron et une dizaine pour Tauri, selon le site du projet.

Comment c'est construit

Deux pièces, rien de plus :

Les deux se parlent en RPC par un socket Unix, dans un dossier temporaire en 0700 (un tube nommé sous Windows). Rien n'écoute sur le réseau : pas de port à choisir, pas de conflit, rien à scanner. C'est là que tinyjs se sépare de Neutralino, qui expose l'API système par un serveur WebSocket local protégé par jeton.

Face à Tauri, l'écart est le langage : backend en JavaScript, sans compilation. Dialogues, menus, barre d'état, presse-papiers, trousseau, notifications, raccourcis globaux et mise à jour font partie de l'API au lieu d'être des plugins à ajouter.

Comment s'y prendre

Terminal
curl -fsSL https://tinyjs.app/install | sh   # macOS 15+ et Linux ; install.ps1 sous Windows
tinyjs new mon-outil --template react-ts
cd mon-outil
tinyjs dev     # fenêtre native, rechargement à chaud
tinyjs build   # macOS : bundle signé, prêt pour la notarisation

Le backend exporte ses fonctions, la page les appelle :

JavaScript
// src/main.js
export const api = {
  version: async () => ({ app: '1.0.0' }),
};

// côté page
const { app } = await tiny.api.call('version');

Les limites, selon l'auteur

Source : tinyjs, site du projet, signalé par Human Coders News le 8 octobre 2026.