Vision

Krate exists because app portability is still broken.

A text file can move from one device to another. A photo can move. A web page can move. A serious native app usually cannot. It has to be rebuilt for each platform, then tested, packaged, signed, distributed, and maintained again.

Krate is a plan to put one runtime layer between apps and operating systems.

The 6 x 6 Problem

The dream is a full matrix:

App originRuns on
Windows appWindows, Linux, ChromeOS, Android, macOS, iOS
Linux appWindows, Linux, ChromeOS, Android, macOS, iOS
Web appWindows, Linux, ChromeOS, Android, macOS, iOS
Android appWindows, Linux, ChromeOS, Android, macOS, iOS
macOS appWindows, Linux, ChromeOS, Android, macOS, iOS
iOS appWindows, Linux, ChromeOS, Android, macOS, iOS

Krate does not magically run every existing native app today. The path is more practical: define a new portable app target that can become good enough for new apps, then build bridges and tooling over time.

The Bet

The same pattern has worked before:

Old problemMiddle layerWhat changed
Many CPUsLLVM IROne compiler front end can reach many chips.
Many serversJVM and .NET bytecodeOne backend app can run on many OSes.
Many browsersHTML, CSS, and JSOne site can reach almost every device.

Krate tries to bring that pattern to native apps:

  1. WebAssembly is the portable program format.
  2. UAPI is the standard app API.
  3. UCap is the permission model.
  4. Host adapters translate Krate calls into native OS calls.
  5. A bundle format and marketplace make apps installable.

Why This Might Work Now

  • WebAssembly is stable and widely understood.
  • The Component Model makes host APIs cleaner than raw WASM imports.
  • Rust, Go, TypeScript, C, and other languages can target WASM.
  • Desktop and mobile hardware are closer than they used to be.
  • Developers are tired of maintaining the same product in many stacks.

What Success Looks Like

At v1.0, a developer should be able to build one Krate app and ship it to the main desktop and mobile platforms with platform specific adapters doing the native work.

The hard requirements are:

AreaTarget
HostsWindows, macOS, Linux, iOS, Android, and web where possible
App format.krate bundle
RuntimeFast cold start and predictable memory use
APIsFiles, network, time, locale, UI, graphics, sensors, identity
PermissionsClear grants instead of silent host access
Developer flowNew project to running app in about a minute
Real proofParkSure or another real product running on Krate