Owear.

Build your desktop apps with your own tools — and with everything you want.

$ npm i -g @owear/cli

Available on Linux and Windows

Native for real

Your own kernel and the system WebView. No bundled Chromium.

Small binaries

The base kernel is around 2 MB. Less weight, faster startup.

TypeScript end to end

A typed SDK in the main process and in the renderer.

Installers and updates

Real installers and auto-update with delta, signing and rollback.

Native code when you need it

Add C++ modules to your app and call them from TypeScript.

Open source

Apache-2.0, developed in the open on GitHub.

From zero to app

Four commands, that's it.

ow create scaffolds a project with the UI ready, ow dev brings up the kernel + Vite with hot-reload, and ow build produces your binary, your installer or your update channel.

  • Hot-reload for the renderer and the main process
  • Native modules are discovered on startup
  • The renderer is standard web: use your own stack
bash — my-app
# create + run
$ ow create my-app
✓ project created in ./my-app

$ cd my-app && ow dev
  kernel   owear 0.1.4 (linux/x64)
  vite     ready in 320 ms
  window   http://localhost:5173

# package
$ ow build app
  release/my-app   1.9 MB
✓ done
Included

Desktop is hard. It's already done.

Owear takes care of the boring parts so you can focus on your app.

The system's own interface

Native windows, menus, tray, dialogs and notifications. Control the whole app lifecycle from the main process.

Automatic updates

Publish a signed channel and your app updates itself: it downloads only what changed and rolls back if something breaks.

Real installers

One installer binary with shortcuts, icon and its own uninstaller. No extra toolchains or dependencies.

Your native code, inside

When JavaScript isn't enough, add C++ to your app (.owm) and call it from the renderer like any other function.

No lock-in

Use the tools you already know.

The renderer is standard web: bring your own stack and build.

Vite React Vue Svelte Solid Astro Preact TypeScript Tailwind CSS esbuild
Benchmarks

Measured, not promised.

The same app (same HTML/JS) running on each framework, on Linux with Xvfb and software rendering: warmup + 3 interleaved runs, startup by marker (5 ms) and memory in PSS (proportional, so shared pages aren't counted twice).

70%
Owear’s net score vs Electron

Geometric mean across 11 zones. Baseline Electron = 100%; lower is better.

Owear Electron Tauri Neutralino
Startup (ms)1,4381,0281,001958
Idle RAM (MB, PSS)105248120129
Peak RAM (MB, PSS)334408255308
Size (MB)1.826211.63.0
Sequential IPC (ops/s)1,4963,1921,12723
Concurrent IPC (ops/s)4,21110,4492,886876
Payload 1 MB (ms)2811.527111
File 5 MB (MB/s)8311993116
Download 5 MB (ms)793068284
Native→render events (ev/s)250,00034,9901,37110,438
JS loop 20M (ms)27322424
Startup (ms)
Idle RAM, PSS (MB)
Peak RAM, PSS (MB)
Size (MB)
Sequential IPC (ops/s)
Native to renderer events (ev/s)

Medians over 3 runs (plus a discarded warmup). Electron bundles Chromium; Owear/Tauri/Neutralino use the system WebView. Neutralino measures its IPC through its own extension. Methodology and caveats: benchmarks/README.md.

Get started

Your first app in a minute.

01

Install the CLI

$ npm i -g @owear/cli
02

Create a project

$ ow create my-app
03

Develop

$ cd my-app && ow dev
04

Build

$ ow build app

Requires: Node ≥ 20 and, on Linux, the WebKitGTK toolchain (see the documentation).

Build native desktop.

Open source, Apache-2.0. Get started in a minute.