A modern, responsive portfolio website built with Next.js, featuring multi-language support, smooth animations, and a clean design.
- 🌐 Internationalization - Support for English, German, and Czech
- 🎨 Modern Design - Clean and professional UI with shadcn/ui components
- 🌓 Dark Mode - Automatic and manual theme switching
- ⚡ Performance - Server-side rendering and optimized assets
- 📱 Responsive - Mobile-first design that works on all devices
- 🔄 Smooth Transitions - Page transitions and scroll animations
- 📬 Contact Form - Server-side form handling with validation
- 🎯 SEO Optimized - Meta tags and semantic HTML
- Framework: Next.js 13 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Components: shadcn/ui
- Animations: Framer Motion
- Form Handling: React Hook Form
- Validation: Zod
- Deployment: Vercel
-
Clone the repository
git clone https://github.com/RedFox-Studios/matyas-hajek.com.git cd portfolio
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
The website supports multiple languages through Next.js's built-in i18n routing:
- 🇺🇸 English (default)
- 🇨🇿 Czech
- 🇩🇪 German
Language files are located in src/dictionaries/
.
src/
├── app/ # Next.js app router pages
├── components/ # React components
│ ├── ui/ # shadcn/ui components
│ └── ... # Custom components
├── lib/ # Utility functions
├── hooks/ # Custom React hooks
├── dictionaries/ # Language files
└── styles/ # Global styles
- Header - Navigation and language switching
- Footer - Social links and copyright
- ThemeToggle - Light/dark mode switching
- LanguageSwitcher - Language selection
- ContactForm - Form with validation
- PageTransition - Smooth page transitions
- ScrollToTop - Back to top button
Create a .env.local
file with:
NEXT_PUBLIC_SITE_URL=your-site-url
Contributions, issues, and feature requests are welcome!
This project is licensed under the MIT License - see the LICENSE file for details.
Matyáš Hájek
- GitHub: @maty7253
- Website: matyas-hajek.com
Made with ❤️ and a lot of ☕