Mystral Native
Run JavaScript games natively with WebGPU (no browser)
Get picks like this daily. Today's launch numbers, the top launches, AI and tech news, and a daily opportunity pick, straight to your inbox.
Want to reach these readers? Sponsor an issue.
Hi HN, I've been building Mystral Native ā a lightweight native runtime that lets you write games in JavaScript/TypeScript using standard Web APIs (WebGPU, Canvas 2D, Web Audio, fetch) and run them as standalone desktop apps. Think "Electron for games" but without Chromium. Or a JS runtime like Node, Deno, or Bun but optimized for WebGPU (and bundling a window / event system using SDL3).Why: I originally started by starting a new game engine in WebGPU, and I loved the iteration loop of writing Typescript & instantly seeing the changes in the browser with hot reloading. After getting something working and shipping a demo, I realized that shipping a whole browser doesn't really work if I also want the same codebase to work on mobile. Sure, I could use a webview, but that's not always a good or consistent experience for users - there are nuances with Safari on iOS supporting WebGPU, but not the same features that Chrome does on desktop. What I really wanted was a WebGPU runtime that is consistent & works on any platform. I was inspired by deno's --unsafe-webgpu flag, but I realized that deno probably wouldn't be a good fit long term because it doesn't support iOS or Android & doesn't bundle a window / event system (they have "bring your own window", but that means writing a lot of custom code for events, dealing with windowing, not to mention more specific things like implementing a WebAudio shim, etc.). So that got me down the path of building a native runtime specifically for games & that's Mystral Native.So now with Mystral Native, I can have the same developer experience (write JS, use shaders in WGSL, call requestAnimationFrame) but get a real native binary I can ship to players on any platform without requiring a webview or a browser. No 200MB Chromium runtime, no CEF overhead, just the game code and a ~25MB runtime.What it does: - Full WebGPU via Dawn (Chrome's implementation) or wgpu-native (Rust) - Native window & events via SDL3 - Canvas 2D support (Skia), Web Audio (SDL3), fetch (file/http/https) - V8 for JS (same engine as Chrome/Node), also supports QuickJS and JSC - ES modules, TypeScript via SWC - Compile to single binary (think "pkg"): `mystral compile game.js --include assets -o my-game` - macOS .app bundles with code signing, Linux/Windows standalone executables - Embedding API for iOS and Android (JSC/QuickJS + wgpu-native)It's early alpha ā the core rendering path works well & I've tested on Mac, Linux (Ubuntu 24.04), and Windows 11, and some custom builds for iOS & Android to validate that they can work, but there's plenty to improve. Would love to get some feedback and see where it can go!MIT licensed.Repo: https://github.com/mystralengine/mystralnativeDocs: https://mystralengine.github.io/mystralnative/
HN · launched Jan 27, 2026 · 50 upvotes (top 20%) · 0 views
Niche: scripting and execution runtimes · 56 launches, 4 in the last 7 days · Explore this niche →
Category and tags
- Media & entertainment
- Dev tools
- Developer
- Not AI
- Commercial product
Visit website ↗ Source listing ↗
More like this: all 56 launches in scripting and execution runtimes →
Could you build this?
No Building a custom native runtime for JavaScript that exposes WebGPU, Web Audio, and Canvas directly without a browser engine requires extensive low-level graphics and systems programming.
What it would actually take: The system requires embedding a JavaScript engine (like V8 or QuickJS/JSC) and binding Web standard APIs directly to native libraries such as wgpu (WebGPU), Skia (Canvas 2D), and miniaudio (Web Audio) via C/C++ or Rust FFI. The hardest parts are maintaining spec-compliant event loops, windowing integration, memory lifecycle synchronization across the JS-native boundary, and cross-platform shader translation. This requires expert-level systems, graphics, and runtime engine software engineering.
Discussion
18 comments analyzed.
Competitors mentioned: Ejecta, Tauri, Electron, Three.js, Pixi.js
Concerns raised: WASM may only work with V8, not QuickJS builds, Alpha runtime may have bugs, Dawn builds are slow (1-2 hours on CI), Phaser currently uses WebGL renderer, not WebGPU, Apple may disallow JIT code on iOS
Feature requests: Hardware ray tracing support before WebGPU has it, Support for Three.js and Pixi 8 in v1.0.0, ANGLE and WebGL bindings in v2.0.0, Phaser.js compatibility, Companion builder for iOS WKWebView bundling setup
Competitors
Other products that read as similar to this one : 366 launches clear the similarity bar, closest 8 shown.
Attention rank: #105 of 367 (itself plus its competitors, highest first, normalized so YC and Product Hunt are compared fairly).
Launched 85 days after the earliest competitor.
- webxr-to-native · github · 2026-11-09 · 12 upvotes · similarity 0.56
- JavaScript web apps with WASM layout and GPU rendering in 280 KB · hn · 2026-11-07 · 46 upvotes · similarity 0.53
- Zephyr3D · hn · 2025-11-26 · 9 upvotes · similarity 0.52
- A WebGPU-based browser engine with "Blam "-style physics · hn · 2026-01-15 · 5 upvotes · similarity 0.50
- I ported Manim to TypeScript (run 3b1B math animations in the browser) · hn · 2026-02-25 · 140 upvotes · similarity 0.48
- Write native binary web apps with TypeScript and Express · hn · 2026-02-16 · 14 upvotes · similarity 0.46
- native-console · github · 2026-10-13 · 22 upvotes · similarity 0.46
- Ironwall, a safety-first native programming language and compiler · hn · 2026-06-06 · 16 upvotes · similarity 0.45
The niche, labels, vibe code rating and competitor comparison on this page are analysis by Nicheloom. If you use them, please credit nicheloom.com. How you may use our data.