A modern, keyboard-first productivity application inspired by macOS Spotlight and system-level design patterns. Built with React, Vite, and Tailwind CSS, featuring adaptive desktop and mobile experiences.
- Features
- Architecture Overview
- Getting Started
- Technology Stack
- Project Structure
- Mobile & Platform Support
- Accessibility
- Development Roadmap
- Credits & Acknowledgements
- Draggable, resizable windows with minimize/maximize/close controls
- Multiple window instances with persistent positioning
- Task management and window layering
- Smooth animations and transitions
- Shortcut:
โ + Space(orCtrl + Spaceon Windows/Linux) - Unified search across apps, folders, files, commands, and calculations
- Scoped search:
find [query] in [folder] - Command execution:
open [app] - Calculator: Direct arithmetic expression evaluation
- Keyboard navigation with arrow keys and Enter
- Virtual file system with nested folder hierarchy
- File browser with folder navigation
- Text file editing and preview
- Image gallery browsing
- Document management
- Multi-view image gallery (grid, list, carousel)
- Favorite tagging and filtering
- Section-based organization (Library, Memories, Places, People, Favorites)
- Image metadata display
- Responsive image rendering
- Light and dark mode toggle
- System preference detection
- Persistent theme selection
- Glassmorphic design with backdrop blur
- High contrast accessibility support
- Full keyboard navigation throughout
- Arrow keys for list/grid navigation
- Tab for focus management
- Enter/Space for activation
- Escape to close modals/dialogs
- ARIA labels for screen readers
- Real-time weather display (via OpenWeatherMap API)
- Hourly forecast preview
- Geolocation support with fallback to default city
- Auto-refresh every 30 minutes
- Date picker with month navigation
- Current date highlighting
- Day-of-week headers
- Today indicator
- Adaptive Rendering: Automatic detection and switching between desktop and mobile experiences
- iOS App Interface: Dedicated mobile interface (iOS-inspired design)
- NFC Ready: Architecture prepared for future NFC functionality integration
- Responsive Breakpoints: Optimized layouts for all screen sizes
- Touch-Friendly: Mobile-optimized interactions and gestures
The application uses a sophisticated architecture to deliver platform-appropriate experiences:
// SSR-safe adaptive rendering with runtime responsiveness
const AppRoot = () => {
const [isMobile, setIsMobile] = useState(false);
useEffect(() => {
// SSR-safe responsive detection
if (typeof window === "undefined") return;
const mediaQuery = window.matchMedia("(max-width: 767px)");
setIsMobile(mediaQuery.matches);
const handleChange = (e) => setIsMobile(e.matches);
mediaQuery.addEventListener("change", handleChange);
return () => mediaQuery.removeEventListener("change", handleChange);
}, []);
return isMobile ? <IOSApp /> : <DesktopApp />;
};useState and useEffect to safely detect screen size at runtime, avoiding direct window access during server-side rendering or module initialization.
- Full macOS-inspired windowing system
- Draggable, resizable windows with GSAP animations
- Advanced keyboard navigation and shortcuts
- Complex multi-window management
- Rich desktop interactions (dock, menubar, spotlight search)
- iOS-native interface patterns
- Touch-first interaction design
- Optimized for mobile performance
- Simplified navigation structure
- Mobile-specific UI components
- State Management: Unified Zustand stores across platforms
- Component Library: Reusable UI components with platform variants
- Search Engine: Cross-platform search functionality
- Theme System: Consistent theming across desktop and mobile
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/Sasanka14/MacOs_Portfolio.git
cd MacOs_Portfolio
# Navigate to frontend folder
cd frontend
# Install dependencies
npm install
# Start the development server
npm run dev
# Build for production
npm run build
# Preview production build locally
npm run preview
# Run linter
npm run lintThe application will start at http://localhost:5173
- Set
VITE_WEATHER_API_KEYinfrontend/.env.localfor weather functionality:VITE_WEATHER_API_KEY=your_openweathermap_api_key_here
- React 19.2 โ Component-driven UI framework
- Vite 7.2 โ Lightning-fast build tool
- Tailwind CSS 4.1 โ Utility-first styling
- Zustand โ Lightweight global state (window, location)
- React Hooks โ Local component state
- GSAP 3.13 โ Professional animation library
- CSS Transitions โ Smooth property changes
- Lucide React โ 500+ beautiful icons
- React Tooltip โ Accessible tooltip component
- React PDF โ PDF document rendering
- Day.js โ Lightweight date formatting
- Immer โ Immutable state updates
- clsx โ className utility
MacOs_Portfolio/ # Root directory
โโโ backend/ # Backend API (Version 2)
โ โโโ .gitkeep # Placeholder for future backend
โโโ frontend/ # React application (Vite)
โ โโโ src/
โ โ โโโ AppRoot.jsx # Platform detection & routing
โ โ โโโ main.jsx # React entry point
โ โ โโโ index.css # Global styles + Tailwind
โ โ โโโ app/ # Platform-specific applications
โ โ โ โโโ desktop/ # Desktop experience
โ โ โ โ โโโ DesktopApp.jsx # Full macOS-inspired interface
โ โ โ โโโ mobile/ # Mobile experience
โ โ โ โ โโโ IOSApp.jsx # iOS-inspired mobile interface
โ โ โ โโโ nfc/ # NFC functionality (future)
โ โ โโโ components/ # Shared UI components (11 files)
โ โ โ โโโ Navbar.jsx # Top navigation bar
โ โ โ โโโ Dock.jsx # Bottom taskbar (desktop)
โ โ โ โโโ Welcome.jsx # Hero section + weather widget
โ โ โ โโโ SearchPalette.jsx # Global search interface
โ โ โ โโโ WindowControls.jsx # Window control buttons
โ โ โ โโโ ThemeProvider.jsx # Theme management context
โ โ โ โโโ ThemeMenu.jsx # Theme switching interface
โ โ โ โโโ UserMenu.jsx # User profile menu
โ โ โ โโโ LoadingScreen.jsx # App initialization screen
โ โ โ โโโ Home.jsx # Main content area
โ โ โ โโโ index.js # Component exports
โ โ โโโ windows/ # Desktop window components (10 files)
โ โ โ โโโ Photos.jsx # Image & video gallery
โ โ โ โโโ Text.jsx # Text editor
โ โ โ โโโ Safari.jsx # Browser simulation
โ โ โ โโโ Terminal.jsx # Terminal simulation
โ โ โ โโโ Finder.jsx # File browser
โ โ โ โโโ Resume.jsx # Resume viewer
โ โ โ โโโ Teams.jsx # Team members showcase
โ โ โ โโโ Contact.jsx # Contact form
โ โ โ โโโ Image.jsx # Image viewer
โ โ โ โโโ index.js # Window exports
โ โ โ โโโ views/ # Specialized view components
โ โ โ โโโ LibraryView.jsx # Keyboard-accessible library
โ โ โโโ shared/ # Cross-platform shared resources
โ โ โ โโโ constants/ # App configuration & data
โ โ โ โ โโโ index.js # Navigation, apps, files config
โ โ โ โโโ store/ # Zustand state management
โ โ โ โโโ window.js # Window state (desktop)
โ โ โ โโโ location.js # Navigation state (global)
โ โ โโโ hooks/ # Custom React hooks (2 files)
โ โ โ โโโ useSearch.js # Search logic and indexing
โ โ โ โโโ useTheme.js # Theme management
โ โ โโโ hoc/ # Higher-order components
โ โ โโโ WindowWrapper.jsx # Window container wrapper
โ โโโ public/ # Static assets
โ โ โโโ icons/ # SVG and PNG icons
โ โ โโโ images/ # Portfolio images
โ โ โโโ videos/ # Video files
โ โ โโโ files/ # Document files
โ โ โโโ macbook.png # Hero image
โ โโโ package.json # Dependencies and scripts
โ โโโ vite.config.js # Vite build configuration
โ โโโ eslint.config.js # ESLint configuration
โ โโโ jsconfig.json # JavaScript configuration
โ โโโ index.html # HTML entry point
โ โโโ .env.local # Environment variables
โ โโโ .gitignore # Frontend ignore rules
โโโ README.md # Complete documentation
โโโ .gitignore # Root ignore rules
Multi-Platform Architecture:
- AppRoot.jsx: Platform detection and routing logic
- app/desktop/: Full desktop experience with windowing system
- app/mobile/: iOS-inspired mobile interface
- app/nfc/: Prepared for future NFC functionality
- shared/: Cross-platform resources (constants, store)
- components/: Reusable UI components for both platforms
Development Benefits:
- Clean separation of concerns between platforms
- Shared business logic and state management
- Easy to add new platforms (Android, desktop apps, etc.)
- Modular architecture for future backend integration
- โ Desktop Web: Full macOS-inspired experience
- โ Mobile Web: iOS-inspired responsive interface
- ๐ง NFC Integration: Architecture prepared (feature branch)
- ๐ฎ Native Apps: Planned for Version 3
- Automatic Detection: Responsive breakpoint at 768px
- Touch Optimization: Mobile-friendly interactions
- Performance: Optimized rendering for mobile devices
- iOS Design Language: Native iOS interface patterns
// Shared stores work across all platforms
import { useWindowStore } from '#shared/store/window';
import { useLocationStore } from '#shared/store/location';
// Platform-specific components
const DesktopWindow = () => { /* Desktop windowing */ };
const MobileSheet = () => { /* Mobile bottom sheet */ };The application maintains a unified, in-memory search index containing:
- Apps: Launchable applications
- Folders: Virtual file system navigation
- Files: Documents with metadata
- Commands: System-level actions (theme switching, navigation)
- Calculations: Safe arithmetic expression evaluation
Search ranking prioritizes exact matches, then keyword matches, then partial matches.
Windows are draggable, resizable React components powered by GSAP animations. Each window:
- Can be minimized/maximized/closed
- Maintains position and size in state
- Supports keyboard focus management
- Renders content from dedicated window components
Every interactive element is keyboard-accessible:
- Input fields are focusable and support text entry
- Buttons support Enter/Space activation
- Lists support arrow key navigation
- Dialogs can be closed with Escape
- Screen readers receive ARIA labels and descriptions
Status: Production-ready desktop experience
Completed Features:
- โ Desktop macOS-inspired interface
- โ Full windowing system with GSAP animations
- โ
Global search palette (
โ + Space) - โ Advanced keyboard navigation
- โ Dark/light theme system
- โ Weather API integration
- โ PDF rendering and document management
- โ Image gallery with multiple view modes
- โ Accessibility compliance (WCAG AA)
Status: Active development on feature-mobile branch
In Progress:
- ๐ง iOS-inspired mobile interface (
IOSApp) - ๐ง Mobile-optimized touch interactions
- ๐ง Responsive component variants
- ๐ง Platform detection and routing
- ๐ง NFC infrastructure preparation
Planned for Mobile:
- ๐ฑ Touch gestures and mobile navigation
- ๐ฑ Mobile-specific UI patterns
- ๐ฑ Progressive Web App (PWA) features
- ๐ฑ Optimized performance for mobile devices
Target: Full-stack application
Planned Features:
- ๐ง Node.js/Express backend API
- ๐ง Database integration (PostgreSQL/MongoDB)
- ๐ง User authentication (JWT, OAuth)
- ๐ง Real-time data persistence
- ๐ง File system operations
- ๐ง Email functionality
- ๐ง Advanced search indexing
- ๐ง Performance monitoring
Target: Production-grade platform
Advanced Features:
- โญ Native mobile apps (React Native)
- โญ Advanced NFC functionality
- โญ Elasticsearch integration
- โญ Microservices architecture
- โญ CI/CD pipeline
- โญ Comprehensive testing
- โญ Docker containerization
- โญ Horizontal scalability
This project is built with accessibility as a first-class concern:
- Keyboard Navigation: Full keyboard support for all features
- ARIA Labels: Semantic HTML with proper ARIA attributes
- Focus Management: Visible focus indicators throughout
- Color Contrast: WCAG AA compliant contrast ratios
- Screen Readers: Support for NVDA, JAWS, VoiceOver
- Dark Mode: Comfortable viewing in low-light environments
- Test with keyboard: Tab, Shift+Tab, Enter, Space, Escape, Arrow Keys
- Test with screen reader: VoiceOver (Mac), NVDA (Windows), JAWS
- Check with accessibility tools: Axe DevTools, WAVE, Lighthouse
This project demonstrates:
- React Hooks (useState, useEffect, useCallback, useMemo, useContext)
- Component composition and reusability
- Advanced state management patterns
- CSS-in-JS and utility-first styling
- Animation and interaction design
- Keyboard accessibility implementation
- System architecture and design patterns
- โ No actual file system access (simulated virtual files)
- โ No backend persistence (localStorage only for preferences)
- โ No real email/messaging (frontend simulation)
- โ Search limited to pre-indexed content
- โ Window positions reset on page reload
- โ Weather API requires external key configuration
- ๐ง Mobile interface in active development
- ๐ง iOS App component basic implementation completed
- ๐ง Platform detection working (768px breakpoint)
- ๐ง NFC folder structure prepared but empty
โ ๏ธ Mobile UI components need full implementationโ ๏ธ Touch interactions not yet optimizedโ ๏ธ Mobile-specific features incomplete
- ๐ Component refactoring for better mobile/desktop code sharing
- ๐ Performance optimization for mobile devices
- ๐ Better error handling and loading states
- ๐ Improved accessibility testing
- ๐ Code splitting for better bundle sizes
We welcome contributions! The project is actively developing mobile support on the feature-mobile branch.
- Fork the repository
- Clone your fork locally
- Switch to the appropriate branch:
git checkout feature-mobile # For mobile development git checkout main # For desktop features
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes with proper testing
- Commit with descriptive messages (
git commit -m 'Add mobile touch gestures') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request with detailed description
- ๐ฑ Mobile UI component development
- ๐จ iOS-inspired design implementation
- โก Mobile performance optimizations
- ๐งช Cross-platform testing
- ๐ Documentation improvements
- โฟ Accessibility enhancements
- ESLint configuration enforced
- React 19+ patterns and hooks
- Mobile-first responsive design
- Accessibility (WCAG AA) compliance
- Clean, self-documenting code
- Complete mobile interface in
IOSAppcomponent - Implement touch interactions for mobile devices
- Optimize performance for mobile browsers
- Add PWA features for better mobile experience
- Improve cross-platform state management
MIT License - Feel free to use this project for your own purposes.
This project stands on the shoulders of incredible open-source software and design inspiration.
Key inspirations:
- macOS โ System design and interaction patterns
- Spotlight โ Search interface design
- Raycast โ Keyboard-first productivity
- React โ Component architecture
- Tailwind CSS โ Design system and styling
- GitHub: @Sasanka14
- LinkedIn: Sasanka Writes
- Instagram: @sashank.codes_
- Blog: Insight Forged
Built on exceptional open-source tools and design inspiration:
- React 19.2 โ Component-driven UI framework
- Vite 7.2 โ Lightning-fast build tool
- Tailwind CSS 4.1 โ Utility-first styling
- GSAP 3.13 โ Professional animations
- Zustand 5.0.8 โ Lightweight state management
- Lucide React 0.554 โ Beautiful icon library
- React PDF 10.2 โ Document rendering
- React Tooltip 5.30 โ Accessible tooltips
- macOS Design System โ Interface patterns
- iOS Human Interface Guidelines โ Mobile design language
- Spotlight Search โ Search interface
- Raycast โ Productivity launcher patterns
Last Updated: February 7, 2026
Current Branch: feature-mobile (Active Development)
Project Status:
- โ Desktop Interface Complete (v1.0)
- ๐ง Mobile Interface in Development (v1.5)
- ๐ Backend Planning Phase (v2.0)
Made with โค๏ธ by Sasanka