A modern, responsive portfolio website built with Next.js 15, Tailwind CSS, and Framer Motion. Designed for a Full-Stack Software Engineer freelancer based in Germany.
- Modern Tech Stack: Next.js 15 with App Router, TypeScript, Tailwind CSS
- Smooth Animations: Framer Motion for elegant interactions and transitions
- Responsive Design: Mobile-first approach, works perfectly on all devices
- Professional Sections:
- Hero landing page with animated elements
- About page with skills and bio
- Experience timeline with interactive tabs
- Project showcase with featured and additional works
- Contact form with validation
- SEO Optimized: Complete meta tags, OpenGraph, and Twitter Card support
- Performance Focused: Optimized images, fonts, and code splitting
- Accessibility: WCAG compliant with proper semantic HTML and keyboard navigation
- Framework: Next.js 15 with App Router
- Styling: Tailwind CSS
- Animations: Framer Motion
- Language: TypeScript
- Form Handling: React Hook Form
- Icons: React Icons
- Font: Inter from Google Fonts
- Deployment: Ready for Vercel
src/
├── app/ # Next.js App Router pages
│ ├── about/ # About page with skills and bio
│ ├── contact/ # Contact form page
│ ├── experience/ # Interactive experience timeline
│ ├── work/ # Projects showcase
│ ├── layout.tsx # Root layout with navigation
│ ├── page.tsx # Hero landing page
│ └── globals.css # Global styles and animations
├── components/ # Reusable React components
│ ├── Navigation.tsx # Header navigation with mobile menu
│ └── Footer.tsx # Footer with social links
└── ...
- Node.js 18.17 or later
- npm, yarn, or pnpm
-
Clone the repository
git clone https://github.com/carlomenjivar/portfolio-nextjs.git cd portfolio-nextjs -
Install dependencies
npm install # or yarn install # or pnpm install
-
Start the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser
Navigate to http://localhost:3000 to see the result.
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
Update the following files with your personal information:
-
Layout & SEO (
src/app/layout.tsx):- Update metadata (title, description, keywords)
- Change OpenGraph and Twitter Card data
- Update URL references
-
Navigation (
src/components/Navigation.tsx):- Update logo/initials
- Modify navigation items if needed
- Update resume link
-
Hero Section (
src/app/page.tsx):- Update name, title, and description
- Modify company highlights
- Update email and contact links
-
About Page (
src/app/about/page.tsx):- Update bio and personal story
- Modify skills and technologies
- Update professional photo placeholder
-
Experience (
src/app/experience/page.tsx):- Update work experience data
- Modify descriptions and achievements
- Update technologies used
-
Projects (
src/app/work/page.tsx):- Replace with your actual projects
- Update project descriptions, technologies, and links
- Add real project images
-
Contact (
src/app/contact/page.tsx):- Update contact information
- Modify social media links
- Configure form submission (currently simulated)
- Colors: Modify the color scheme in
tailwind.config.js - Fonts: Change fonts in
src/app/layout.tsx - Animations: Customize animations in
src/app/globals.css
The contact form currently uses a simulated submission. To integrate with a real backend:
- Replace the form submission logic in
src/app/contact/page.tsx - Add your preferred form handling service (Formspree, Netlify Forms, etc.)
- Update the success/error handling
- Push your code to GitHub
- Connect your repository to Vercel
- Deploy with zero configuration
The app can be deployed to any platform that supports Node.js:
- Netlify: Use
npm run buildand deploy theoutfolder - AWS Amplify: Connect your Git repository
- DigitalOcean App Platform: Deploy directly from GitHub
This portfolio is optimized for performance with:
- Server-side rendering (SSR) with Next.js
- Optimized images with
next/image - Code splitting and lazy loading
- Minimal bundle size with tree shaking
- Efficient CSS with Tailwind CSS
- Complete meta tags for search engines
- OpenGraph tags for social media sharing
- Twitter Card support
- Structured data markup
- Semantic HTML for accessibility
- Fast loading times for better rankings
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin feature/new-feature - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Design inspiration from Brittany Chiang
- Icons by React Icons
- Fonts by Google Fonts
Carlo Menjivar - carlo@unmega.com
Project Link: https://github.com/carlomenjivar/portfolio-nextjs
⭐ Star this repository if you found it helpful!