win32.run

March 8, 2026 · View on GitHub

Windows XP in the browser — with a virtual file system, XP-style programs, Open/Save dialogs, third-party app support, and more.

Live License MIT Svelte 5 Cloudflare Pages

This is a refactored rewrite of the original win32.run, migrated to Svelte 5 and deployed on Cloudflare Pages instead of a VPS. The entire refactor — migration, new features, and bug fixes — was done by Claude Code, Anthropic's AI coding assistant, with no manual code changes.

https://github.com/user-attachments/assets/26cbd93d-b784-407b-bc0a-12e32afcb5e9


What is this?

win32.run is a nostalgia project — a faithful Windows XP simulation that runs entirely in your browser. No server-side processing, no file uploads. Every user gets their own isolated OS session backed by IndexedDB.

Microsoft, Windows XP, and all program names/logos (WinRAR, Internet Explorer, Foxit, etc.) are trademarks of their respective owners. win32.run is purely for nostalgia and is not monetized.

Some games in the Games folder are embedded from CrazyGames. These are third-party embeds — CrazyGames may display ads within their games. I have no affiliation with CrazyGames and receive no monetary compensation of any kind from them.


Getting Started

git clone https://github.com/ducbao414/win32.run.cf.git
cd win32.run.cf
npm install

Dev server

npm run dev

Runs at http://localhost:3000.

Build

npm run build

Preview production build

npm run preview

Deploy to Cloudflare Pages

The easiest way is directly through the Cloudflare dashboard — no CLI needed:

  1. Push your fork to GitHub
  2. Go to Cloudflare DashboardWorkers & PagesCreatePagesConnect to Git
  3. Select your repository
  4. Under Build settings, choose SvelteKit as the framework preset — it will fill in the build command and output directory automatically
  5. Click Save and Deploy

Cloudflare will build and deploy on every push to your main branch from that point on.


Documentation

For adding programs, working with the virtual file system, and extending win32.run:

docs.win32.run