Ship web
inside native.

A bundle format and runtime for delivering web resources to any webview-mounted platform — signed, versioned, and guaranteed to work offline.

Architecture
your source
app/main.tsx
styles/app.css
assets/*.png
package.json
bundle
Webview Bundle logo
app.wvb
2.1 MB · ed25519
webview host
iOSWKWebView
AndroidWebView
DesktopTauri / Electron
RNreact-native-webview
deterministic · signed · offline
01

Offline-first, by default.

Every bundle carries its full dependency graph. Mount it once and the app keeps working — subway, plane, dead network, doesn't matter.

await mount("app.wvb", { offline: true });
02

Written in web code.

Author with React, Vue, Svelte, or vanilla HTML. The build step emits a single .wvb artifact from any bundler output — no custom toolchain to learn.

wvb build ./dist --sign ed25519
03

Cross-platform contract.

One bundle format, identical runtime behavior on iOS WKWebView, Android WebView, Tauri, and Electron. No per-host packaging branches.

// Same bundle. Every host.
04

Native where it matters.

A typed bridge exposes host capabilities to your web code. Streaming IPC with cancellation and backpressure, adapters for Swift, Kotlin, and Rust.

const result = await native.fs.read(path);
platform
iOS
platform
Android
platform
macOS
platform
Windows
platform
Linux
Start now

Three commands from zero to a mounted bundle.

$ npm install -g webview-bundle$ wvb init my-app$ wvb build ./my-app --out app.wvb