I wanted my blog to stand out. Not just another minimal markdown-rendered page, but something that feels like an experience. The Windows 98 desktop metaphor felt right because it’s nostalgic, playful, and surprisingly functional.
This blog is built with:
The entire desktop is a single React component hydrated on the page. Blog posts are pre-rendered by Astro at build time, then loaded into Internet Explorer-styled windows when you double-click a file on the desktop.
Each window tracks its own position, size, and z-index. The window manager uses a reducer pattern to handle all the state transitions: opening, closing, minimizing, maximizing, focusing, dragging, and resizing.
Post metadata (title, tags, dates) is passed as JSON props. The actual HTML content is embedded in the page and loaded on demand when you open a post. This keeps the initial load fast while making navigation instant.
I’m planning to add a second visual skin for technical posts, using a terminal/retro hybrid aesthetic. Stay tuned.