Modern, responsive, and interactive portfolio website built with React 19, TypeScript, Tailwind CSS, and Framer Motion.
- β‘ Modern Tech Stack: React 19 + TypeScript + Vite
- π¨ Responsive Design: Looks great on all devices
- π Dark/Light Mode: Automatic theme switching
- β¨ Smooth Animations: Professional animations with Framer Motion
- π± Mobile First: Mobile-first design approach
- π― SEO Optimized: Optimized for search engines
- β‘ Fast Loading: Performance optimizations
- π Analytics Ready: Vercel Analytics integration
- ποΈ PWA Ready: Progressive Web App support
- π§ Contact Form: Contact form powered by EmailJS
- π΅ Typing Animation: Dynamic heading animations
- Clone the repository:
git clone https://github.com/omerada/react-awesome-portfolio-website.git
cd react-awesome-portfolio-website- Install dependencies:
npm install- Set environment variables:
cp .env.example .envEdit the .env file and fill in your own values.
- Start the development server:
npm run dev- Open in your browser:
http://localhost:3000
- React 19 - Modern React hooks and features
- TypeScript - Type safety and better DX
- Vite - Fast build tool and dev server
- Tailwind CSS 3 - Utility-first CSS framework
- Framer Motion - Production-ready motion library
- React Router DOM - Client-side routing
- React Hook Form - Form management
- EmailJS - Email sending
- Lucide React - Modern icon library
- React Icons - Large icon collection
- Clsx - Conditional className utility
- Tailwind Merge - Tailwind class merging
- Vercel Analytics - Web analytics
- ESLint + Prettier - Code quality
- PostCSS + Autoprefixer - CSS preprocessing
src/
βββ components/
β βββ common/ # Header, Footer, ThemeToggle, BackToTop
β βββ sections/ # Hero, About, Skills, Projects, Experience, Testimonials, Contact
β βββ ui/ # Button, Card, Modal, ProgressBar, Timeline
βββ data/ # personal-info, skills, projects, experience, testimonials
βββ hooks/ # useTheme, useScrollspy, useLocalStorage, useIntersectionObserver
βββ types/ # TypeScript interface definitions
βββ utils/ # constants, helpers, animations
βββ assets/ # images, icons
Edit the src/data/personal-info.ts file:
export const personalInfo: PersonalInfo = {
name: 'Your Name',
title: 'Full Stack Developer',
subtitle: 'A passionate developer building modern web applications',
email: 'email@example.com',
phone: '+90 555 123 45 67',
location: 'Istanbul, Turkey',
bio: 'Short bio about you...',
avatar: '/images/profile.jpg',
cvUrl: '/documents/cv.pdf',
socialLinks: [
// Social links
],
};Define your projects in the src/data/projects.ts file.
List your skills by category in the src/data/skills.ts file.
List your work experience chronologically in the src/data/experience.ts file.
- Create an account on EmailJS
- Create a service and a template
- Add your values to the
.envfile:
VITE_EMAILJS_SERVICE_ID=your_service_id
VITE_EMAILJS_TEMPLATE_ID=your_template_id
VITE_EMAILJS_PUBLIC_KEY=your_public_keyYou can adjust the primary and dark color palettes in tailwind.config.js:
colors: {
primary: {
50: "#eff6ff",
500: "#3b82f6",
900: "#1e3a8a",
},
}Customize Framer Motion animations in src/utils/animations.ts.
- Offline support
- App-like experience
- Install prompt
- Service worker cache
- Responsive icons
# Build
npm run build
# Preview build
npm run preview
# Type check
npm run type-check
# Lint
npm run lint
# Format
npm run format- Push to GitHub
- Connect your GitHub account to Vercel
- Import the repository
- Add environment variables
- Deploy
- Run
npm run build - Upload the
distfolder to Netlify
- Create a build:
npm run build - Upload the
distfolder to your web server
- Lighthouse Score: 95+ (Performance, Accessibility, Best Practices, SEO)
- Core Web Vitals optimized
- Image lazy loading
- Code splitting
- Bundle optimization
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License.
Made with β€οΈ by Γmer Ada