Justin / Designer and engineer

04Tribute web app · 2026

Euclid

Windows 98 and Windows XP rebuilt in the browser, switchable in place: a working desktop with Paint, Notepad, Minesweeper, Winamp, AIM and Clippy.

Role
Design and engineering
Year
2026
Built with
SvelteKit 2, Svelte 5, TypeScript, Tailwind 4, Playwright
Status
Private tribute project

The brief

I wanted to see how close the web could get to the desktops I grew up on. Not a skin over a web page, but the behaviour itself: windows that stack and remember their place, a Start menu, the sounds, and the programs.

What I built

Euclid, a desktop that boots as Windows 98 or Windows XP and switches between them in place.

  • Working programs, not pictures of them: Paint, Notepad, Calculator, Minesweeper, Solitaire, Sound Recorder, Explorer windows, Winamp, AIM and Clippy.
  • One switch changes the era: the window chrome, the Start menu, the icons and the wallpaper all change together, and nothing you have open is lost.
  • Hundreds of unit and browser tests, including keyboard, screen-reader, reduced-motion and visual-parity checks.
Windows 98, then a switch to Windows XP: Paint stays open across it
Windows XP with Explorer and AIM open
Windows XP with Explorer and AIM open
Euclid on a phone
Euclid on a phone

How it works

SvelteKit with Svelte 5 and TypeScript throughout. Every window goes through one typed model for focus, stacking and relaunch, so the desktop behaves the same whether you open something from an icon, the Start menu or the taskbar.

What came of it

Euclid stays private: the look belongs to Microsoft, and Paint builds on 1j01’s Windows 98 project. It’s here for the craft: a large app, an unforgiving target for fidelity, and a test suite that keeps it honest.

Want something like this?

I build things like this for people with an idea and not enough hours. Tell me what you’re making.

Open to a few small projects: websites, apps and automation.

Email me at

hello@justinthevoid.com

If you can, mention

  • What you needa few lines is plenty
  • When you need ita date, or no rush
  • A rough budgeta range is fine

No fixed prices. Tell me the budget and I’ll say what fits.

What happens after you email

  1. You email what you need; I reply by email with questions.
  2. A written, fixed-scope proposal.
  3. I build it, and hand it over with everything you need to run it.