πŸ“ˆ GH Trending Explorer 🎲 Surprise me

← all repos

tarwin / tinyjsapp

git clone https://github.com/tarwin/tinyjsapp.git v0.59.0 Β· today πŸ”₯ on GitHub Trending today

Build native apps in JS. Backend, frontend. ~5Mb.

+59
stars, 24h Β· #137
β€”
stars, 7 days
β€”
stars, 30 days
1.3k
β˜… total
44
forks Β· 10 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageC
LicenseMIT
Created2026-07-12 (3mo ago)
Last pushtoday
Watchers6
OwnerUser

Seen on GitHub Trending

  • 2026-10-20 β€” #3 daily in c Β· +59 β˜…

Links

README excerpt
# tinyjs
Tiny desktop apps for macOS, Windows and Linux: a
txiki.js backend + a native
webview window.
- **~6 MB shipped**, two real files β€” no Electron, no Node, no bundled Chromium
- **No HTTP server, no ports** β€” the page and the backend talk over a Unix
 domain socket in a private temp directory
- Backend is plain JavaScript with full system access (files, sockets,
 processes, FFI) via txiki.js
- Frontend is plain HTML/CSS/JS (multi-file, WebGPU included) rendered by
 the system WebKit
- Native menus, dialogs, **tray/menu-bar apps**, notifications, drag & drop
 with real file paths, window control
- Hot reload in dev, signed `.app` bundles out of `build`, **auto-update**
 out of `publish`
Questions, help, or something you built: come say hi on
Discord.
## Install
 [code] 
The same script now handles Linux too (it detects the OS). Installs to
`~/.tinyjs` and symlinks `tinyjs` onto your PATH. Pin a version with
`TINYJS_VERSION=vX.Y.Z`. Later, `tinyjs update` runs the copy of the
installer that came with your install if a newer release exists (`--check`
only reports, `--dry-run` shows what it would run); `tinyjs dev`
also mentions new releases, checking at most once a day. After updating,
run `tinyjs update-project` in each project to refresh its types and
coding-agent skill (see below). Linux needs the
system WebKitGTK runtime: `sudo apt install libwebkit2gtk-4.1-0` on
Debian/Ubuntu, `sudo zypper install libwebkit2gtk-4_1-0` on openSUSE.
Prebuilt binaries ship for Linux x86_64 and arm64 with the
first tagged release after Linux support merged β€” the installer says so
plainly against older releases.
To install from source instead:
 [code] 
On Linux, `setup.sh` needs the system dev packages first. Debian/Ubuntu:
`sudo apt install build-essential pkg-config libgtk-3-dev
libwebkit2gtk-4.1-dev libayatana-appindicator3-dev`. openSUSE:
`sudo zypper install gcc-c++ make pkgconf-pkg-config gtk3-devel
webkitgtk3-devel libayatana-appindicator3-devel` (WebKitGTK 4.1's dev
package is `webkitgtk3-devel` there β€” the "3" says GTK3, not an older
WebKit). It
downloads a prebuilt `tjs` from the tinyjsapp releases, or builds txiki.js
from source (`TJS_BUILD=1 ./setup.sh`, needs cmake + ninja).
**Windows:**
 [code] 
Installs prebuilt binaries to `%LOCALAPPDATA%\tinyjs` (override with
`TINYJS_HOME`; pin with `TINYJS_VERSION`) and adds it to your user PATH β€”
open a new terminal afterwards. Needs only the WebView2 runtime
(preinstalled on Windows 11). `tinyjs update` runs the installer's bundled copy.
(Requires a release that ships Windows assets β€” the first one after Windows
support merged; the installer says so plainly against older releases.)
To develop tinyjs itself from source (needs MinGW-w64:
`winget install BrechtSanders.WinLibs.POSIX.UCRT`):
 [code] 
**Linux:**
Runs on X11 and Wayland sessions β€” Ubuntu 24.04+ and current distros with
`webkit2gtk-4.1`. Use the same install command above (it detects Linux) or
build from source with `./setup.sh` (see the distro d