Getting started
Introduction
What JDesk is, why it exists, and how it compares to Tauri and Electron.
JDesk builds cross-platform desktop apps from a Java 25 core and a web frontend, rendered in the operating system's own WebView — WebView2 on Windows, WKWebView on macOS, WebKitGTK on Linux. A small, native app with no bundled browser and no Rust.
The mental model#
A JDesk app has three parts:
- A Java core — your commands, events, and application logic, on the JVM with virtual threads.
- A web frontend — HTML/CSS/JS built with any stack (React, Vue, Svelte, or none), running in the system WebView.
- A platform adapter — a per-OS module that creates the native window and WebView through Java's Foreign Function & Memory API.
The frontend calls Java by invoking commands; Java pushes data back by emitting events.
Why JDesk exists#
- No bundled Chromium — use the WebView already on the machine, so apps stay small.
- No Rust — small binaries come from a trimmed JVM runtime image via
jlink. - No Node at runtime — the frontend is static files served over
jdesk://app/. - Type-safe IPC — commands are discovered at compile time and generate a typed TypeScript client.
- Secure by default — every command requires an explicit capability grant.