A small React project that recreates a desktop-style UI in the browser (taskbar, windows, and a few simple apps). This is a personal learning / practice project.
Live demo: https://operating-system-nine.vercel.app
- Desktop with clickable app icons and a basic right-click menu
- Taskbar with Start button, clock/date, and a system tray panel
- Draggable window shell with minimize, maximize, and close controls
- Built-in apps:
- File Explorer: in-memory “virtual file system” with navigation (back/forward/up), breadcrumbs, search, sort, icon/details view, selection, rename, delete, and copy/cut/paste
- Notepad: simple text area
- Photos: small image viewer with next/prev and thumbnails
- Camera: webcam preview (requires browser permission)
- Edge clone: iframe-based viewer with basic navigation and a small whitelist of allowed sites
- React
- Vite
- JavaScript (ES modules)
- CSS + Sass (SCSS)
- ESLint
react-rnd(window drag/resize)
Prerequisites:
- Node.js (LTS recommended)
Install dependencies:
npm installRun locally:
npm run devBuild for production:
npm run buildPreview the production build:
npm run previewNotes for the Camera app:
- Camera access typically works on
localhostand on HTTPS origins. - Your browser will prompt for permission.
- This is a learning project and is not intended to be production-ready.
- The “File Explorer” uses an in-memory data model (no real filesystem access) and resets on refresh.
- Some UI elements are placeholders and may not be wired up yet.
- Persist window/app state (e.g., localStorage)
- Add window focus/z-index management
- Wire Start menu pinned apps to open windows
- Improve Edge clone UX (still keep strict sandboxing/allow-list)
- Add automated tests and/or basic accessibility checks