Oxide is a desktop browser that runs WebAssembly directly — no HTML, no DOM, no JavaScript engine. Point it at awasm and it draws pixels. Built in Rust on wasmtime + GPUI, it exposes ~150 host APIs covering canvas, GPU/WGSL compute, hardware-accelerated video, audio, WebRTC, WebSockets, MIDI, camera, and storage. Every app is sandboxed by construction: capabilities are opt-in, memory and CPU fuel are bounded. Shipping an app means shipping a binary, not a tarball of HTML, CSS, JS, and npm risk
No reviews yetBe the first to leave a review for Oxide Browser
Maker
📌
Hey Product Hunt 👋
I'm the maker of Oxide.
I started this project after one too many nights debugging a CSS cascade and a 400-package npm tree just to ship a button. The web platform is incredible, but it's also a thousand-page spec pretending to be an application runtime. WebAssembly already lets us compile real languages to the browser — so I wanted to see what happens if you take that idea seriously and build a browser where the binary is the app, not a passenger inside an HTML document.
Oxide is exactly that. You point it at a .wasm URL and it runs. No HTML parser, no DOM, no JavaScript engine, no bundler, no npm. Just your compiled code talking to ~150 host functions through a capability-based sandbox.
A few things I'm proud of:
Real platform, not a toy — canvas, GPU compute via WGSL, hardware-accelerated video (FFmpeg), multi-channel audio, WebRTC, WebSockets, MIDI, camera/mic, storage, crypto. The example folder ships a video player, a P2P chat, and a fullstack notes app.
Airtight sandbox by construction — modules start with zero permissions. Memory is capped at 256MB, each frame gets bounded CPU fuel. No WASI, no filesystem, no escape.
Rust end-to-end — host, SDK, and examples are all Rust. You can read the entire stack in an afternoon.
Boring to ship — cargo build --target wasm32-unknown-unknown --release, drop the .wasm somewhere, done. No build chain to maintain.
It's early and opinionated. Some things you'd expect from a browser aren't here yet (and some never will be — that's the point). But it's real enough to build real things, and I'd love your feedback on whether the binary-first model is something you'd actually want to build for.
A few questions I'd genuinely love answered in the comments:
What's the first thing you'd try to build on a binary-first browser?
What capability is missing that would block you?
Does "no HTML/JS at all" feel freeing or terrifying?
Repo, demos, and download: github.com/niklabh/oxide
Happy to answer anything — architecture, sandbox design, why GPUI, why not WASI, why Rust, why now. Tear it apart 🙏