OS-Themed Portfolio

My personal portfolio but Operating System themed.

Overview

The OS-Themed Portfolio is my personal portfolio designed to behave like a desktop operating system rather than a traditional website.

Instead of static pages, the interface simulates an operating system environment with draggable windows, a taskbar, real-time widgets, and interactive applications.

The goal was to experiment with advanced UI interactions, complex state management, and real-time behaviors while maintaining a smooth and responsive user experience.

Problem

Most developer portfolios follow a similar structure: static sections with minimal interaction.

While effective, they rarely demonstrate real engineering creativity or interactive design capabilities.

I wanted to build a portfolio that:

  • feels interactive and memorable
  • demonstrates complex frontend architecture
  • simulates a real desktop environment
  • allows users to explore projects through applications rather than pages

The challenge was to recreate the behavior of an operating system within a browser environment.

Constraints

  • Complex UI state – multiple windows, applications, and widgets must maintain independent state.
  • Window management system – windows must support dragging, resizing, minimizing, and focus management.
  • Smooth performance – animations and interactions should remain responsive.
  • Real-time components – widgets such as clocks and music player must update dynamically.
  • Limited music APIs – reliable public APIs for streaming metadata are scarce.

Key Engineering Decisions

Window management system

The interface is built around a window manager that tracks open applications, window focus, and window positioning.

Reason:
Simulating an operating system environment requires managing multiple application states simultaneously.

Tradeoff:
Managing window state and interactions adds significant frontend complexity.


Global state management using Zustand

Zustand was used to manage application state such as:

  • open windows
  • taskbar state
  • active applications
  • window stacking order

Reason:
Provides lightweight global state management without the boilerplate of larger state libraries.

Tradeoff:
Requires careful structure to avoid tightly coupled UI state.


Component-driven application architecture

Each “app” inside the OS is implemented as an isolated component.

Examples include:

  • file explorer
  • music player
  • project viewer
  • terminal

Reason:
Treating features as applications keeps the system modular and extensible.

Tradeoff:
Requires additional abstraction layers for app lifecycle and window management.


Self-hosted music API

Public music APIs were either unreliable or heavily restricted.

To enable the music player, I deployed a modified version of the JioSaavn API and hosted it myself.

Reason:
Provides consistent access to track metadata and streaming functionality.

Tradeoff:
Requires maintaining a custom API service.


Real-time UI updates

Certain UI elements such as widgets and the music player use real-time updates.

Reason:
Maintains the illusion of a live operating system environment.

Tradeoff:
Requires additional event handling and state synchronization.

Results

  • Built a fully interactive OS-style portfolio interface.
  • Implemented draggable and focusable application windows.
  • Created modular “apps” inside the portfolio environment.
  • Integrated a working music player using a self-hosted API.
  • Delivered a smooth and responsive UI experience.

Takeaways

Building the OS-themed portfolio provided deeper insights into complex frontend architecture and interaction design.

Key lessons:

  • Managing UI state across multiple interactive components requires strong architectural planning.
  • Window management systems introduce unique interaction challenges.
  • Modular application design improves extensibility in complex interfaces.
  • Creative UI experiments can turn a simple portfolio into a memorable user experience.