Premium personal portfolio built with Next.js 15, focused on a futuristic product-style UI and a recruiter-friendly presentation of resume, projects, and contact channels.
This project is designed to:
- Present a clear professional profile
- Showcase technical projects with strong scannability
- Provide direct, trustworthy contact options for internships and junior roles
The goal is not a generic template, but a polished, production-ready personal website.
/Home with high-impact hero and navigation flow/resumeStructured CV experience from local typed data/projectsCurated project showcase with featured and full portfolio views/contactFinal conversion section for collaboration and hiring outreach
- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS
- Framer Motion
- Lucide React
- OGL (for background shader effect)
.
+-- app/
| +-- layout.tsx
| +-- page.tsx
| +-- resume/page.tsx
| +-- projects/page.tsx
| `-- contact/page.tsx
+-- components/
| +-- Navbar.tsx
| +-- HeroSection.tsx
| +-- BackgroundEffect.tsx
| +-- Iridescence.tsx
| +-- TargetFrame.tsx
| +-- ScrollReveal.tsx
| +-- home/
| +-- resume/
| +-- projects/
| `-- contact/
+-- lib/
| +-- site-config.ts
| +-- metadata.ts
| +-- resume-data.ts
| +-- projects-data.ts
| +-- contact-data.ts
| `-- utils.ts
+-- public/
| `-- Spyridon_Andreou_CV1.pdf
+-- styles/
| `-- theme.css
+-- app/globals.css
+-- package.json
`-- README.md
Content is intentionally local and typed for reliability and maintainability:
lib/resume-data.ts: personal profile, skills, education, experience, certifications, languageslib/projects-data.ts: project catalog, categories, status, featured flags, linkslib/contact-data.ts: contact cards, social links, CTA contentlib/site-config.ts: global identity and shared links (email, GitHub, CV, metadata defaults)
- Dark futuristic visual identity
- Glassmorphism surfaces with restrained cyan/blue accent
- Subtle glow and cinematic grain for depth
- Scroll-reveal and micro-interactions tuned for clarity (not visual noise)
- Fully responsive layout across mobile, tablet, and desktop
npm install
npm run devOpen: http://localhost:3000
npm run dev
npm run build
npm run start
npm run lintThe resume download button points to:
public/Spyridon_Andreou_CV1.pdf
If you want to replace the CV, keep the same filename or update siteConfig.links.cv in lib/site-config.ts.
Optimized for Vercel deployment.
npm run buildSet NEXT_PUBLIC_SITE_URL in production for canonical/metadata consistency.
Included:
- UI foundation and premium styling
- Resume, Projects, Contact experiences
- Typed local data architecture
Not included yet:
- GitHub API integration
- Backend contact form submission
- PDF parsing or upload workflows
- Terminal/admin tooling