# zero-native
zero-native is a Zig-based desktop app shell that lets you build native desktop apps with a web UI frontend. It produces sub-megabyte binaries with minimal memory usage and instant native rebuilds.
Created by [[Vercel]] Labs as an alternative to [[Tauri]] and [[Electron]].
The native layer is written in [[Zig]], which calls C directly (no binding generation, no unsafe wrappers). The frontend can use any web framework (Next.js, React, Vue, Svelte).
## Key characteristics
- **System WebView** (WKWebView on macOS, WebKitGTK on Linux) for the lightest footprint, OR **Chromium/CEF** when pixel-perfect cross-platform rendering is needed — same API, different trade-off
- **JS-to-native bridge**: `window.zero.invoke()` — origin-checked, permission-checked, size-limited
- **Security model**: WebView is untrusted by default; native commands, navigation, and window APIs are opt-in
- **`app.zon` manifest**: declares app metadata, icons, windows, web engine, security policies, bridge permissions
- **Status**: pre-release (2026); macOS 11+, Linux, Windows build paths; mobile C ABI for iOS/Android embedding
## Example usage
```bash
npm install -g zero-native
zero-native init my_app --frontend next
cd my_app
zig build run
```
## Comparison to alternatives
- vs [[Tauri]]: Tauri uses Rust; zero-native uses Zig (simpler, no borrow checker). Both use system WebView.
- vs [[Electron]]: Electron bundles Chromium (heavy). zero-native uses system WebView or optional CEF (lightweight by default).
## References
- GitHub: https://github.com/vercel-labs/zero-native
- Website: https://zero-native.dev
- Quick Start: https://zero-native.dev/quick-start
- App Model: https://zero-native.dev/app-model
- Bridge: https://zero-native.dev/bridge
- Web Engines: https://zero-native.dev/web-engines
- Security: https://zero-native.dev/security
## Related
- [[Tauri]]
- [[Electron]]
- [[Vercel]]