A fully interactive, dual-mode (macOS Sonoma & Windows 11) web desktop portfolio built with React 19, Vite, GSAP, and modular SCSS.
π https://mac-os-y6za.onrender.com
Traditional developer portfolios are often static, single-page resumes that look identical to one another. This project re-imagines the portfolio experience as an interactive operating system desktop.
Visitors can interact with real draggable and resizable windows, launch an interactive CLI terminal to inspect commands, browse projects inside a simulated web browser, navigate a virtual filesystem through Finder or File Explorer, and query an embedded AI assistant. It provides an engaging, memorable showcase of full-stack engineering skills, component architecture, and modern UI/UX design.
- Dual-OS Environment (macOS Sonoma & Windows 11): Instant switching between macOS and Windows 11 design languages with smooth GSAP crossfade transitions, preserving open window states across environments.
- Window Management System:
Multi-window multitasking powered by
react-rnd, featuring dragging, resizing, minimizing, maximizing, focus layering (dynamic z-index), and outside-click dismissal. - Interactive Terminal (CLI):
A functional developer terminal powered by
react-console-emulatorsupporting custom commands:whoami,about,skills,projects,education,experience,contact, andresume. - Virtual File Explorer & Filesystem: Hierarchical file navigation through Finder (macOS) and File Explorer (Windows), featuring breadcrumbs, grid/list view toggles, documents, and clickable project directories.
- Embedded AI Assistant (Siri / Copilot): An interactive conversational assistant that answers recruiter questions about skills, background, university education, projects, and contact info, complete with one-click action triggers that open corresponding apps.
- Simulated Web Browser (Safari / Edge): An in-app browser with back/forward history navigation, reload capability, URL address bar, and routed views for Home, Projects, About, and Contact.
- Markdown & Syntax-Highlighted Note Viewer:
A native Notes application reading markdown content with code syntax highlighting via
react-markdownandreact-syntax-highlighter. - Resume Viewer with Resilient Fallback: An in-window document viewer with an integrated fallback card displaying verified credentials and direct download options if the PDF is loading or unavailable.
- Spotlight & Universal Search:
Global search overlay accessible via keyboard shortcut (
Cmd+Spaceon macOS,Win+SorCtrl+Kon Windows) to quickly filter and launch applications, documents, and contacts. - Control Center & Customization: Quick Settings panel with working toggles for system appearance, animation performance, desktop wallpapers, and volume/brightness sliders.
- System Boot & Lock Screen Sequences: Realistic Apple / Windows boot sequence animations and an interactive lock screen with real-time clock and date display.
- React 19: Component-based UI architecture, custom hooks, and React Context API.
- Vite 7: Next-generation frontend tooling for rapid development and optimized production builds.
- Modular SCSS (Sass): Scoped stylesheets, BEM naming, CSS variables, and glassmorphism styling.
- GSAP 3 (GreenSock Animation Platform): High-performance UI micro-animations, timeline transitions, and OS mode switches.
- React Icons: Iconography for system status bars, dock items, taskbar tray, and explorer folders.
- react-rnd: Draggable and resizable windowing framework with responsive boundaries.
- react-console-emulator: Interactive CLI terminal emulator with command registration.
- react-markdown: Markdown parser for documentation notes.
- react-syntax-highlighter: Code highlighting inside the notes application.
- React Context API: Centralized
CreateWindowContextcoordinating window states, z-index layers, search modals, and active OS modes. - HTML5 LocalStorage: Persistent storage for wallpaper preferences, desktop icon coordinates, and appearance settings.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WindowContext β
β (Window States, Z-Index, OS Mode, Notifications, Modals) β
ββββββββββββββββ¬ββββββββββββββββββββββββββββββββ¬βββββββββββββββ
β β
βββββββββΌβββββββββ ββββββββββΌββββββββ
β Mac Desktop β β WindowsDesktop β
β (Nav + Dock) β β(Taskbar+Start) β
βββββββββ¬βββββββββ ββββββββββ¬ββββββββ
β β
βββββββββββββββββ¬ββββββββββββββββ
β
ββββββββββββββββΌβββββββββββββββ
β Shared Windows β
β βββββββββββββββββββββββββββ β
β β’ Terminal (CLI) β
β β’ File Explorer / Finder β
β β’ GitHub Projects Window β
β β’ Notes (Markdown Viewer) β
β β’ Web Browser (Safari/Edge) β
β β’ Resume Viewer β
β β’ Hire Me / Contact Card β
β β’ Settings & Control Center β
β β’ AI Assistant (Siri/Copilotβ
βββββββββββββββββββββββββββββββ
- Boot & Unlock: When the user opens the application, an initial boot timeline is executed via GSAP. Once booted, the lock screen displays the current time and user profile, unlocking upon click or keypress.
- Context-Driven State Management: Every application window is registered in
src/assets/appRegistry.js. TheCreateWindowContexttracks visibility (windowState), minimization (minimizedState), and stacking order (zIndexMap). - Multitasking & Window Layering: Clicking any window brings it to the top by incrementing its z-index through
bringToFront(appName). Windows can be dragged freely across the desktop or maximized to fill the workspace. - OS Mode Switching: Toggling between macOS and Windows swaps the outer shell (Dock + Top Bar vs. Taskbar + Start Menu) while keeping active window instances open and mounted seamlessly.
- AI Assistant Intent Matching: Queries entered into the AI chat assistant are parsed through an intent matcher in
chatFaqData.jsthat maps keywords to verified developer information and triggers direct app actions.
Mac-OS/
βββ public/ # Static assets, icons, wallpapers & notes
β βββ doc-icons/ # Dock and taskbar SVG icons
β βββ navbar-icons/ # Top bar icons (Apple logo, controls)
β βββ project_img/ # Project showcase preview graphics
β βββ note.md # Markdown document loaded by Notes app
β βββ Wallpaper.jpg # Default desktop wallpaper
β
βββ src/
β βββ assets/
β β βββ appRegistry.js # Central definitions & titles for all windows
β β βββ github.json # Featured projects & verified repositories
β β βββ profile.js # Re-exported central profile data
β β βββ wallpapers.js # Curated wallpaper collection & gradient styles
β β
β βββ components/
β β βββ apps/ # Standalone application components
β β β βββ Browser.jsx # In-app web browser (Safari / Edge)
β β β βββ Explorer.jsx # Finder / Windows File Explorer
β β β βββ HireMe.jsx # Contact card & direct action buttons
β β β βββ SettingsApp.jsx # Appearance, wallpapers & OS preferences
β β β
β β βββ boot/ # Boot sequence & lock screen
β β β βββ BootScreen.jsx # GSAP-animated boot screen
β β β βββ LockScreen.jsx # Clock lock screen with click-to-unlock
β β β
β β βββ notifications/ # Notification Center flyout
β β β βββ NotificationCenter.jsx
β β β
β β βββ shared/ # Overlays common to both OS environments
β β β βββ AIChatAssistant.jsx # Siri / Copilot conversational assistant
β β β βββ QuickSettingsPanel.jsx # macOS Control Center / Win Action Center
β β β βββ ShortcutsModal.jsx # Keyboard shortcuts reference guide
β β β βββ UniversalSearch.jsx # Spotlight / Windows Search (Cmd+Space / Win+S)
β β β
β β βββ widgets/ # Interactive desktop widgets (Clock, Profile, Stats)
β β β βββ DesktopWidgets.jsx
β β β
β β βββ windows/ # Core draggable desktop window views
β β β βββ Cli.jsx # Terminal emulator with registered commands
β β β βββ Github.jsx # Repository showcase cards
β β β βββ MacWindow.jsx # Window shell wrapper with RND controls
β β β βββ Note.jsx # Markdown reader with syntax highlighting
β β β βββ Resume.jsx # PDF viewer with fallback credentials card
β β β βββ Spotify.jsx # Music player embed window
β β β
β β βββ Dock.jsx # macOS-style bottom application dock
β β βββ MacDesktop.jsx # macOS shell layout
β β βββ Nav.jsx # macOS top menu bar
β β βββ WindowsDesktop.jsx # Windows 11 shell (Taskbar, Start Menu, Desktop)
β β
β βββ config/ # Static data & configurations
β β βββ chatFaqData.js # Intent matching engine & FAQ knowledge base
β β βββ filesystemData.js # Hierarchical virtual filesystem structure
β β βββ portfolioData.js # Central profile, experience & project details
β β βββ shortcutsData.js # OS-specific shortcut configurations
β β
β βββ context/
β β βββ WindowContext.jsx # Global state for windows, modes & overlays
β β
β βββ hooks/ # Custom React hooks
β β βββ useAIChat.js # AI chat state, typing delay & action triggers
β β βββ useKeyboardShortcuts.js # Global shortcut key listeners
β β βββ useOutsideClick.js # Click-outside detection for popups & modals
β β
β βββ App.jsx # Root component orchestrating OS modes
β βββ app.scss # Global styles and resets
β βββ main.jsx # Application entry point
β
βββ index.html # HTML entry point with SEO meta tags
βββ package.json # Project dependencies and npm scripts
βββ vite.config.js # Vite configuration
βββ README.md # Project documentation
To run this project locally, make sure you have Node.js (version 18 or higher recommended) installed.
git clone https://github.com/naitik-work/Mac-OS.git
cd Mac-OSnpm installnpm run devThe application will start locally at:
http://localhost:5173/
npm run buildTo preview the production build locally:
npm run previewnpm run lint| Shortcut | macOS Action | Windows Action |
|---|---|---|
Cmd + Space / Win + S |
Spotlight Search | Windows Search |
Ctrl + K |
Universal Search | Universal Search |
Win + D / F11 |
Minimize All Windows | Minimize All Windows |
Cmd + W / Alt + F4 |
Close Active Window | Close Active Window |
Escape |
Close Open Modals / Menus | Close Open Modals / Menus |
Naitik Chitransh
- Role: Software Engineer | MERN Stack Developer
- GitHub: @naitik-work
- LinkedIn: Naitik Chitransh
- Portfolio: naitik-portfolio-g42i.onrender.com
- Email: naitikchs16@gmail.com
This project is open-source and available under the MIT License.