Run Windows XP Directly in Your Browser – No Virtual Machine Needed
A Reddit developer has open‑sourced win32.run, a web‑based emulator that reproduces the full Windows XP desktop—including games, Word, and file explorer—inside any modern browser without installing a VM, and provides step‑by‑step instructions for building and deploying the project.
Overview
win32.run is a fully client‑side recreation of the Windows XP desktop that runs in any modern browser. By opening https://win32.run/ and pressing Enter , users see the classic Bliss wallpaper, taskbar, Start menu and a virtual file system with C: and D: drives.
Technical Architecture
Built with Svelte and SvelteKit for the UI layer and Tailwind CSS for styling.
The application is compiled to static assets (HTML, JS, CSS) that can be served by any static web server.
All runtime logic executes in the browser; no server‑side code is required for the core emulator.
File storage is implemented with the browser’s IndexedDB API, providing a persistent virtual C: and D: drive for each user session.
Optional server components (e.g., NGINX + PM2) are only needed to host the static build on a VPS.
Key Features
Fully functional Windows XP UI, including right‑click context menus, desktop icons, and a working Explorer.
Classic utilities and games: Minesweeper, Solitaire, a Minecraft‑style sandbox, space‑shooter, etc.
Embedded Microsoft Word 98 editor capable of opening and editing .docx files.
Media playback with subtitle support (place an .mp4 and a same‑named .srt in the same folder).
ZIP compression and extraction.
Support for loading small third‑party tools and Flash ( .swf) files.
Hidden Internet Explorer window for browsing external sites (e.g., Hacker News, GPT‑5 news).
Running Locally
git clone https://github.com/ducbao414/win32.run.git
cd win32.run-main
npm install
npm run dev # starts development server at http://localhost:3000Production Build
npm run build # outputs static files to win32.run-main/build
npm run preview # preview the production build locallyDeployment
After building, copy the build directory, package.json and package-lock.json to a Linux VPS (e.g., Ubuntu on a $5/month Vultr instance). Install dependencies and start the server with PM2:
npm install
pm2 start build/index.js # serves the app on the VPS (default port 3000)Optionally configure NGINX as a reverse proxy to expose the service on standard HTTP/HTTPS ports.
Repository
The source code, documentation and issue tracker are hosted at https://github.com/ducbao414/win32.run. The project is open‑source and can be forked, modified, or self‑hosted.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Liangxu Linux
Liangxu, a self‑taught IT professional now working as a Linux development engineer at a Fortune 500 multinational, shares extensive Linux knowledge—fundamentals, applications, tools, plus Git, databases, Raspberry Pi, etc. (Reply “Linux” to receive essential resources.)
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
