- Glassmorphism UI — frosted glass cards, blurred backgrounds, layered depth
- 1500-particle animated background — interactive canvas built from scratch
- Framer Motion animations — page transitions, scroll reveals, micro-interactions
- Parallax hero section — depth effect on scroll
- Project grid with filtering — categorized by Web, Mobile, Scripts, Other
- Project modals — detailed view with links to live demo and source
- Interactive skills section — categorized with experience levels
- Multi-language support — language context with EN/PL
- Fully responsive — mobile, tablet, desktop
| Category | Technologies |
|---|---|
| Framework | Next.js 15 (App Router), React 19 |
| Language | TypeScript 5 |
| Styling | Tailwind CSS 3.4, Framer Motion, Motion |
| Components | Radix UI, shadcn/ui, Lucide React |
| Forms | React Hook Form + Zod |
| Font | Geist (Vercel) |
| Package Manager | pnpm |
# Clone the repo
git clone https://github.com/KetusDev/PortfolioV2.git
cd PortfolioV2
# Install dependencies
pnpm install
# Start dev server
pnpm devOpen http://localhost:3000 in your browser.
pnpm dev # development
pnpm build # production build
pnpm start # production server
pnpm lint # lintPortfolioV2/
├── app/
│ ├── layout.tsx # Root layout with providers
│ ├── page.tsx # Main portfolio page
│ └── globals.css
├── components/
│ ├── glassmorphism-card.tsx
│ ├── glassmorphism-navbar.tsx
│ ├── interactive-skills-section.tsx
│ ├── projects-grid.tsx # Filterable project grid
│ ├── project-modal.tsx
│ ├── language-provider.tsx
│ └── kokonutui/
│ └── particles-background.tsx
└── lib/
└── utils.ts
Particle background — configure in app/page.tsx:
<ParticlesBackground
particleCount={1500}
noiseIntensity={0.002}
particleSize={{ min: 0.5, max: 2.5 }}
/>Projects — edit components/projects-grid.tsx
Skills — edit components/interactive-skills-section.tsx
Colors — edit tailwind.config.ts
Open for personal and educational use. Attribution appreciated.
Built by KetusDev · ketusdev.pl