A modern, responsive personal portfolio website built with Next.js 16, TypeScript, and Tailwind CSS. Features internationalization support for Turkish and English languages.
- 🌍 Internationalization: Full support for Turkish and English languages
- 📱 Responsive Design: Mobile-first approach with Tailwind CSS
- 🎨 Modern UI: Beautiful gradient backgrounds and glass morphism effects
- ⚡ Performance: Built with Next.js 16 App Router for optimal performance
- 🔧 TypeScript: Full type safety throughout the application
- 📧 Contact Form: Working contact form with EmailJS integration
- 🎮 Interactive Elements: Animated skill cards and character sheet
- 🌙 Dark Mode: Built-in dark/light theme support
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Custom components with Radix UI
- Icons: Lucide React
- Email Service: EmailJS
- Node.js 18+
- npm or yarn
-
Install dependencies
npm install # or yarn install -
Set up environment variables
cp .env.example .env.local
Add your EmailJS credentials:
NEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id NEXT_PUBLIC_EMAILJS_PUBLIC_KEY=your_public_key
-
Run the development server
npm run dev # or yarn dev -
Open your browser Navigate to http://localhost:3000
The portfolio supports two languages:
- Turkish (
/tr) - Default language - English (
/en)
- Create a new dictionary file in
app/[lang]/dictionaries/ - Add the locale to
proxy.ts - Update the
Localetype inlib/types.ts
app/[lang]/dictionaries/tr.json- Turkish translationsapp/[lang]/dictionaries/en.json- English translations
Update your personal details in lib/constants.ts:
export const DEVELOPER_INFO = {
name: "Your Name",
title: "Your Title",
email: "your.email@example.com",
// ... other details
};Modify the data in lib/constants.ts to reflect your skills and experience.
The portfolio uses Tailwind CSS with custom configurations. Main styling files:
app/[lang]/globals.css- Global styles- Component-specific styles are inline with Tailwind classes
- Create EmailJS account at emailjs.com
- Set up email service (Gmail, Outlook, etc.)
- Create email template with these variables:
{{from_name}}- Sender's name{{from_email}}- Sender's email{{message}}- Message content
- Add credentials to
.env.local