A modern, responsive portfolio website built with Next.js, TypeScript, and Tailwind CSS to showcase AI engineering projects and professional experience.
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Dark Mode Support: Automatic dark mode based on system preferences
- Project Filtering: Filter projects by type (Professional/Hobby) and category (AI/ML, Web Dev, Game Dev, etc.)
- Fast Performance: Static site generation with Next.js for optimal speed
- SEO Optimized: Proper meta tags and semantic HTML for better search visibility
website_portfolio/
├── src/
│ ├── app/
│ │ ├── about/page.tsx # About page
│ │ ├── contact/page.tsx # Contact page
│ │ ├── projects/
│ │ │ └── page.tsx # Projects listing with filters
│ │ ├── layout.tsx # Root layout with navigation
│ │ ├── page.tsx # Homepage
│ │ └── globals.css # Global styles
│ ├── components/
│ │ └── Navigation.tsx # Navigation component
│ └── data/
│ └── projects.ts # Project data
├── public/ # Static assets
└── README.md
- Framework: Next.js 14+ with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Deployment: Vercel
- Node.js 18+ installed
- npm or yarn package manager
-
Clone the repository (or navigate to the project folder)
-
Install dependencies:
npm install- Run the development server:
npm run dev- Open http://localhost:3000 in your browser
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
- Push your code to GitHub
- Go to vercel.com
- Click "New Project"
- Import your GitHub repository
- Vercel will auto-detect Next.js and configure everything
- Click "Deploy"
Your site will be live at https://your-project.vercel.app
- Install Vercel CLI:
npm install -g vercel- Login to Vercel:
vercel login- Deploy:
vercel- For production deployment:
vercel --prodTo add a custom domain (e.g., patrickfelber.dev):
- Go to your project in Vercel dashboard
- Navigate to Settings → Domains
- Add your domain
- Update your DNS records as instructed by Vercel
To add a new project to your portfolio:
- Open
src/data/projects.ts - Add a new project object to the
projectsarray:
{
id: 'unique-id',
title: 'Project Title',
type: 'professional', // or 'hobby'
category: 'AI/ML', // or other categories
timeline: '2024',
role: 'Your Role',
status: 'Deployed', // optional
summary: 'Brief project description',
technologies: ['Tech1', 'Tech2', 'Tech3'],
highlights: [
'Achievement 1',
'Achievement 2'
],
slug: 'project-url-slug'
}- Save the file - the project will automatically appear on the site!
Edit tailwind.config.ts to customize the color scheme.
- Contact Info: Edit
src/app/contact/page.tsx - About Page: Edit
src/app/about/page.tsx - Homepage: Edit
src/app/page.tsx
- Place images in the
public/folder - Reference them in your code:
<Image src="/image-name.jpg" alt="..." />
To add a downloadable resume PDF:
- Place your resume PDF in the
public/folder asresume.pdf - The download link is already configured in the Contact page
A development task is already configured. To start the dev server:
- Press
Ctrl+Shift+P(orCmd+Shift+Pon Mac) - Type "Tasks: Run Task"
- Select "Start Dev Server"
Or simply run npm run dev in the terminal.
To add analytics:
- Install:
npm install @vercel/analytics - Add to
layout.tsx:
import { Analytics } from '@vercel/analytics/react';
export default function RootLayout({ children }) {
return (
<html>
<body>
{children}
<Analytics />
</body>
</html>
);
}For questions or issues:
- Email: patrick.felber@gmx.at
- Check Next.js documentation: nextjs.org/docs
- Check Vercel documentation: vercel.com/docs
Built with ❤️ using Next.js and deployed on Vercel