Play web games offline with zero servers, zero setup, and zero CORS headaches.
Running exported HTML5 and WebGL games locally often results in frustrating browser security errors (CORS, file:/// restrictions, or missing web servers).
RunaWeb solves this completely by embedding an in-browser virtual server and runtime. It intercepts asset requests via Service Workers and shared CacheStorage, allowing games to run seamlessly offline—directly in your browser or installed as a standalone PWA.
- 🚀 Zero-Server Architecture: Drag & drop any game
.zipfile—runs in-memory without external hosting or CORS errors. - 📴 100% Offline & PWA: Installable directly to your home screen or desktop. Works completely in Airplane mode.
- 🕹️ On-Screen Virtual Gamepad: Translucent Cyberpunk touch controls (D-Pad & Action buttons) that simulate keyboard events on mobile devices.
- 🎮 Physical Controller Support: Native Gamepad API integration for Bluetooth and USB controllers (PlayStation, Xbox, 8BitDo).
- 💾 Persistent Arcade Library: Saves uploaded games in
IndexedDB(Afterplay-style) with auto-detected box art thumbnails. - 📦 Save State Manager: Export and import game
localStoragesave states across devices. - 📺 Retro Visuals & Theater Mode: Full-viewport immersion with CRT scanline filter toggles and 4:3 / 16:9 aspect ratio controls.
- ⚡ Blazing Fast: Powered by
fflatefor near-instant client-side zip decompression without frame drops.
- Core Engine: TypeScript, Vite, Modern Web APIs (Service Worker, CacheStorage, Gamepad API)
- Archive Engine: fflate (Ultra-fast in-memory zip handling)
- Storage: IndexedDB + CacheStorage
- Deployment: GitHub Pages via automated GitHub Actions CI/CD
Clone the repository and spin up the development environment:
# 1. Clone the repo
git clone https://github.com/M5Devs/RunaWeb.git
# 2. Navigate to project
cd RunaWeb
# 3. Install dependencies
npm install
# 4. Start dev server
npm run devBuild for production:
npm run build- Service Worker zero-CORS runtime pipeline
- Responsive Cyberpunk UI & Auto-Theater Mode
- On-screen Virtual Touch Gamepad & Physical Gamepad API
- IndexedDB game library & offline PWA caching
- Save data export / import
- Standalone Desktop & Android builds via Tauri 2 (Rust backend)
- Built-in WASM-4 fantasy console cartridge support
Distributed under the GNU General Public License v3.0 (GPL-3.0). See LICENSE for more information.