- Multi-language support with English and Russian translations
- Smart language detection via
Accept-Languageheaders - Cookie-based language persistence for returning visitors
- Seamless language switching component with flag indicators
- URL-based routing (
/en,/ru) for better SEO
- Animated blob background with dynamic, morphing shapes using clip-path animations
- Glassmorphism design with backdrop blur effects and semi-transparent cards
- Custom dark theme with carefully crafted color palette:
- Background:
#0f1113 - Foreground:
#e9ecef - Accent blob:
#059669(emerald green)
- Background:
- Golos Text font from Google Fonts with Cyrillic & Latin support
- Responsive layout optimized for all screen sizes including short viewports
- Built on Next.js 15 with App Router architecture
- React 19 with Server Components for optimal performance
- Static Site Generation (SSG) for blazing-fast page loads
- Direct links to GitHub profile
- Telegram DM button for quick contact
- Downloadable CV (PDF) with one click
- Middleware-based routing for automatic language detection and redirects
- CSS Modules for scoped, maintainable styles
- RTL support ready via i18next
dir()function - Type-safe with full TypeScript coverage
- Modular component architecture (Button, Heading, Paragraph, etc.)
- Node.js 18+
- Bun (recommended)
# Clone the repository
git clone https://github.com/dominnya/cv.git
cd cv
# Install dependencies
bun install
# Start development server
bun devOpen http://localhost:3000 to view the site.
-
Add the locale code to
src/app/i18n/settings.ts:export const languages = ["en", "ru", "de"]; // Add your locale
-
Create translation files in
src/app/i18n/locales/{lang}/ -
Add the flag emoji in
common.json
Edit tailwind.config.ts to customize the color palette:
colors: {
subtle: "#1b1d20",
foreground: "#e9ecef",
background: "#0f1113",
blob: "#059669", // Change accent color
}This project is open source and available under the MIT License.