Skip to content
/ 98 Public

๐Ÿ’ฟ Web-based Windows 98 desktop recreation โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–“โ–“โ–’โ–“โ–’โ–’โ–‘โ–’โ–‘โ–‘โ–‘๐Ÿ—•๏ธŽ๐Ÿ——๏ธŽ๐Ÿ—™๏ธŽ

Notifications You must be signed in to change notification settings

1j01/98

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Discord GitHub Repo stars

A web based Windows 98 desktop remake.

Includes:

Features:

  • Drop files onto the desktop, and they'll be stored in a virtual filesystem
  • Load Windows themes! Many are included in the Themes folder on the desktop.
  • Easter eggs (try a famous cheat code ๐Ÿ˜‰)
  • Meticulous detail in many areas (although there's obviously lots "missing")
  • Help > Help Topics in Paint, Sound Recorder, Notepad, and Minesweeper
  • You can add the site to your homescreen on mobile

Try it out

๏ผฅ๏ผฎ๏ผด๏ผฅ๏ผฒใ€€ใ€€๏ผท๏ผฉ๏ผฎ๏ผค๏ผฏ๏ผท๏ผณใ€€๏ผ™๏ผ˜ใ€€ไฝ“้จ“ใธใ‚ˆใ†ใ“ใ

License

Not yet licensed. This project is currently source-available / shared source, but not open source.

Related Projects

Apps that it would be nice to integrate:

Other online operating systems / web desktops:

Name & Link Vague Description Repo & License Chat
ย Rahul.io another Windows 98 remake repo here - MIT license
ย Windowsย 93 a "fictional version of Windows" (not open source currently) Discord
๐Ÿก ZineOS emojis everywhere repo here - MIT license Discord
ย EmuOS emulator-focused Win9X desktop repo here - shared source Discord
ย OS.js a more serious web desktop repo here - simplified BSD license Gitter
ย Friend another serious one repo here - different licenses for different parts
ย CloudDesk another serious one (explicitly not open source)
ย AaronOS interesting aesthetic repo here - shared source Discord
ย Webย Desktop Windows 10 like "startpage"
ย System Windows 10 like thing
ย WinXP Windows XP repo here - MIT license
Windows 98 - Packard Belle Windows 98 repo here - shared source
X-WebDesktop-Vue Windows 7 repo here - MIT license
ย vue win3.1 Windows 3.1 repo here - shared source
ย VirtualDesktop Screenshot flows, several OSes
GUIdebook Screenshots, several OSes

Plus many more web desktops on Wikipedia, awesome-web-desktops, and awesome-OS.

Libraries:

Also:

Contributing

See CONTRIBUTING

Development Setup

  • Install Git if you don't already have it.
  • Install Node.js if you don't already have it.
  • Clone the repository.
  • Open up a terminal / command prompt in the project directory, and run npm install to install dependencies.
  • Install one global dependency: npm i -g browserfs@2.0.0 (this will be simplified in the future; I'm using two different versions of BrowserFS for some reason)
  • Run npm start to start up a live-reloading development web server.

When pulling changes from git, run npm install again in case there are any new or updated dependencies. (If you know package-lock.json hasn't changed, you shouldn't need to do this.)

Some dependencies are versioned with npm, but pulled into the repo with npm run pull-libs

Quality Assurance

Tests are written with Playwright. Spell checking is done with Cspell.

npm test
npm run lint

Debug tests or run them when code changes using the Playwright UI:

npx playwright test --ui

Quickly add tests using the code generator:

# Note: this runs the server, and currently leaves it running when closing the browser.
# Could use `start-server-and-test` to fix this, or see if there's an option in `npm-run-all`'s `run-p` command.
# (There's no option in `playwright codegen --help` to run the server, even though it's configured in `playwright.config.js`)
npm run test-codegen

There are also VS Code extensions for Playwright and Cspell (Code Spell Checker).

Managing Subrepos

To update subrepos, or push changes to them, install git-subrepo. You don't need this tool to clone the project and get up and running, as subrepos are just normal subdirectories with a .gitrepo metadata file.

Note that the metadata file references specific commit hashes, including between repositories, so it's best to avoid rebasing when subrepo updates are involved, i.e. once you do a subrepo command, it makes a commit, and you should leave it (and earlier commits) alone, and you should leave commits in the subrepo alone, before and up to any commits referenced by the containing project.

When making changes to a subrepo within the containing project: I'd recommend phrasing commit messages to apply to the subrepo, primarily, rather than the containing project, so that when you push the changes to the subrepo, the commit message will be appropriate.

If you so much as edit the commit message for a git subrepo pushed commit, you'd have to update the .gitrepo metadata file manually in the containing project, OR you could drop the commit you pushed and the git subrepo push commit (which updates the metadata) and do git subrepo pull instead (which btw gives you an option to rename the commit; and I think renaming that commit would be safe after the fact anyways as long as it's the last commit and not pushed).

TODO

See TODO

About

๐Ÿ’ฟ Web-based Windows 98 desktop recreation โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–“โ–“โ–’โ–“โ–’โ–’โ–‘โ–’โ–‘โ–‘โ–‘๐Ÿ—•๏ธŽ๐Ÿ——๏ธŽ๐Ÿ—™๏ธŽ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published