Zero Native is a Zig-based framework that creates desktop and mobile applications by hosting a webview within a thin Zig shell, enabling direct communication between JavaScript and native APIs through JSON bridges. Unlike Electron, which requires a Chromium + Node.js runtime, Zero Native produces extremely small binaries (as small as 2.9MB) by using the system's built-in webview or bundling Chromium when needed. The framework allows developers to scaffold React projects, customize app configurations through app.json, and achieve instant rebuilds during development. While it offers faster performance and smaller binaries compared to Electron, it requires some Zig knowledge for configuration and currently lacks some advanced features like custom title bar styling.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Zero Native: Vercel's Electron Killer Nobody Saw ComingAdded:
This is ZeroNative, a Zig-based native app builder by The Sel that can either use the system's web view or bundle the whole of Chromium just like Electron for desktop or mobile apps providing super tiny binaries and instant rebuilds for development. But, will the fact that you have to know a bit of Zig to use it properly put off JavaScript developers?
Hit subscribe and let's find out.
Although the Bun team are moving away from Zig to Rust, it's still a very cool language with no borrow checker, no lifetimes, and can call C directly, meaning any C library is a single import away without needing any glue code. And it's readable enough for JavaScript devs to pick up. In fact, if you want to watch me learn how to program in Zig from scratch, let me know in the comments. I think that'll be quite a fun thing to do. But essentially, ZeroNative is a thin Zig shell that hosts a web view rendering a front-end that uses JSON bridges so the JavaScript in the web view can communicate to the native Zig layer and vice versa, which is how it's able to reach OS-level APIs. And if you think this sounds like Electron Bun, well, it kind of is but with one huge difference, which we'll talk about later on in the video. But for now, let's go through a very simple demo. So, to get started, you first need to have Zig installed, which I've done with Mise, but you can also use Brew. Then install ZeroNative, and after you've done both of those things, you can run the command ZeroNative init to scaffold a new project. This is the name of my project, but it can be anything you want. I'm going to use the front-end flag with React, which is going to install a Vite React project, but it could also be Svelte, Vue, Next, or even just Vite.
So, if I hit enter, ZeroNative will add a few directories. If we CD into the demo project, we can see we have the app.zig object notation file, which I'll go through later. We've got assets for things like icons and other static assets, the build.zig file, which is for the Zig build graph, the JS bridge, and the web engine, and the front-end directory, which contains our front-end code. In fact, if we go into that, we can see it contains some files that we're used to seeing if we're a JavaScript developer. Now, at this point, if we run zig build run, this will install all the dependencies and open our app in a new window. Note, if you want to install Zero Native on an existing JavaScript project, I recommend using Vit, which is a minimal version, and then changing everything in this front end directory to have the code for your app. Zero Native also has a really cool dev server that owns the whole front end life cycle. So, if we run zig build dev, this compiles the binary and runs the Zero Native dev server. So, if I edit some code, we can see our native app update in real time. I can even run zig build package, which will build the native app so I can distribute it, and we can see it's here inside the zig out package directory at only 2.9 megabytes, which is very small. And some people have even been able to get it to under 1 megabyte. But what if I wanted to change the app icon, the name, or the web engine? Well, this is where the app z o n file comes in, where I can do things like change the icon name, the project name, and even the engine the app runs on, as well as the window size. And that is a very very quick overview of Zero Native. There are so many things I didn't get around to going through, like system tray icons, code signing, and embedded apps for iOS and Android. In fact, I need to spend some more time with it, which could lead to another video. But as great as Zero Native is, how does it compare to something like Electron, which also creates small, fast apps that use the system's native web view? Well, with Electron, Bun itself is the execution environment, because you have to write TypeScript for the main process. So, although a zig binary starts the app, the code runs inside a Bun web worker, which communicates with native APIs through Bun's FFI, which has to go through a C++ and Objective-C layer. But [music] with Zero Native, all you need is the zig binary. No JavaScript, no Bun, just zig communicates to the OS level APIs and any C libraries through a simple C import. This results in having the thinnest native shell possible compared to Electron. But right now, you may have to write a tiny bit of Zig to get everything you want out of Zero Native or at least change some configurations in a Zig object notation file. Also, Zero Native isn't as feature-rich as Electron, which allowed me to change the title bar style and even add some custom menu items. And those things unfortunately aren't supported right now in the app.json file. I also had to file an issue because building a package on macOS wasn't quite working for me the first time. But it could have been a skill issue on my part. Nevertheless, I'm sure the team are working hard on adding more features and fixing some of these issues as well as adding some cool mobile support. And if you can't wait for any of those features, well, it's open source, so just give the code to Claude, tell it what you want, and I'm sure it can add those features for you, right?
Related Videos
Agentforce NOW AMA: Build with React and Salesforce Multi-Framework
SalesforceDevs
490 views•2026-05-28
How agent o11y differs from traditional o11y — Phil Hetzel, Braintrust
aiDotEngineer
450 views•2026-05-28
WEB TECHNOLOGIES UNIT-2 | Degree 4th sem BCOM Computers web technologies unit-2 full explanation💯✅
LearnwithSahera
1K views•2026-05-29
More tests are always better? How to use AI to identify tests that bring little value
Alliance4Qualification
335 views•2026-05-29
Search Algorithms Explained in 60 Seconds! 🤖💨
samarthtuliofficial
218 views•2026-06-01
People of Game of Thrones using JavaScript DOM
AltCampus
296 views•2026-05-30
Introduction to Problem Solving Part - 1 | Lecture 1 | Intermediate DSA
ascensionix
107 views•2026-05-29
🚀 BCS613C Compiler Design | Module 1 to 5 Schema Evaluation 🔥 | VTU 6th Sem 💯 #VTU #bcs613c #exam
Pranavaa-y4y
104 views•2026-06-02











