This portfolio reimagines a standard website as a simulated desktop operating system. Built on an Astro static shell that hydrates a single React island, the site delivers a boot sequence, a window manager, and a virtual filesystem, without sacrificing modern maintainability or SEO.
Features
- Window Manager:
WindowManager.tsxandOSWindow.tsxhandle z-ordering, focus, drag, resize, minimize, and maximize for six independent windows — a top status bar and bottom taskbar tie it together. - Virtual Filesystem:
src/lib/filesystem.tsbuilds a Unix-style tree from the same content collections that feed the windows, sols,cd,cat, andpwdnever go stale. - Terminal as One App Among Six: The original terminal — with its own command history, Tab-completion, and
open <app>bridge into the window system — now lives inside its own window alongside About, Projects, Blog, Skills, and Contact. - 20 Internal Commands: Visitors can run commands like
resume,projects,neofetch,ls, andcatto view cleanly formatted output. - Pure CSS Styling: No external UI libraries — vanilla CSS and custom properties drive a CRT scanline effect, a token-based theme system, and the OS chrome.
- 4 Live Themes: Running
themes set amberordraculainstantly swaps the root color variables, persisting the choice vialocalStorage.
Architecture
To keep content easy to update, both the windows and the virtual filesystem read from the same data layer:
- MDX Collections:
blogandprojectsare written in MDX. Astro statically parses these at build time and passes the frontmatter into the React island as props. - JSON Timelines: The
resumecommand and the About window both parse standalone JSON files representing each career stop, filtering smoothly on subcommands likeresume experience.
The result is a highly engaging, interactive landing page that still builds to a lightning-fast static directory hosted for free on GitHub Pages.