A modern, interactive personal portfolio for Giovanni Battista Pernazza, built with Next.js and React 19. Featuring a clean, terminal-inspired interface with dark mode, smooth animations, and dynamic project data fetching.
- Framework: Next.js 16 (App Router)
- Library: React 19
- Styling: Tailwind CSS
- Animations: Framer Motion
- API: Octokit (Fetching READMEs from GitHub)
- Deployment: Vercel
src/app/: Next.js App Router pages and layouts.src/components/: Reusable UI components (ThemeSwitcher, ProfileCard, etc.).src/lib/: Static data for projects and work experience.src/styles/: Global CSS and third-party style overrides.public/: Static assets (project screenshots, logos, favicons).
This project is designed to be lightweight and independent:
- Zero Database: Project data is managed via static files and dynamic GitHub API calls.
- Minimal Dependencies: Unused libraries (like bcrypt/Prisma) have been removed to keep the bundle size small.
- Turbopack: Uses the latest Next.js build tools for fast development cycles.
npm install
npm run devOpen http://localhost:3000 to see the result.
npm build
npm startThis project is open-source and available under the MIT License.