TinyJS Brings Lightweight Desktop Apps Back With JavaScript
Software engineer Tarwin Stroh-Spijer has developed TinyJS, a JavaScript runtime designed to build lightweight desktop applications for macOS, Linux and Windows. Many of these apps occupy around 6MB or less, offering an alternative to increasingly resource-intensive desktop software.
Unlike no-code platforms with limited functionality, TinyJS provides the full capabilities of JavaScript alongside the rendering and communication features built into each operating system.
How TinyJS keeps applications small
Rather than bundling a complete browser engine with every application, TinyJS relies on each operating system's native WebView. It uses WebKit on macOS, WebView2 on Windows and WebKitGTK on Linux.
This differs from Electron, which packages the open-source Chromium browser core with desktop applications. Electron offers a more consistent appearance across platforms, but even a basic application can occupy around 150MB. TinyJS applications may look slightly different across operating systems because their rendering engines vary.
JavaScript without a Rust requirement
TinyJS is built on txiki.js, an ultra-compact JavaScript runtime developed by Saúl Ibarra Corretgé. Its starter package occupies approximately 5.6MB, while the launcher adds roughly another megabyte.
The framework also uses operating systems' interprocess communication mechanisms to transfer data, avoiding the need to bundle an HTTP server with every application and reducing the associated security overhead.
Developers build applications with JavaScript, CSS and HTML without compiling their code. TinyJS supports React, Vue and Svelte, and can operate without additional dependencies. Node.js is only needed when using frameworks that require it, such as Vite.
Another option, Tauri, can produce applications around 10MB in size, but Stroh-Spijer notes that it requires developers to write applications in Rust. TinyJS also relies on operating-system features for dialogs, menus, the system tray, clipboard access and automatic updates, rather than requiring separate plugins for each capability.
A collection of miniature desktop apps
Stroh-Spijer has created a desktop app store featuring 25 free examples. They include a world clock packaged in a 3.8MB ZIP file, a clipboard history tool at 3.7MB, a Markdown editor at 4.9MB, a SQLite database browser at 4.1MB and a Winamp clone requiring 7.4MB of disk space.
Users can download and launch applications directly from the collection. TinyJS can also turn a webpage into a desktop app by opening its URL in an application window.
In testing reported by The Register, the copy-and-paste utility experienced bugs on Windows, while the world clock worked properly and consumed 15.5MB of RAM. The launcher checks downloaded applications' hashes, although users must still trust the developer behind the project.
TinyJS highlights the continuing appeal of compact software. Smaller applications can start faster and use less memory than heavier alternatives, potentially reducing power consumption on laptops. Even on today's powerful computers, lightweight tools offer a practical way to add desktop functionality without the overhead of larger applications.














