Портфолио-платформа
Многоязычное статически генерируемое портфолио с подробными кейсами, галереями скриншотов, формой связи и меню команд ⌘K — сделано как небольшой продукт, а не лендинг.
- Роль
- Дизайн и разработка
- Год
- 2026
- Стек
- Nuxt 4TypeScriptNuxt ContentTailwind CSS v4i18nVitest

Задача
Предыдущее портфолио было одной страницей на Vue 2: контент зашит в шаблоны, нет SEO, нет возможности подробно описать реальные проекты, а сборка перестала работать на современном Node.
Подход
- Статическая генерация на Nuxt 4 — каждая страница на трёх языках заранее рендерится в HTML, поэтому открывается мгновенно и полностью индексируется.
- Контент как данные — проекты и опыт хранятся в Markdown/YAML и валидируются Zod-схемами в Nuxt Content. Новый кейс не требует правок компонентов.
- Честные кейсы — коммерческие проекты помечены как закрытые с пояснением, что код закрыт по регламенту компании, а на скриншотах персональные данные размыты.
- Три языка — английский, узбекский и русский: маршруты с префиксом языка, теги
hreflangи английский фолбэк для непереведённых материалов. - Дизайн-система — семантические цветовые токены поверх Tailwind CSS v4, автоматическая светлая/тёмная тема и анимации с учётом reduced-motion.
- Связь, которая всегда работает — короткая форма, которая готовит письмо в Gmail или почтовом приложении, плюс телефон и копирование email.
- Клавиатура прежде всего — меню команд
⌘Kдля перехода к любой странице, проекту или действию.
Архитектура
content/<locale>/{projects,experience} → типизированные коллекции
app/composables/useLocalizedContent.ts → запросы с языковым фолбэком
app/pages/* → загрузка данных, сборка секций
app/components/{home,project,site,ui} → презентационные компоненты
server/routes/{sitemap.xml,robots.txt} → пре-рендер SEO-файлов
Результат
Быстрый, доступный сайт, который легко поддерживать: новый проект — это один Markdown-файл на каждый язык.
Следующий проект
Fendos