Перейти к содержимому
Все проекты

Портфолио-платформа

Многоязычное статически генерируемое портфолио с подробными кейсами, галереями скриншотов, формой связи и меню команд ⌘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

© 2026 Yusuf Yuldashev. Все права защищены.