A nostalgic portfolio website built with React and TypeScript, featuring a Windows 95-style interface with draggable windows and authentic UI elements.
- 🖼️ Authentic Windows 95 UI - Complete with title bars, buttons, and styling
- 🖱️ Draggable Windows - Click and drag windows around the desktop
- 📱 Responsive Design - Works on desktop, tablet, and mobile
- ⚡ Static Site - No backend required, fast loading
- 🎨 Custom Components - About, Projects, Blog, Resume, Socials, and Contact windows
- 📝 TypeScript - Full type safety and better development experience
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone https://github.com/yourusername/windows95-portfolio.git cd windows95-portfolio -
Install dependencies
cd client npm install -
Start development server
npm start
-
Open your browser Navigate to
http://localhost:3000
# Start development server
npm run dev
# Build for production
npm run build
# Type checking
npm run type-checkwindows95-portfolio/
├── client/ # React application
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # React components
│ │ │ ├── portfolio/ # Portfolio windows
│ │ │ └── ...
│ │ ├── data/ # Static JSON data
│ │ │ ├── about.json
│ │ │ ├── blog.json
│ │ │ ├── projects.json
│ │ │ ├── resume.json
│ │ │ └── socials.json
│ │ └── types/ # TypeScript definitions
│ └── package.json
├── vercel.json # Vercel deployment config
├── netlify.toml # Netlify deployment config
└── README.md
Edit the JSON files in client/src/data/ to customize your portfolio:
about.json- Personal information and skillsresume.json- Work experience, education, certificationsprojects.json- Your projects and portfolio itemsblog.json- Blog posts and articlessocials.json- Social media links and contact information
The Windows 95 styling is defined in:
client/src/App.css- Main desktop and window stylesclient/src/components/Window.css- Window-specific stylesclient/src/components/portfolio/PortfolioWindow.css- Portfolio window styles
Live Site: https://super-banoffee-66f0cb.netlify.app
✅ Automatically Deployed - Connected to GitHub with CI/CD
-
Automatic Deployments
- Every push to
mainbranch triggers a new deployment - Pull requests get preview deployments
- Build logs and deployment status in Netlify dashboard
- Every push to
-
Manual Deployment
npm run build netlify deploy --prod --dir=client/build
-
Connect to Netlify
- Go to netlify.com
- Connect your GitHub repository
- Netlify will use the
netlify.tomlconfiguration
-
Deploy
- Click "Deploy site"
- Your portfolio will be live!
-
Install gh-pages
cd client npm install --save-dev gh-pages -
Add deploy script to package.json
"scripts": { "deploy": "gh-pages -d build" }
-
Deploy
npm run build npm run deploy
-
Build the project
cd client npm run build -
Upload the
buildfolder to any static hosting service:- AWS S3 + CloudFront
- Firebase Hosting
- DigitalOcean Spaces
- Any web server
- Desktop Icons - Double-click to open windows
- Window Controls - Use the title bar buttons to minimize, maximize, or close
- Dragging - Click and drag the title bar to move windows
- Start Menu - Click the Start button to access all windows
- Taskbar - See open windows and switch between them
- React 19.1.1 - Modern React with latest features
- TypeScript 4.9.5 - Type safety and better development experience
- CSS3 - Custom Windows 95 styling and animations
- JSON - Static data storage (no database needed)
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you have any questions or need help, feel free to:
- Open an issue on GitHub
- Contact me through the social links in the portfolio
- Check the documentation
- Inspired by the classic Windows 95 operating system
- Built with modern web technologies for the best of both worlds
- Thanks to the React and TypeScript communities
Made with ❤️ and nostalgia for the golden age of computing