сигнал
100%
00:00:00

Привет!
Вы в портфолио-пространстве. Здесь можно посмотреть опыт за последние 3 года и пообщаться со мной и агентом в чате.

Понимаю что с этим делать
  • Об AI много говорят — я применяю его в реальных задачах и инструментах.
  • Инженеры и дизайнеры не понимают друг друга.
  • Дизайнеры саботируют погружение в код — будто это не их территория.
Прошлый опыт
  • ERP и CRM системы продукт
    Годы глубокого продуктового проектирования сложных систем.
  • Дизайн-системы system
    Многоуровневые, сложные — как с нуля, так и адаптация готовых решений.
  • Исследования research
    Изучал аудиторию, интервью и карты — разбирался, как всё устроено.
Статьи
  • 7 min read
    Голографический портфолио-агент — как мой сайт строит кейсы вживую
    Изогнутый 3D-экран в Three.js, чат с агентом, обученным на моём опыте, и handoff к основному Claude в моём терминале — который пишет MDX, билдит и кидает ссылку обратно посетителю. End-to-end за пару секунд.
  • 5 min read
    Как пушить мастер если ты дизайнер
    Дизайнер в репозитории — это не страшно. Что нужно знать про git, чтобы перестать бояться кнопки push.
Roman Pogorov Portfolio 2026
Designer

Claude Runner

Дизайнер, который полез в код и приручил AI — работаю на стыке всех трёх.
подробнее
Витрина
// архив · 2014 — 2026 · избранные работы

используй мышь и клавиши · ↑︎ ↓︎ ←︎ →︎

Health Samurai
CS/01 Дизайнер-инженер · 14 месяцев

80 инженеров, дизайнер и Claude Code

Большое дизайн приключение — как дизайнер-технарь жил в одной main-ветке с инженерами и строил генераторы, дизайн-систему и бренд через Claude Code.

  • AI-first
  • дизайн-система
  • генераторы
  • Figma ↔ code
Americor
CS/02 Дизайнер-инженер · 16 месяцев

Многобрендовая перестройка финтех-продукта.

Три платформы, несколько брендов, единый язык дизайна. Pre-IPO редизайн веба и мобильных приложений, четырёхслойная архитектура токенов с нуля, и code-first процесс, где Figma и Claude наконец разговаривают друг с другом.

  • Дизайн-система с нуля
  • Редизайн iOS Android Web
  • Инфраструктура
  • figma ↔ code sync
Americor

Многобрендовая перестройка финтех-продукта.

Три платформы, несколько брендов, единый язык дизайна. Pre-IPO редизайн веба и мобильных приложений, четырёхслойная архитектура токенов с нуля, и code-first процесс, где Figma и Claude наконец разговаривают друг с другом.

Americor — редизайнённый dashboard
Americor — дизайн-инфраструктура в Figma
Дизайн-система — компоненты + variables по платформам
// soon · Figma ⇄ Code пайплайн
TL;DR
  • С нуля построил дизайн-систему — 2 продукта × 3 платформы (web, iOS, Android), всё управляется централизованно из base- и semantic-слоёв.
  • Провёл редизайн продукта на трёх платформах перед выходом на IPO.
  • Выстроил и автоматизировал процесс сбора пользовательской обратной связи.
  • Внедрил подход Figma → Code → Figma: продуктовые гипотезы реализуются прямо на готовых интерфейсах, собранных из актуальных компонентов системы.
  • Собрал визуальный язык иконок и иллюстраций для всех приложений — через управляемый пайплайн нейрогенерации (ComfyUI → Figma Weavy), а не разовые «угадал стиль».

Ключевое решение, изменившее продукт, — разделение опыта клиента на фазы программы. Раньше клиент видел одинаковый UI на радикально разных этапах своего пути; я спроектировал отдельные интерфейсные состояния для каждой фазы — и из этого выросло остальное.

— NPS
45 78

Net Promoter Score. План бизнеса — 70, сделали 78. +33 пункта к стартовой точке после редизайна и системы фаз.

— CSAT
3.6 4.5

Customer Satisfaction по 5-балльной. План — 4.2, сделали 4.5. Меньше тревоги — выше доверие.

— DS COVERAGE
0% 50–60%

Покомпонентно раскатили дизайн-систему вместе с командами разработки. Покрыли больше половины интерфейсов на трёх платформах.

Семь параллельных линий работы. Цвет полоски — про интенсивность: основное направление, продуктовая работа, фон или короткий заход. Многое шло параллельно — поэтому редизайн, дизайн-система и Community-трек пересекаются в одних периодах.

// 2023 → 2025 · single bar per project · gradient = active → part-time
Основное В паре с другими дизайнерами Сайд-проект / поддержка
Q1 23
Q3 23
Q1 24
Q3 24
Q1 25
Q3 25
Q4 25
01 Онбординг и аудит
02 Дизайн-система
03 Redesign
04 Продуктовая разработка
05 Figma ↔ Code
06 Vibe-coded help apps
07 Нейрогенерация графики

01 — Контекст. Компания, роль, задача

Americor — финтех в сфере debt relief. Помогает людям выходить из долгов через программы реструктуризации. Дочерние бренды в разных штатах со своей визуальной идентификацией — это связано с различиями в законодательстве. Продукт: веб-приложение (десктоп + адаптив) + мобильные приложения для iOS и Android.

Моя роль — Lead Product Designer. Репортил продакт-менеджеру (→ CPO). В команде junior-дизайнер — менторил, постепенно вовлекал в задачи возрастающей сложности.

Задача сразу была тройная: редизайн продуктовой линейки (компания готовилась к IPO); поднять NPS и CSAT; построить дизайн-систему с нуля и реально внедрить её в работу — не файл в Figma, а инструмент команды.

02 — Старт. Что было на старте

Единой дизайн-системы не существовало: переиспользуемые блоки лежали россыпью по файлам Figma, и при создании нового макета дизайнер собирал страницу из разрозненных кусков вручную. Поддерживать и масштабировать так — невозможно.

Предыдущая попытка фриланс-дизайнера на фирменный стиль провалилась — 40–50% за полгода, человек ушёл. Разработчики тратили недели на поиск «источника правды» для компонентов.

Главное: никаких артефактов о том, как устроен продукт, не существовало — ни user flow, ни process maps, ни документации. Понимание жило в головах отдельных людей.

03 — Подход. Разобраться в продукте с нуля

Поскольку документации не было, я начал с интервью — с аналитиками, бизнесом, разработчиками. Восстанавливал логику продукта по кускам.

Чтобы валидировать понимание, собрал Product Flow Diagram — end-to-end карту со всеми флоу, ветвлениями по бизнес-правилам (Primary Flow для долгов > $7500, Secondary для меньших) и состояниями пользователя на каждом этапе. Это стало первым в компании единым источником правды.

Product Flow Diagram — end-to-end карта продукта
Product Flow Diagram — end-to-end карта продукта со всеми ветвлениями.

Параллельно — аудит макетов и реальной сборки приложений (поставил тестовые билды, прошёл флоу сам). Опирался на здравый смысл, продуктовый опыт и UX best practices. Часть проблем была очевидной: где-то не хватало информации, где-то запутывали пользователя, где-то некорректно показывали данные, где-то не давали прозрачности по платежам. Проблем накопилось много.

04 — Система. Дизайн-система для двух продуктов на трёх платформах

Двухуровневая структура с разветвлением:

  • Base — базовые значения: палитра цветов, шкалы отступов, типографика, размеры.
  • Semantic — смысловой слой поверх base. Токены получают осмысленные имена (intent, surface, action) и разветвляются на 2 продукта × 3 платформы: Web, iOS, Android. Все варианты управляются централизованно из одного места.

Параллельно реорганизовал структуру в Figma: итерации, ветки для разработки, понятная навигация. Покомпонентно раскатывали на текущие приложения вместе с командами разработки — покрыли ~50–60% интерфейсов.

Структура дизайн-системы в Figma
Структура дизайн-системы в Figma — base → semantic с разветвлением на 2 продукта × 3 платформы (web / iOS / Android).

05 — Редизайн. IPO и адаптация дизайн-системы

Через ~3 месяца работы пришёл бизнес: компания готовится к IPO, нужен полный редизайн. Ситуация нетривиальная — система, спроектированная под существующий дизайн, должна была начать поддерживать новый. На этом этапе мной было принято и защищено решение унифицировать дизайны приложений, оставив разность лишь в нативной части. Работали вдвоём с middle-дизайнером — я вёл редизайн, контролировал качество, менторил.

Главная продуктовая находка — разделение опыта на фазы программы. Раньше клиент в разных фазах видел один и тот же UI, хотя его контекст и потребности радикально менялись. Я спроектировал систему фаз и отдельные интерфейсные состояния для каждой.

Старый дизайн Americor до редизайна

Иллюстрации и визуальный язык

Параллельно с системной работой решал вопрос с графикой — иллюстрации для пустых состояний, онбординга, ключевых экранов; аватары для коммуникаций.

Сначала генерировал десятки вариантов в разных стилях через нейросети — нужно было найти стиль, который ляжет на бренд. Со временем вырос пайплайн через нодовый редактор: ComfyUI, позже Figma Weavy. Это позволило стабильно генерировать иллюстрации в едином стиле — не один раз случайно угадать, а превратить генерацию в управляемый процесс.

Иллюстрация для сайта — пара
Иллюстрация для сайта — портрет
Login-экран с сеткой аватаров Community
Achievement-экраны в мобильном приложении

Пайплайн генерации

Пайплайн генерации: ComfyUI → Figma Weavy
ComfyUI → Figma Weavy: управляемая генерация в едином стиле

06 — Shift. Code-first процесс и раздел Community

На финальном этапе — последний крупный проект, раздел Community. Группу на Facebook заблокировали, и мы решили построить аналог Reddit/Facebook внутри приложения. Поскольку это была фича с нуля, я попробовал на ней новый подход.

Базовый макет собрал в Figma, дальше попросил Claude собрать React-приложение с компонентами в Storybook во всех состояниях. Развитие продолжалось в коде: продуктовые гипотезы вшивались прямо в прототип — через иконку шестерёнки переключались варианты, сравнивались side-by-side.

Когда решение было готово, я просил Claude сгенерировать Figma-компоненты для разработчиков и тестировщиков (они работали в своём стеке) — в наших токенах, шрифтах, дизайн-системе. Передача проходила без расхождений.

Процесс перевернулся: вместо «дизайн → передача → разработка» стало «прототип в коде → валидация на работающем продукте → передача готовых компонентов».

07 — Tools. Инструменты, которые я завайбкодил

Перед редизайном нужно было опереться на реальные проблемы пользователей, а не на догадки — поэтому пару инструментов я собрал сам.

Facebook Community Analyzer. В Facebook-группе компании годами копились тысячи живых сообщений от клиентов — самый честный источник про их боль. Я завайбкодил приложение: оно выгрузило все посты и комментарии (~80 000 сообщений), прогнало каждое через нейросеть с разметкой по теме (UX, поддержка, конкретная фича) и тональности и собрало всё в интерфейс с фильтрами. На выходе — ясная картина: что раздражает, чего не хватает, какие фичи просят. Эти выводы стали фактической базой решений по редизайну.

NSF Shortfall Simulator. У фичи прогноза нехватки средств на дату списания была запутанная бизнес-логика. Я собрал интерактивный симулятор, чтобы самому разобраться в механике, проверить пограничные сценарии и проектировать не на ощупь.

Оба инструмента остались в работе команды — ими пользовались не только дизайнеры.

08 — Итоги. Метрики и решения

NPS
4578
CSAT (5)
3.64.5
DS coverage
0%50–60%

Качественные результаты

  • Единый визуальный язык для нескольких брендов компании.
  • Команды веб- и мобильной разработки отметили, что пропали недельные поиски актуальных компонентов.
  • 80 000+ обработанных сообщений из Facebook-группы стали базой решений по редизайну.
  • Onboarding completion вырос (точная цифра — TBD).

Было / Стало

Перетащи разделитель — слева как было, справа как стало.

Desktop до редизайна
Desktop после редизайна
Before After

Углублённые кейсы

Ниже — отдельные продуктовые истории, которые я раскрываю самостоятельными кейсами.

Роль · Старший продуктовый дизайнер2024 — настоящее

80 инженеров и один дизайнер — история в деталях.

Как дизайнер с замашками разработчика работал в команде с бородатыми t-shape инженерами. Healthcare IT, FHIR-инфраструктура. Плоская культура — все сеньоры, нет PM/QA. Пришёл вторым дизайнером. AI-first с первого дня — сложные задачи сразу в React-демо.

// TL;DR
  • Построил markdown-first платформу лендингов со встроенным DOM-aware Claude-чатом в браузере — время на лендинг сократилось с 3 месяцев до 2–3 дней. Создано и сконверчено 30+ корпоративных лендосов. Весь сайт компании теперь работает на ней.
  • Генератор корпоративных питчей и презентаций. Два способа собрать: «кинул текст и получил» или конструктор для тех, кто любит контроль. Три режима генерации. Уже сделали 30+ презентаций — команда счастлива.
  • Собрал дизайн-систему на shadCN с нуля до конца — Figma + код + Storybook в связке, плюс Claude-скилл, который вытаскивал компоненты прямо из Figma на раннем этапе, когда аналогичного инструментария почти не было.
  • Переработал дизайн блогов и раздела документации, встроили PostHog-аналитику на каждую страницу.
  • Вайб-кодом написал приложение для конференции FHIR Camp за неделю — голосование, расписание, подписки. Стало доказательством для C-level, что code-first подход реален, а не побочный проект.
  • Сгенерил фирменного персонажа, собрал на его основе генератор изображений, который использовался в телеграм-боте для шеринга внутренней валюты между сотрудниками за достижения.
// достижения
2 месяца → 3 дня
Создание лендинга
1 неделя → 1 день
Создание презентации / питча
Дизайн-система
Унификация UI/UX во внутренних продуктах
Бренд + айдентика
Появился фирменный стиль у компании и продуктов
12 сабкейсов · по приоритету

Что собрано. По порядку важности.

Карточки расставлены по приоритетам из TL;DR. Нажми любую — провалишься в полный сабкейс с деталями.

01 · Контент-пайплайн

Платформа лендингов и AI-пайплайн

Markdown-вход → брендированный лендинг за 2–3 дня. Библиотека блоков, DOM-aware Claude-чат «Fixik».

3 мес → 2–3 дня · 30+ лендингов
02 · Генератор

Генератор питчей и презентаций

Два способа сборки: «кинул текст и получил» или конструктор. Три режима генерации.

30+ презентаций · команда счастлива
03 · Дизайн-система

Дизайн-система: Figma до Storybook

Многослойная DS на shadCN, семантические токены, двунаправленная синхронизация Figma ↔ код.

Figma + код + Storybook в связке
04 · Инструмент

Скилл маппинга Figma ↔ Код

Claude-скилл, который тянул компоненты из Figma на раннем этапе технологии, когда такого инструментария ещё почти не было.

70–80% точность с первого запуска
05 · Аналитика

Встроенная аналитика на каждой странице

PostHog встроен в шаблон. Каждый автор лендинга видит метрики без переключения вкладок.

0 переключений контекста
06 · Бренд

Айдентика и фирменный персонаж

Логотипы, иллюстрации, маскот, стиль диаграмм. Маскот стал основой кудос-генератора.

Единый язык на всех поверхностях
07 · Бренд

Генератор кудос-изображений

Обучен на бренд-маскоте, живёт в Telegram-боте для шеринга внутренней валюты за достижения.

~200 генераций · daily use
08 · Доказательство

FHIR Camp — вайб-кодом в продакшн

Веб-приложение для healthcare-конференции в Португалии: голосование, расписание, подписки. Убедило C-level.

1 неделя · ~100 участников
09 · Метод

JSON Parser и вайб-код как метод

Рабочие прототипы вместо статичных мокапов, с первого дня. Кодом проверяю гипотезы быстрее чем дизайном.

Прототип ≠ мокап — это валидация
10 · Продукт

Редизайн Aidbox

Совместный редизайн UI флагманской FHIR-платформы.

Pair-design · ship через DS
11 · Продукт

Редизайн MPI Box

Master Patient Index — матчинг записей, слияние, аудит изменений.

Миграция UI на актуальную DS
12 · Процесс

Дизайн-поддержка через код

Дизайнер в продакшн-репозиториях, модель ветки и мержа. Дизайн как граф коммитов.

Бренч-модель вместо отдельных файлов

Таймлайн · Q1 2024 → Q4 2025

Восемь параллельных линий работы. Цвет полоски — про интенсивность: основное направление, продуктовая работа, фоновая активность или короткий заход.

// timeline · Q1 2024 → Q4 2025 · 8 streams
Основное направление Работа над продуктом Идёт фоном Короткий проект
Q1 24
Q2 24
Q3 24
Q4 24
Q1 25
Q2 25
Q3 25
Q4 25 NOW
Онбординг и аудит01
Аудит
Дизайн-система02
shadCN + semantic слой
Внедрение, Figma ↔ код
Редизайн продуктов03
Aidbox · первая фаза
MPI Box, Aidbox v2 · DS-миграция
Платформа лендингов04
v1 · MD → Claude → лендинг
v2 · визуальный редактор
Блог, докс, схемы
Генератор презентаций05
Скилл + редактор
Бренд и иллюстрации06
Логотипы, маски
Стиль диаграмм, Mermaid
Vibe-code прототипы07
BOF App
JSON Parser
FHIR Camp · 1 нед
Кудосы
Сессии с коллегой08
Сессии с коллегой-дизайнером, ежедневно

01 — Платформа лендингов и AI-пайплайн

Смена процесса · 3 месяца → 2–3 дня · 25+ новых лендеров

Когда я пришёл в компанию, нас со вторым дизайнером периодически просили помочь с новыми лендосами. Мы дизайнили новые, старые при этом оставались выглядеть по-старому. Чтобы сделать один лендинг, нужно было: созвониться с C-level и узнать, что они хотят. Потом созвониться с инженерами, чтобы понять, как они будут верстать. Свести всех на одну встречу почти никогда не получалось. Параметры менялись по ходу. После всех созвонов в дело подключался маркетинг — собирал контент. После утверждённого контента начиналась фаза сборки задизайненного лендоса в Webflow со всеми вытекающими (технические ограничения, design review…). В среднем один лендинг тянулся около 2–3 месяцев.

CTO сказал: «Ребята, это бред. Давайте автоматизируем это.» Так я приступил к созданию системы автоматической генерации лендингов в рамках нового стиля.

video · full-cycle.mp4
Полный цикл: PR → Claude → лендинг + корректировки Fixik → деплой

v1 — генератор на библиотеке блоков

  • Собрал около 40 блоков для покрытия разных сценариев в лендингах
  • Создал Claude-скилл, который разбирался в этих блоках и нашем фирменном стиле
  • На вход скилл принимает MD / Word / HTML / PDF… — любой формат
  • Локально генерирует лендинг за 10–20 минут и показывает его в готовом виде
  • Фича ACP «Fixik» — DOM-инспектор и панель Claude-чата через Chrome CLI для правок на лету
  • Итоговый пайплайн: PR от стажёра или инженера → мой дизайн-ревью → релиз-инженер → деплой. Со временем линтеры и code review ужесточились — релиз-инженер вышел из цепочки.

v2 — визуальная библиотека блоков

После v1 люди жаловались: «Нам не хватает визуальной обратной связи, мы не понимаем, какие блоки есть, мы не видим, как раскладывается контент.»

Поэтому я добавил отдельную страницу со всеми видимыми блоками, режим редактирования, «корзину» для блоков, экспорт JSON/MD → импорт в Claude. Для тех, кто хочет визуальный контроль вместо «скинь MD и получи что-то».

Потом пайплайн поглотил больше

  • Корпоративный блог (рендер MD с брендовой типографикой)
  • Документация — отдельные репозитории, разработчики коммитят MD → дистилляция → продакшн
  • Схемы и диаграммы — брендовый стиль, описанный в скилле
  • Диаграммы Mermaid — стилизация и систематизация

Весь сайт компании теперь работает на этой системе. Презентовался на конференциях.

Fixik в действии — DOM-инспект + живое редактирование через Claude-чат
UI библиотеки блоков с режимом редактирования
Боковая панель корзины с собранной структурой лендинга
До / после — старый лендинг vs новый
3 mo → 2–3 d
Время цикла на лендинг
25+
Живых лендингов на платформе
All
Сайта компании работает на этом

02 — Генератор презентаций

Смена процесса · ~1 неделя → ~1 час · 30+ сгенерированных презентаций

Тот же подход, что у платформы лендингов, применённый к презентациям. Две точки входа (скинь-и-получи + визуальный редактор), три режима генерации (Normal / Variety / Madness). Около 30 сгенерированных презентаций, команда в восторге.

video · generation-walkthrough.mp4
Прогулка по генерации во всех трёх режимах

Проблема: много питчей, много презентаций. Все делали их в разных инструментах (Google Slides, Figma, PowerPoint, онлайн-сервисы), с разными стилями. Никакой системы, никаких общих стилевых констант, никакого переиспользования.

На разработку ушёл примерно месяц.

Точка входа 1 — скинь-и-получи

Скинь MD / текст / HTML / PDF в Claude → «сделай презентацию с помощью Presentation Builder Skill». Три режима:

  • Normal — строится на реестре блоков. Скилл смотрит на зарегистрированные блоки и пытается их использовать. Всё привязано к дизайн-токенам, дизайн-системе, единому стилю.
  • Variety — для нестандартного ввода. Генерирует из контента, а не из блоков. Всё ещё в нашем стиле, но изобретательно — использует базовые константы, не имитируя предопределённые блоки.
  • Madness — полный разгул. Что хочет. В основном для забавы, но он есть.

Точка входа 2 — визуальный редактор

Слайды + модули + JSON-структура → Claude рендерит управляемое решение. Для тех, кто любит контроль: готовые страничные паттерны, разные элементы (текст, иконки, текст-с-иконкой, карточки, разделители), импорт данных по слайдам.

Структура гибкая: каждый модуль — это JSON-узел с полями, визуальное представление позволяет редактировать контент прямо там или скачать сгенерированный JSON, отредактировать в своём редакторе и вернуть Claude.

Визуальный редактор — холст слайда с библиотекой модулей
Сетка примеров сгенерированных презентаций
video · madness-mode.mp4
Демо режима Madness (для веселья)
1 wk → 1 h
Время цикла на презентацию
30+
Сгенерировано презентаций
3 / 2
Режимов / точек входа
~1 mo
На разработку

03 — Дизайн-система: Figma до Storybook

Система · 2024 Q3 — продолжается · 4 слоя, мультипродукт

Многослойная дизайн-система поверх shadCN с семантическими токенами, кастомными состояниями и двунаправленной синхронизацией Figma ↔ код. Используется в продакшне всеми продуктовыми командами.

image · storybook-overview.png
Обзор Storybook — компоненты, токены, документация

shadCN был выбран как основа — он даёт компоненты и свободу, не навязывая визуальный язык. Но shadCN — «свободный»: одна команда берёт кнопку и добавляет Tailwind-утилиты для своей версии, другая делает свою. При нескольких продуктах и командах эта свобода нуждалась в ограничениях.

Решение — семантический слой под shadCN:

  • Единые стили типографики
  • Семантический цветовой слой
  • Переписанные компоненты (вместе с Claude) — наш набор состояний, дополнительные состояния, которых нет в shadCN из коробки, расширенные инпуты и селекты
  • Storybook — также служит документацией

Архитектурно: команды используют только наши компоненты с нашими токенами. shadCN остаётся основой, но не точкой расширения — расширение происходит только через семантический слой.

Двунаправленный пайплайн Figma ↔ Код

Компоненты сначала собирались в коде, потом возвращались в Figma. Обратный обычному порядок, и намеренно: код — источник истины, Figma — представление.

Архитектура токенов — Root → Semantic → Brand → Platform
Публичная Figma-библиотека
video · storybook-walkthrough.mp4
Прогулка по Storybook
All.
Продуктовые команды используют в продакшне
Public
Figma-библиотека (ссылка TBD)
shadCN
Совместимая экосистема

04 — Скилл маппинга Figma ↔ Код

Инструменты · кастомный Claude-скилл · точность 70–80% с первого запуска

Кастомный Claude-скилл, который принимает Figma-интерфейс на вход, маппит его на компоненты дизайн-системы, определяет состояния, строит таблицу соответствий и задаёт уточняющие вопросы при неопределённости. Используется разработчиками в продакшне.

video · skill-in-action.mp4
Скилл в действии — входной Figma-фрейм, выходная таблица маппинга + список компонентов

Собран тогда, когда аналогичных инструментов не было. Пайплайн:

  • Дизайнер передаёт собранный Figma-интерфейс Claude.
  • Claude сканирует реестр, видит доступные компоненты, что маппится на то, что он видит, какие состояния должен использовать каждый компонент.
  • Строит таблицу соответствий: что найдено, что замаппировано, какое состояние где.
  • Если что-то неясно — задаёт вопрос.

Точность с первого запуска — 70–80%. Иногда ошибается в состоянии, паддинге или раскладке. Итеративно улучшал инструкции — качество росло. Теперь разработчики используют скилл в своей работе.

Пример входа: Figma-фрейм
Пример выхода: таблица маппинга, сгенерированная Claude
70–80%
Точность с первого запуска, растёт через итерации
Used
Разработчиками в продакшне

05 — Встроенная аналитика на каждой странице

Инструменты · PostHog на каждой странице · ноль переключений контекста

Кнопка «Stats», видная только авторизованным сотрудникам на каждой странице экосистемы — лендинг, статья, кейс, документация. Клик открывает выдвижную панель с данными PostHog, нарезанными по конкретной странице. Никакого переключения инструментов, никакого поиска страницы в глобальном списке.

image · stats-drawer-landing.png
Открытая панель статистики на лендинге

Стандартный аналитический рабочий процесс: открыть отдельный инструмент → найти страницу в списке всех страниц → загрузить дашборд для неё. Для компании с сотнями статей, лендингов, кейсов и документов — это трение.

Исправление: каждая страница знает свою область аналитики. Авторизованные сотрудники видят маленькую кнопку «Stats». Клик — выдвигается панель с данными PostHog, отфильтрованными по этой странице: трафик, источники, поведение, конверсии, несколько срезов.

Культурный эффект — аналитика стала частью ежедневного просмотра. Люди смотрят данные о производительности, читая свои статьи или лендинги. Авторы видят свою аудиторию без усилий.

Расположение кнопки Stats (увеличение UI)
Панель с нарезанными метриками — трафик, источники, поведение
Другой срез — конверсии страницы

06 — Айдентика и иллюстрации

Бренд · совместно с со-дизайнером · логотипы, иллюстрации, маскоты, диаграммы

Полный редизайн бренда в паре с со-дизайнером — логотипы для всех продуктов, система иллюстраций, маскоты, стиль диаграмм, маркетинговые шаблоны. Визуальный язык теперь используется по всей экосистеме.

image · brand-system-overview.png
Обзор бренд-системы — логотипы, палитра, иллюстрации

Создано совместно с со-дизайнером. Результаты:

  • Новый корпоративный визуальный стиль
  • Логотипы для всех продуктов линейки (Aidbox, Formbox, Termbox, MDMbox, Payerbox, eRxbox, Smartbox, RCMbox)
  • Система иллюстраций — для лендингов, статей, пустых состояний
  • Маскоты
  • Стиль диаграмм — переведён в Claude-скилл для автоматической генерации
  • Стилизация диаграмм Mermaid
  • Маркетинговые шаблоны — LinkedIn, загрузки, мероприятия
Линейка логотипов продуктов
Сетка иллюстраций
Коллекция маскотов
Стиль диаграмм — до / после
image · mermaid-before-after.png
Диаграммы Mermaid — до / после стилизации

07 — Генератор кудосов

Инструменты · обучен на бренд-маскоте · ~200 генераций · ежедневное использование

Внутренняя «кудос»-валюта для благодарностей между сотрудниками работает через Telegram-бот. Создал генератор изображений на нейронной сети, обученной на бренд-маскоте компании — сотрудники пишут суть своей благодарности, сеть генерирует картинку маскота в этом сценарии. Используется ежедневно.

image · kudos-grid.png
Сетка генераций кудосов — разнообразие сценариев с бренд-маскотом

Система кудосов уже работала через Telegram, но сообщения были только текстовыми. Добавление изображения к каждому кудосу сделало жест более запоминающимся и личным.

Генератор:

  • Нейронная сеть, дообученная на персонаже бренд-маскота
  • Сотрудник пишет сообщение кудоса — за что благодарит, контекст
  • Генератор создаёт изображение маскота, разыгрывающего сценарий
  • Изображение включается в ответ Telegram-бота
~200
Генераций на сегодня
Daily
Использование по всей компании
Mascot
Обучен на бренд-персонаже

08 — Приложение FHIR Camp — вайб-кодом в продакшн

Доказательство · разработка за 1 неделю · ~100 участников · FHIR Camp 2025, октябрь

FHIR Camp — крупное собрание лидеров healthcare-IT, организованное Health Samurai в Португалии — Microsoft и другие лидеры отрасли принимают участие. В предыдущие годы вся организация (круглые столы, темы обсуждений, навигация) работала на бумаге. Создал адаптивное веб-приложение за неделю. ~100 человек использовали его. Первая крупная история вайб-кода в продакшне для компании.

image · firecamp-schedule.png
Приложение FHIR Camp — основной вид расписания

Фичи, задеплоенные за неделю:

  • Голосование за доклады
  • Подписки на секции
  • Вид расписания
  • Навигация по залам и темам
  • Адаптивное — работало на телефоне каждого участника

Почему это было важно за пределами конференции

Это было первое крупное доказательство для C-level, что вайб-код может поставлять продакшн-работу. После FHIR Camp поддержка масштабирования AI-пайплайн работы расширилась.

Экран голосования
Расписание
Подписки на секции
image · firecamp-attendees.png
Участники, использующие приложение на площадке (если доступно)
1 wk
С нуля до продакшна
~100
Участников использовали приложение
First
Крупное продакшн-доказательство вайб-кода

09 — JSON Parser и вайб-код как метод

Доказательство · вайб-код как инструмент по умолчанию · множество прототипов

С первого дня сложные задачи (больше одного экрана или простого флоу) собирались в коде на React. Рабочие демо вместо статичных мокапов. JSON Parser был одним из видимых артефактов — прототип UI-гипотезы для Aidbox, использованный для валидации направления и презентации команде.

video · json-parser-walkthrough.mp4
JSON Parser — прогулка по интерактивному прототипу

Вайб-код стал способом по умолчанию для валидации гипотез. Статичные мокапы пропускают вопросы, которые проявляются только во взаимодействии — производительность, граничные случаи, реальный ввод с клавиатуры, поведение скролла. Рабочие прототипы их ловят.

Примеры

  • Прототипы глобального меню — тестирование гипотезы о наблюдаемости для основного паттерна продукта. Несколько вариантов в коде.
  • BOF Application — UI для одного из продуктов.
  • JSON Parser — презентация концепции и валидация UI-гипотезы для Aidbox.

Почему это важно культурно

В компании, где дизайнеры не в комнате каждый день, рабочие код-прототипы давали продуктовым разговорам реальные артефакты для реакции. «Посмотри на это» бьёт «представь это».

Интерфейс JSON Parser
Варианты глобального меню
BOF Application

10 — Редизайн Aidbox

Продукт · совместно с со-дизайнером · продолжающаяся миграция на DS

Улучшение UX и UI Aidbox — флагманской FHIR-платформы компании — изначально созданной инженерами без дизайнера. Работа в паре с со-дизайнером; постепенная миграция на новую дизайн-систему продолжается.

image · aidbox-before-after.png
Интерфейс Aidbox — сравнение до / после

Модель парной работы: мой со-дизайнер ведёт вайрфреймы и первичное UX-исследование; я подключаюсь на сессии, миграцию дизайн-системы и конкретные флоу. Несколько часов сфокусированной парной работы ежедневно.

Подход

  • Пересобрать экраны в Figma с использованием новых DS-компонентов
  • Прототипировать критические флоу
  • Ревью с разработчиками и клиентами — dogfooding помогает, внутренние пользователи — реальные пользователи
  • Итерировать, шипить, мигрировать следующий модуль

Конкретные улучшения — TBD по сабкейсу, но ключевые направления: очистка информационной архитектуры, паттерны основной навигации, UX представлений с плотными данными, UX форм.

Информационная архитектура до / после
Ключевые флоу, переработанные
Прогресс миграции DS

11 — Редизайн MPI Box

Продукт · MDM Box / Master Patient Index

Редизайн продукта Master Patient Index — работа с вероятностным матчингом пациентов, рабочими процессами слияния / разделения и аудит-трейлами. Сложная предметная область, плотные данные, реальные ограничения рабочего процесса.

image · mpi-before-after.png
Основной интерфейс MPI Box — до / после

MPI Box управляет согласованием идентификаторов пациентов между системами. Основные рабочие процессы:

  • Ревью вероятностного матчинга (обработка опечаток, неполных данных)
  • Операции слияния / разделения с полной историей аудита
  • Настройка кастомных алгоритмов скоринга
  • Масштабирование до миллионов записей — UI должен оставаться производительным и понятным

Подход: переработать существующие флоу, прототипировать новые, валидировать с инженерной командой и клиентами, мигрировать на новую DS.

Флоу ревью матчинга — до / после
Рабочий процесс слияния с аудит-трейлом
UI конфигурации

12 — Дизайн-поддержка через код

Смена процесса · дизайнер в продакшн-репозиториях · ревью-и-мерж

Начинал с традиционных дизайн-сессий — «команда реализует потом». Эволюционировал в модель, где я клонирую репозиторий команды, делаю ветку, рефакторю и чиню UI напрямую в коде. Команда делает ревью и мержит. Стало возможным благодаря AI-first культуре компании.

image · pr-review.png
PR-ревью — дизайн-изменения в продуктовом репозитории

Изначальная модель

  • Дизайн-сессия с командой.
  • Обсуждаем, что починить.
  • Они идут реализовывать.
  • Может, уйдёт в продакшн. Может, дрейф.

Новая модель

  • Клоню репозиторий команды.
  • Создаю ветку.
  • Рефакторю — портирую компоненты на новую DS, чиню UI-баги, полирую.
  • Открываю PR. Команда делает ревью и мержит.

Это работает, потому что:

  • Компания AI-first → дизайнер с навыками кодирования не аномалия
  • DS в коде → мои изменения используют тот же источник истины, что и их код
  • Культура парной работы → ревью быстрое и доверие выстраивается

Обсудим работу

Каждый сабкейс глубже, чем помещается на странице. Готов пройтись по любому — процесс, решения, что сработало, что нет, что бы сделал иначе.

Написать
Роль · Дизайнер-инженер2025 — настоящее

80 инженеров, дизайнер и Claude Code

Пришёл вторым дизайнером в команду бородатых t-shape инженеров. Healthcare IT, FHIR-инфраструктура, плоская культура — без PM, без QA, все сеньоры. С первого дня собирал не макеты, а работающие штуки в коде: генераторы лендингов и презентаций, дизайн-систему с мостом Figma ↔ код, бренд, и сейчас — Replit для healthtech.

// TL;DR

Меня нанимали как дизайнера, который умеет писать код — больше технаря, чем «творца». Творчество, как выяснилось, тоже пригодилось. Что собрал за это время:

  • Платформу генерации лендингов с библиотекой блоков и DOM-aware Claude-чатом «Fixik» прямо в браузере — лендинг с 3 месяцев до 2–3 дней. На ней теперь работает весь сайт компании, 30+ лендосов.
  • Генератор питчей и презентаций — три режима, две точки входа, интерактивные слайды-приложения. 50+ презентаций, все спикеры перешли на него.
  • Дизайн-систему на shadCN с семантическим слоем и Storybook, плюс скилл, который собирал компоненты в Figma из кода — на раннем этапе, когда такого инструментария ещё почти не было.
  • Бренд — фирстиль, логотипы всей линейки продуктов, иллюстрации, маскот и генератор кудосов в Telegram-боте.
  • Вайб-кодом — приложение для конференции FHIR Camp за неделю. Стало доказательством для C-level, что code-first реален.
  • Сейчас — Replit для healthtech: агент, который собирает врачам FHIR-нативные приложения по запросу.
// достижения
3 месяца → 2–3 дня
Весь сайт компании на платформе
1 неделя → 1 час
50+ презентаций, спикеры перешли
Дизайн-система
В продакшне, мост Figma ↔ код
Бренд с нуля
Фирстиль, лого, маскот, кудосы

Таймлайн · Q1 2025 → сейчас

Восемь параллельных линий работы. Многое шло внахлёст: дизайн-система, генераторы и продуктовые редизайны пересекаются в одних периодах. Нажми любую полоску — раскроется, что это было.

// timeline · Март 2025 → Q2 2026 · 8 потоков
Основное В паре с другими дизайнерами Сайд-проект / поддержка
Q1 25
Q2 25
Q3 25
Q4 25
Q1 26
Q2 26 NOW
01 Онбординг и первые задачи
02 Дизайн-система ↔ код
03 Редизайн продуктов (Aidbox, MPI)
04 Платформа лендингов
05 Генератор презентаций
06 Бренд и иллюстрации
07 Vibe-code доказательства
08 Replit для healthtech

01 — Компания и роль

Health Samurai — достаточно интересное место. Там работают “взрослые” сеньор-инженеры, t-shape-специалисты: помимо своей предметной области каждый прокачивает и смежные. В компании нет тестировщиков и нет менеджеров. Есть люди, готовые драйвить: кто-то берёт проект, который ему хочется и который он чувствует, что вытащит, инициализирует его по интересам — и вокруг собирается команда из всех, кому это интересно.

За ~15 лет команда наделала кучу продуктов вокруг FHIR-инфраструктуры — Aidbox и медицинский стек. Всё это создавалось без дизайнера, тогда ещё и нейронок не было, которые могли бы хоть немного помочь. Поэтому многие продукты с точки зрения дизайна выглядели, мягко говоря, так себе.

До меня за полгода взяли ещё одного дизайнера: он провёл интервью с пользователями и командой, собрал CJM и ревью, начал накидывать вайрфреймы. На этом этапе пришёл я.

Health Samurai — пейпер-крафт сцена: госпиталь, потоки FHIR-данных, аналитика, пагода

02 — Дизайн процесс

С самого начала я вайб-кожу прямо в работе: гипотезу собираю сразу в коде, а не рисую очередной макет с бесконечными циклами. Живой POC проще и воспринимать, и тестировать — покликать, прогнать по реальным состояниям и сразу понять, работает идея или нет.

На этапе гипотезы важнее всего скорость и гибкость, поэтому беру чистый HTML — нулевой порог входа, мгновенно крутишь layout, состояния, поведение. Тяжёлый стек вроде React этого лишает: зависимости, обвязка, лишние слои.

От обычного процесса с Figma я ушёл сознательно — он закольцован. Нарисовал, показал, переделал, через пару итераций отдал разработчикам — и тут же лезут edge-кейсы, которых в статике не предугадать. В коде они вскрываются сразу: Claude на них утыкается и фиксит, я вижу странное поведение — чиним на месте, а не на третьей итерации макета.

Первый же таск в команде это подтвердил. Нужен был нормальный JSON viewer для Aidbox — вместо рисования в Figma я написал ТЗ для Claude, за пару дней собрал рабочий прототип и в пятницу показал на демо готовую штуку, куда можно грузить свои JSON-ы. Команда увидела, что дизайн способен двигаться быстрее, — это задало тон всей дальнейшей работе.

Из этого вырос и общий pipeline по продуктам. Разработчики сами правят продукты с Claude, я забираю их наработки прямо в коде и прохожусь по всему вместе с ним. Сложные интерфейсы импортирую через Penpot — у него JSON проще фигмовского, любой сайт затаскивается легче.

Сейчас я использую только Anthropic. Пробовал Codex, Gemini, Kimi, Grok — мне нравится Claude, для меня это топ. Начинал с Cursor, потом перешёл на Claude Code и в последнее время живу в терминале — больше ничего не нужно.

Соотношение по инструментам сместилось: раньше было больше Figma, сейчас процентов 70 — Claude, 30 — Figma.

REST-консоль Aidbox с плагином Figma Clauderunner — чат с Claude применяет тёмную тему прямо в Figma
Сделал себе удобный плагин для Figma, который помогает автоматизировать процесс

03 — Генератор лендингов

Сайт Health Samurai исторически собирали разные люди в разные периоды — зоопарк дизайнов, каждая страница отличалась от соседней. Один лендинг проходил долгий путь: созвоны с C-level, с инженерами, маркетинг собирает контент, сейлзы вносят правки, вёрстка во Webflow с техническими ограничениями фрилансера — и дизайн «коцался» процентов на 30. В среднем один лендинг тянулся почти 3 месяца.

Сверху прилетела размытая задача: лендинги надо как-то ускорить и автоматизировать — а как именно, никто не знал. Дальше всё придумал и собрал я: взял наш стиль, обогатил его (графические элементы, константы, вертикальные ритмы, типографика) и скормил Claude вместе с правилами.

Дальше выросла целая платформа: библиотека из ~40 блоков, визуальный редактор, DOM-aware чат Фиксик для правок прямо в браузере, перенос старых лендосов с Webflow, блог, документация, диаграммы и встроенная статистика. Весь сайт компании теперь работает на ней.

Page Builder — библиотека блоков: бенто-грид Capabilities, переключение колонок, стиля иконок и тегов

Подробности — в отдельном кейсе Платформа генерации лендингов.

04 — Генератор презентаций

Когда лендинг-генератор взлетел, мы применили тот же подход ко второй вечной боли — презентациям. Раньше каждый делал их в чём попало (PowerPoint, Google Slides, Figma), без общих стилей и переиспользования.

Сделал генератор на том же домене: две точки входа (скинь-и-получи / визуальный редактор), три режима генерации, интерактивные слайды (каждый может быть мини-приложением с модалками, степперами, каруселями), богатый шаринг с UTM и трекингом. 50+ презентаций, все спикеры перешли на формат, даже думаем оформить как отдельный продукт.

Прогулка по генерации презентаций — все режимы

Подробности — в кейсе Генератор питчей и презентаций.

05 — Дизайн-система ↔ код

Aidbox — продукт, на базе которого разные команды достраивают модули. Дизайн-системы не было: набор утилитарных Tailwind-классов и компоненты отовсюду. Даже внутри одного продукта встречалось несколько разных селектов и кнопок. Всех это бесило, особенно CTO.

Я взял shadCN как основу и надстроил семантический слой: палитра primary/secondary/tertiary, готовая типографика, переписанные компоненты с нашими состояниями, компонент Icon. Всё это — в Storybook как документация. Написал скилл, который конвертирует shadCN-компоненты в наши токены.

Дальше — ранний опыт, когда Claude собирал дизайн-систему в Figma из кода, когда инструментарий для этого только зарождался. Настроил двунаправленную синхронизацию переменных и переносил интерфейсы страница за страницей через маппинг-матрицы код ↔ Figma (скилл Figma → код, точность 70–80%).

git diff style.css — apply-суп shadCN сворачивается в semantic variant-API
Семантический слой: apply-суп shadCN → variant-API (variant: primary / elevated)

Подробности — в кейсе Дизайн-система shadCN и мост Figma ↔ код.

06 — Фирменный стиль

В паре с со-дизайнером сделали полный редизайн бренда: фирстиль, логотипы всей линейки продуктов, систему иллюстраций, маскот, стиль диаграмм (со скиллом для SVG в нашем стиле). Выстроили пайплайн управляемой нейрогенерации графики — Gemini/Flux + Figma Weavy для рендера, не «один раз случайно угадали стиль», а повторяемый процесс.

Отдельная штука — генератор кудосов: нейросеть, дообученная на бренд-маскоте, живёт в Telegram-боте для шеринга внутренней валюты за достижения между сотрудниками. ~200 генераций, ежедневное использование.

Линейка логотипов продуктов Health Samurai — оригами-символы в едином стиле
Линейка логотипов продуктов

Подробности — в кейсе Бренд, иллюстрации и генератор кудосов.

07 — FHIR Camp BOF

FHIR Camp BOF стал первым случаем, когда вайб-код ушёл в настоящий продакшн с живыми пользователями.

FHIR Camp — большое собрание лидеров healthcare-IT, которое проводит Health Samurai. Для формата BOF (Birds of a Feather) я за неделю собрал мобильное приложение голосования за темы: участник с телефона предлагает тему или присоединяется к чужой, организаторы модерируют, а на экранах в зале в реальном времени видно, какие темы набирают людей. Отработало на реальном мероприятии — 3 дня, 6 сессий, 94 участника, 56 тем, 153 присоединения.

После FHIR Camp поддержка code-first-подхода в компании заметно расширилась — первый крупный продакшн-пример, что вайб-код реален, а не побочный проект.

FHIR Camp 2025, Каркайш, Португалия — приложение BOF-сессии Health Samurai на телефоне
FHIR Camp 2025 (Каркайш, Португалия) — приложение BOF-сессии: голосование за темы с телефона, экран в зале в реальном времени

Подробности — в кейсе FHIR Camp BOF — система голосования.

08 — Replit для healthtech

Мой основной проект сейчас — мы пишем «Replit для healthtech»: для больших медицинских компаний, госпиталей и врачей, которым не хватает каких-то приложений. Под капотом — Claude SDK и Codex SDK. Врач описывает, что ему нужно, скиллы собирают FHIR-нативное приложение, которое потом интегрируется в его чарт.

Приложение может быть сколь угодно сложным: пользователи, workflow-движок, «тайм-машина» — можно гонять его по времени, местам и пользователям, чтобы тестировать, как работает весь workflow. Я систематизирую два разных дизайн-слоя: обвязку вокруг агента и внутреннюю часть генерируемых приложений. Живу в той же main-ветке, что и разработчики, — дожидаюсь, когда выкатят сложную бизнес-логику, прокручиваю, вношу свои изменения, обсуждаем (20% Figma / 80% Claude).

Подробности — в кейсе Replit для healthtech.

Углублённые кейсы

Большие направления раскрываю отдельными кейсами — нажми, чтобы провалиться в детали: что делал, какие решения принимал и чего достиг.

Обсудим работу

Каждый из кейсов глубже, чем помещается на странице. Готов пройтись по любому — процесс, решения, что сработало, что нет, что сделал бы иначе.

Написать
Health Samurai3 мес → 2–3 дня

Платформа генерации лендингов и AI-пайплайн

Claude-пайплайн создания лендингов превратил трёхмесячный цикл сборки лендинга в 2–3 дня. Весь сайт компании теперь живёт на этой платформе, а правки прямо в браузере делает DOM-aware чат Fixik.

3 мес → 2–3 дня
время создания лендинга
30+
лендингов на платформе, весь сайт компании
Fixik
DOM-aware Claude-чат для правок в браузере

Моя роль

  • Спроектировал и собрал генератор лендингов с нуля — от стилей и блоков до Claude-скилла, который из них верстает
  • Вытащил весь фирменный стиль из живого сайта, обогатил его и превратил в правила для Claude
  • Сделал самописный Storybook на HTMX-компонентах, визуальный редактор блоков и DOM-чат Fixik
  • Перенёс ~20 старых лендингов с Webflow на новую платформу за пару недель
  • Дорастил пайплайн до блога, документации, диаграмм и встроенной статистики

С чего всё началось — лендинг за три месяца

Весь сайт Health Samurai был сделан исторически, разными людьми, в разные годы. Каждая страница отличалась от предыдущей — настоящий зоопарк дизайнов. И маркетинг периодически спрашивал: «А что у нас с лендосами?»

Меня, как дизайнера, просили заняться и лендингами тоже. Но проблема была не в дизайне — проблема была в процессе.

Цикл согласований

Маркетинг собирал контент-ядро, потом подключались сейлзы со своими правками, потом C-level, потом снова сейлзы — и через неделю выяснялось, что кого-то опять что-то не устраивает. Только подготовка контента для главной занимала минимум месяц.

Webflow-бутылочное горлышко

Вся инфраструктура сайта жила на Webflow. Готовый дизайн уходил к фрилансеру-инженеру, который резал его техническими ограничениями: «так Webflow не умеет, тут мы ограничены». Пиксель-перфект таял, начинались ревью и споры.

Месяц на контент, неделя-две на дизайн с итерациями, ещё хвост на Webflow-сборку и ругань за пиксель-перфект. Один лендинг — почти три месяца.

«Ребята, что за херня. Мы в 21 веке делаем лендинг по три месяца только потому, что не можем договориться, что менять. Мы все инженеры — давайте сделаем простой flow: любой человек собирает лендинг за один день.»

Так появилась задача. Размытая: цель — ускорить создание лендингов, а как — никто толком не знал. Все понимали одно: нужно как-то «обучить» Claude нашему стилю. Тут включился я.

v1 — генератор на библиотеке блоков

Я взял наш живой лендинг и разобрал его на блоки — по одному. На каждом блоке тут же фиксировал его правила: какой контент в него ложится, какие у него состояния и варианты — фон, число колонок, с иконками или без, с CTA или без. Параллельно вытащил всю визуальную основу — цвета, константы, вертикальные ритмы, типографику — и обогатил её графическими элементами. Так из живой страницы собралась библиотека блоков с правилами и стейтами, по которой Claude, получая что угодно на вход, верстает готовый лендинг.

Начальный дизайн некоторых лендингов, собранных генератором
Начальный дизайн некоторых лендингов

Дальше две недели я описывал блоки так, чтобы Claude понимал не вёрстку, а смысл: какого рода контент в какой блок ложится и как маппить их друг с другом.

Чтобы эта свобода не превратилась в хаос, скилл устроен предельно дисциплинированно — на трёх простых идеях и одном детерминированном протоколе.

Три идеи, на которых держится скилл

Ограниченный словарь

Агент может использовать только 40 блоков из каталога и семантические токены темы. Свобода ограничена намеренно — это и есть гарантия консистентности.

Progressive disclosure

При активации грузится только SKILL.md (~1.7k токенов). Детали блоков подтягиваются по требованию — читаются лишь те reference-файлы, что реально нужны.

Human-in-the-loop

Структуру страницы агент предлагает и ждёт подтверждения прежде чем писать код. Никакой генерации «вслепую» — пользователь утверждает каркас.

Пайплайн: от запроса до страницы

Детерминированный 7-шаговый протокол. Каждый шаг загружает ровно столько контекста, сколько нужно — и не больше.

Понять интент

Что за страница, для какой аудитории, какая цель конверсии. Если запрос размытый — уточняющие вопросы.

Прочитать каталог блоков

Загружает references/catalog.md — таблицу всех блоков. Это весь доступный словарь.

Выбрать блоки

Маппит требования на 4–8 блоков через intent-таблицу (RU/EN). Проверяет анти-паттерны порядка.

Прочитать детали — только нужные

Открывает reference-файлы лишь для выбранных категорий. Остальное не грузит.

экономия контекста: ~4.5-9k vs ~15k токенов

Предложить структуру

Показывает нумерованный каркас страницы и ждёт подтверждения. Код пока не пишет.

checkpoint: нужно одобрение пользователя

Собрать страницу

Создаёт src/pages/<name>.tsx: вызовы блоков с реальным контентом, импорты из blocks.

Итерировать точечно

Правки меняют только затронутый блок — переставить, добавить, убрать. Страницу целиком не переписывает.

Вход скилла — доступные блоки и скиллы, выбор типа лендинга
Вход: скилл показывает доступные блоки и скиллы и спрашивает, какой лендинг собрать
Маппинг контента на блоки — 7 из 8 чанков легли, под один предлагается новый блок
Маппинг: парсит вход, раскладывает контент по блокам и предлагает новый блок там, где совпадения нет

Первую версию я показал в пятницу на демо. Прямо при команде за 10 минут собрал лендинг, который выглядел сильно лучше, чем всё, что было раньше. Часть лендингов я взял из входных данных по тому самому первому лендосу, часть — просто скормил старые страницы, и скилл переделывал их в новый сайт.

результат демо

Лютый фурор. Посыпались просьбы попробовать. Все начали собирать лендинги сами — и пошли первые хотелки.

v2 — визуальный редактор блоков

Быстро выяснилось, что пользователи разные. Одним легко собрать лендинг текстом в голове, накидать MD-шку и отправить. А другим нужно видеть структуру — понимать, как контент ляжет на конкретный блок. Они, естественно, попросили визуальный редактор.

Людям не хватало визуальной обратной связи: какие блоки существуют, как именно раскладывается их контент, что получится на выходе.

Весь сайт работал на HTMX — ни React, ни какого-либо фреймворка. Я разбил блоки на отдельные HTMX-компоненты и собрал, опять же в паре с Claude, самописный Storybook.

01 / storybook

Все компоненты выложены, можно покликать, переключить любое property, увидеть все состояния.

02 / edit-режим

Глобальная кнопка edit прямо в компоненте: вставляешь нужный текст, меняешь иконки на месте.

03 / фиксация → MD

Понравилась раскладка — фиксируешь её, отдаёшь MD-шку Claude, и он со своим скиллом собирает лендинг за 5–7 минут.

Визуальный редактор блоков — настройки блока и живой превью
Визуальный редактор блоков: выбираешь блок, крутишь параметры (колонки, иконки, фон, заголовок, CTA) и сразу видишь результат

По итогу получился богатый генератор, который умел работать в двух режимах: быстрый — кинул что-то и получил лендинг, и осмысленный — собрал из блоков ровно то, что хочешь. Всё сразу под адаптив: на мобилках смотрелось хорошо без отдельной работы.

Масштабирование блоков

Рано или поздно упираешься в нехватку блока под новый тип контента. Я собирал фидбэк от команд, готовил новые блоки — иногда брал готовые из shadcn, через Claude менял стек на наш, трансформировал. Для повторяющейся работы всегда писался отдельный скилл, чтобы было быстрее всем.

прозрачность

Завёл страничку блоков, где видно, что добавилось: новый блок, новое свойство у существующего («теперь этот блок можно выбрать на сером фоне»). Все видели апдейты.

Fixik — DOM-aware чат для правок в браузере

Самая «вау» фича пайплайна. На любой странице — лендинге или презентации — справа выезжает чат с пикером. Нажимаешь на пикер, выбираешь кусок DOM прямо на странице и пишешь, что с ним сделать. Claude получает запрос и вносит изменения прямо при тебе.

Fixik — DOM-aware чат на странице Health Samurai: пикер элемента и правка вёрстки в браузере
Fixik — пикаешь элемент прямо на странице (span, div), пишешь правку текстом, Claude меняет вёрстку на лету и подтверждает результат

Назвали эту штуку Fixik. С ней правки стало делать гораздо проще и быстрее — не нужно идти в код, описывать словами, какой именно элемент чинить. Ткнул и сказал.

Перенос ~20 старых лендингов с Webflow

Параллельно с улучшениями для пользователей я переносил все старые лендинги на новые рельсы. Схема была такая: беру сайт на Webflow, парсю его через Gemini, вытаскиваю весь контент — где-то в HTML, где-то в MD, в зависимости от того, как парсилась страница. Закидываю это в Claude, прошу применить скиллы — и сайт собирается со старого на новый за 10–15 минут.

Идеально, конечно, не было: куча старых иллюстраций, кусков видео, скринкастов — это приходилось перерисовывать и перерабатывать руками. Но львиная доля, процентов до 80, делалась очень быстро и чётко.

итог переноса

За две недели перенёс около 20 лендингов, ещё неделю допиливал их до приличного вида. По статистике они давали поисковый трафик, но почти не приводили лидов — задача была превратить «зоопарк» в что-то аккуратное, и она была решена.

Итоги

Генератор лендингов живёт и работает до сих пор. Им пользуется вся команда — все наши лендинги, все события, весь сайт Health Samurai делается на нём. Это не разовый проект, а боевая платформа: библиотека блоков растёт, на ней живёт весь сайт компании.

Но главное — почему весь процесс реально ускорился, а не просто «дизайн стал быстрее». Раньше лендинг застревал в согласованиях: контент собирали неделями, потом круг правок от сейлзов и C-level, и так по новой. Теперь любой в команде закидывает идею текстом и за пару часов получает не макет, а готовую живую страницу. С ней в разы проще идти к C-level: показываешь реальный продукт, а не описание на словах, и правки вносите тут же, вместе — прямо в браузере. Согласовывать стало нечего: все сразу видят результат. Горлышко из согласований и техпрослойки просто исчезло.

Для меня это главный вывод проекта: дизайнер, который умеет в код и в Claude, чинит не отдельный экран, а целый процесс.

И это не единственное решение, которое я затащил под ключ — в одного, от идеи до прода. Например, целое веб-приложение для офлайн-конференции:

FHIR Camp BOF — система голосования за темы 94 участника · 56 тем
Americor+175%

Increasing Settlement Offer Acceptance

Addressing concerns and boosting understanding of debt-settlement offers — empower informed decisions and increase online offer acceptance.

+175%
settlement offers accepted online
+44%
offers accepted overall
300k
users impacted by redesign

My role

  • Led discussions with BI to understand and interpret existing settlement-acceptance statistics
  • Designed post-release testing to ascertain effectiveness of designs, derived insights for next iterations
  • Led ideation across teams to brainstorm ideas for users unaffected by initial product changes — full holistic approach
  • Worked with other designers to drive design decisions impacting design strategy
  • Researched theories, ideated and tested hypotheses that drove problem framing — significant impact on final designs

Background & problem

Americor is a debt-settlement company that negotiates users’ debts to lower them. After negotiating a settlement, it is presented to a user for acceptance.

Americor only collects its fees and gets revenue once an offer is accepted.

Business problem

The majority of settlements were accepted through phone calls — high-cost, resource-heavy, and a clear lack of self-service.

User pain

Users were reluctant to accept settlements online — gaps in understanding, motivation, or communication across touchpoints, worsened by dreary, underwhelming patterns.

Solution breakdown

Drive online acceptance through clarity, urgency and a more appealing experience across multiple touchpoints.

01 / appeal

A more appealing UI to excite and engage users — removing easily dismissed and disruptive patterns.

02 / clarity

Ensuring clarity and minimizing misconceptions through rejection guidance — enabling informed decisions.

03 / urgency

Creating urgency and reminders through fixed banners visible on every screen.

Appealing offer UI
01 — appeal
02 — clarity (rejection guidance)
Urgency banner
03 — urgency (expiring banner)
Banners and tokenized flow
touchpoints across the program (web)

Design process

Analyzing issues with the original design

The original design was an MVP that failed to account for user pain points and used outdated UI/interaction patterns.

Original desktop offer
original — desktop
Original mobile offer
original — mobile

Low visibility

Nothing significant in the UI indicated a pending offer besides the modal — users could close it and forget.

Lack of access points

Modal appeared every login and external notifications existed, but nothing significant let users re-open it once closed.

Pain points from existing research

Ongoing surveys with 500+ users revealed common misconceptions — a clear lack of understanding only addressable via phone calls today:

«Can I get a better settlement? I thought each one saved 50%.»
«Will I have to make more deposits to accept this settlement?»
«Will this increase how long I’m in the Americor program for?»
«Do I have enough funds to accept this offer?»

Improving understanding & access

How might we make pending offers constantly visible and immediately accessible?

Use a fixed banner to allow visibility and access from all screens — ideating on different banner UIs.

Top banner concept
option A — top
Bottom banner concept
option B — bottom + nav
Option C banner
option C — large CTA

Top banner

First thing users notice. Natural sticky location without overcrowding UI. But hard to click on top.

Bottom banner

Easier to click for hand placement. Combined with nav bar makes UI feel a bit heavy.

Large CTA

Larger CTA and text — calls more attention. Trade-off: takes more screen real estate because it’s fixed.

Multi-variant testing

Each design had interchangeable pros and cons — implementing all three to test conversion and pick the winner.

Option C had the highest conversion. All concepts saw an increase in settlement acceptance, but Option C converted 15% better than A and 3% better than B.

Expanding on initial designs — adding urgency

Post-release research showed high but delayed conversion — creating urgency through banners for faster acceptance.

pain point

Users did not accept offers immediately — some waited almost 3 weeks before accepting.

stats

Offers expire in 1 month. Americor policy: customer service calls them a week before expiry — leading to loss in online acceptance.

iteration

Created urgency through banner UI and encouraged earlier acceptance by surfacing date of expiry at 2 weeks.

Urgency banner
urgency banner with expiry counter

Next problem — addressing misconceptions with FAQ

Users still lacked understanding — calling in or simply not accepting offers. Addressed misconceptions in the form of an FAQ.

FAQ original
FAQ — first iteration

Experience walkthroughs

Internal experience walkthroughs allowed quick feedback and iteration — quick MVP release to assess impact on conversion.

iteration

Participants were inclined to close offers without looking at FAQ.

Mandating FAQ by guiding users through it to close offers.

Mandatory FAQ flow
mandatory FAQ flow

Post-release analysis & problem framing

Data showed FAQs had a positive impact, but were often unread. Less than 35% of users that closed offers and got to the FAQ page actually opened and read them.

High cognitive load & effort

Multiple FAQs rely on users self-diagnosing their own misconceptions — higher cognitive load and user effort.

Lack of empathy

FAQs feel transactional — fail to show empathy, validate concerns, or guide users during an emotional, critical decision.

Not actionable, skippable

A static FAQ is not actionable — users skip it during decision-making, limiting effectiveness in guiding behavior.

Missed opportunity

FAQ limited to known hesitancies — no option for users to voice their own concerns directly.

Design decision — reframing FAQ as rejection guidance

Reframing FAQ into a questionnaire that slows users down to reconsider the offer in a more direct way.

iteration 1

Users don’t wait or take time to read FAQ.

→ Users are forced to select a reason, ensuring reconsideration.

iteration 2

FAQs can feel avoidant of actual user issues — like they’re trying to convince.

→ Asking users their thoughts directly makes them feel heard.

iteration 3

Users have to self-diagnose concerns in FAQ — high effort.

→ Framing it as why they’re not accepting aids their thought process and pinpoints the appropriate answer.

Rejection guidance UI
rejection guidance — questionnaire flow
Result

"Other Reason" expands to a text field — constant data collection, ongoing research into settlement acceptance.

Result

Limited-group testing showed significant conversion going back to offers from rejection flow — +20% from static FAQ.

Overall

Led to +4% offer acceptance overall.

Redesigning offer UI

Concept testing & interviews

Concept testing with users to identify pain points and understand decision drivers for accepting a settlement.

Method

1:1 semi-structured video calls — users walk through the prototype.

Sample

15 users who have accepted and rejected at least one settlement.

Goals

Decision factors · gaps in understanding · visual cues that drive acceptance.

Problem framing — offer UI lacked scannability

Wrong priority

Offer didn’t prioritize info that mattered most: settlement amount vs. original amount.

Unclear labels

“Settlement rate”, “term”, “start date” — confusing to users.

Hard to scan

Difficult to scan settlements quickly — had to look over the offer multiple times.

"Scammy" feel

Felt overeager on the savings — failed to take fees into account, creating trust issues.

Iterations — addressing user pain while redesigning legacy UI

iteration 1

Users care about original vs. settled amounts → reorganized information hierarchy to prioritize decision-driving data points.

iteration 2

Users don’t understand some information → improved copy and added tooltips for unclear info.

iteration 3

Redesigned legacy UI → reorganized layout to feel more professional, added creditor logos for easier identification.

Offer redesign with savings block
initial redesign — with savings block

Design decision — removing the misleading savings block

Avoided a misleading, overly promotional impression by removing the blue savings block — it excluded fees and felt salesy.

Offer redesign without savings block
final — comparison original vs. settlement amount
iteration 1

The savings block came off as “scam-like”.

→ Removed it. Highlighted the comparison between original vs. settlement amount.

iteration 2

FAQs and questions were limited to users rejecting offers.

→ Bringing FAQs to users who may not want to reject, but are reluctant.

Covering the last 5%

Addressed the 5% of Americor users who never registered on the app/online portal. Unregistered users had to rely on phone calls — a workshop with internal teams unblocked them.

Workshop session
internal workshop — handling unregistered users

Solution: a tokenized email flow allowed offer acceptance without needing to register online — covering every user, online or not.

Takeaways & challenges

challenge

Qualitative testing with users directly was particularly difficult here. Pain points were easy to identify and resolve early on, but didn’t necessarily translate to equal conversion. Especially problematic when post-release testing presented gaps in results.

takeaway

When user testing pre-release becomes ineffective, post-release testing is necessary — especially when the main outcome is conversion.

challenge

A significant number of identified problems and inherent solutions were based on hypothesis and design expertise — this study established a sense of design confidence in me.

takeaway

When testing isn’t providing constructive results, it becomes apparent to test out ideas — throw things at the wall and see what sticks, as long as the things you throw are based in expertise or knowledge.

Americor+72% NPS

Engaging Early-Stage Users in Americor

Improving progress visibility, clarity, and predictability of the debt-settlement process to boost user confidence and engagement.

+72%
avg NPS lift across platforms
+15%
early-user retention
4 mo
end-to-end design

My role

  • Aligned product changes with stakeholders and execs across teams — decisions that rippled company-wide
  • Ran cross-team ideation to surface features and changes that drove the design
  • Shipped two new features and three redesigns under tight deadlines, hand-in-hand with engineering
  • Led legacy-UI refresh inside redesigns to bring a more premium feel
  • Worked with the UX researcher on usability and concept testing — insights drove every iteration

Background & problem

Americor negotiates with creditors to settle users’ debts for less than they owe. Negotiation takes time — settlements emerge unevenly, often months apart.

Business problem

Engagement nosedives 2–3 months in. Onboarding cost is paid up front; revenue only lands after a settlement — early disengagement is expensive.

User pain

Users start the program without clear expectations. Long quiet stretches breed confusion, frustration, and doubt — they stop believing deposits are doing anything.

Solution breakdown

Boost confidence and engagement by making the settlement process visible, predictable, and clear.

Solution overview diagram
solution map — clarity, progress, expectations
01 / clarity

Cut steps in the settlement process and rewrite how it’s communicated.

02 / movement

Replace static creditor status with a dynamic progress signal.

03 / activity

Surface what changed since last login — no need to dig through every account.

04 / expectations

Set realistic timelines so users know when to expect a settlement.

Creditor overview redesign
creditor overview — dynamic progress
Recent activity feed
recent activity — what changed since last login
Settlement timeline
expectations timeline

Design process

User research — interviews

Existing data showed early-program turnover; interviews aimed to dig into the why.

  • 10 users between 30–90 days in the program
  • 1:1 semi-structured video calls
  • Tracked emotional state from enrollment → early program → later program
  • Mapped pain points specific to the early window where users disengage

Lack of understanding

Users couldn’t connect individual statuses to the bigger settlement picture. “How does my debt go from coming to Americor to being paid off?”

Missing feeling of progress

Months of deposits with no visible outcomes — “I’ve been depositing for so long, but nothing has happened.”

Uncertainty

“I don’t know if I’m moving in the right direction.” First three months left users questioning whether the program was a scam.

Settlement-process clarity

The process was depicted exactly as it ran internally — overengineered for users.

Legacy process map
legacy — process drawn the way it runs internally
decision

Condense and simplify the negotiation flow for users — the literal version creates more confusion than confidence.

Condensed process
condensed — process the user actually needs

UI iteration

UI iteration board
iteration board — pulling pain points into UI
iter 1 — feeling of progress

Reframed the UI as a timeline — moving through statuses instead of being parked in one.

iter 2 — opaque statuses

Inlined descriptions — visibility without an extra interaction step.

Moderated concept testing

Better understanding of each status. Better sense of moving step-to-step. UI was preferred. But — early users misread settlement as the final step, and the wholistic picture stayed fuzzy.

Pre-settlement iteration
iter — pre-settlement
Post-settlement iteration
iter — post-settlement
decision

Reframe “process” as a creditor lifecycle — enrollment → paid off. Combine pre and post settlement under one continuous journey, then keep the same UI in both phases for consistency.

Dynamic progress

Real progress was slow and uneven — and the UI wasn’t helping users feel any of it.

The aging-vs-funds asymmetry

  • Accounts age automatically as users intentionally miss creditor payments
  • Funds accrue from steady deposits — at the user’s pace
  • Funds save against one or two creditors at a time, then reset after each settlement
  • Roughly half of users can’t deposit fast enough to keep up with aging
  • Early progress concentrates on a couple of creditors while the rest sit still
decision

Decouple early progress from deposit speed — let aging and saving move in parallel so all creditors show motion regardless of which finishes first.

Aging vs funds flow 1
flow 01 — sequence problem
Aging vs funds flow 2
flow 02 — concurrent progress

Reframing the problem

Walkthroughs with stakeholders surfaced something deeper — progress was happening, just invisibly. The overview page lacked any signal that something had changed since last login. With no signal, users had to remember their previous status to perceive any progress at all.

How might we make progress visible

Four directions explored — each with different tradeoffs.

Progress report
progress report
Progress overview
progress overview
Recent activity
recent activity
Update notifications
update notifications
decision

Recent activity won — most honest, most immediate, doesn’t depend on memory.

Recent activity iterations
recent activity — iterations
iter 1

“New” badge for everything that changed since last login — pulls attention without requiring users to recall their previous state.

iter 2

Push notifications for activity events — immediate gratification for users with notifications enabled.

Concept testing — recent activity

”This makes it really clear that something is actually happening. Before, I wouldn’t even notice."
"This is exactly what I want. When will I be able to see this on my app?"
"I’d check this all the time to see what’s changing.”

Creditor-overview redesign

The overview page focused on a static status — no signal of progress, no context for new settlement steps.

Legacy creditor overview
legacy — static status

UI iterations on the status row

Status row iteration 1
iter 1
Status row iteration 2
iter 2
Status row iteration 3
iter 3
Status row iteration 4
iter 4
decision 01

Show progress, not status — hint at forward motion instead of advertising stasis.

decision 02

Tie the progress visual to current status — context for where the user is in the wider journey.

decision 03

Refresh the legacy UI around what users care about — pre and post settlement amounts on top.

Pre vs post settlement overview

Concept testing showed users with active settlements care about payment progress, not status progression — separate views for pre and post settlement, but only on the overview screen.

Post-settlement overview
post-settlement
Pre-settlement overview
pre-settlement
trade-off

Pre-settlement overview shows 4 steps, process detail shows 6 — accepted minor discrepancy, telegraphed via a checkpoint flag matching the icon. Most users either didn’t notice or weren’t confused.

Managing expectations

Initial interviews surfaced an even earlier problem — the debt overview was tuned for post-settlement progress. For early users, that meant a frozen progress bar and rising remaining-debt numbers. Users felt off-track before they had a chance to be on it.

Legacy debt overview
legacy — debt overview
  • Progress bar didn’t move until first settlement (3–6 months)
  • Each login highlighted a lack of motion
  • Remaining debt could grow before settlement due to interest — felt like negative progress
decision

Split the progress overview by phase — distinct views before and after the user’s first settlement.

Split debt-overview views
split — pre and post first settlement
decision 01

No progress bar in pre-settlement — kills the expectation of movement that won’t happen yet.

decision 02

Reframe “settlements” as “creditors” so users aren’t reminded of what they don’t have yet.

decision 03

Drop “remaining debt”, focus on enrolled debt — remove the interest-driven negative signal.

trade-off

These calls strip progress signals — but the signals were static anyway. Compensated by the new recent-activity feature.

New feature — settlement timeline

Users wrongly anchored to specific dates and got frustrated when reality didn’t match. A projected timeline sets a realistic, flexible expectation.

Settlement timeline feature
feature — settlement timeline

Iterations

iter 1

Timeline + percentage format raised cognitive load — users misinterpreted the data. Stripped to require zero interpretation.

iter 2

Users read early settlement projections as guarantees — added plain-text framing to position the data as a projection, not a promise.

Timeline iterations
timeline — iterations

Takeaways & challenges

challenge

Showing detailed information without losing the user. Early-stage and late-stage users wanted different things at different fidelities — finding the balance was the bulk of the project.

takeaway

“Tell users everything” sounds responsible until you ship it. Information overload causes the same — sometimes worse — confusion as too little. For consumer products, simplifying complex data, sometimes hiding it, is often the right call.

challenge

Users’ needs shift inside a single goal-oriented product. What works for a 30-day user actively misleads a 12-month user. Different mental models for the same screens.

takeaway

Test with the target audience and with the users who’ll be impacted as a side effect. Both groups change the answer.

Health Samurai50+ презентаций

Генератор питчей и презентаций

Превратил зоопарк разрозненных презентаций в единый генератор — три режима, две точки входа, интерактивные слайды-приложения и шаринг с трекингом.

50+
сгенерированных презентаций, daily use
Basic, Variety, Mad
3 режима генерации
Interactive slide
каждый слайд может быть мини-приложением

Вводные

Была в компании боль с презентациями. Меня как дизайнера постоянно дёргали: сделать питч, причесать чужой, помочь с презой очередного продукта. Презентаций было очень много, делали их все по-разному, и каждый раз это превращалось в ручную работу с нуля.

К тому моменту у нас уже был генератор лендингов — весь сайт компании работал на нём. И когда мы увидели, как круто эта машина собирает по любым входным данным лендинг-пейджи, мы задумались — а почему бы не решить тем же способом вторую вечную боль компании.

Что сделал

  • Запустил генератор презентаций на том же домене и движке, что и весь сайт — раздел /presentations.
  • Докрутил фирменный стиль под формат презентаций — крупнее, сфокусированнее, один экран = один смысл.
  • Сделал три режима генерации и две точки входа — от «кинул текст и получил» до визуального конструктора.
  • Добавил интерактивные слайды: каждый слайд может быть отдельным мини-приложением.
  • Встроил шаринг с UTM-метками и трекингом + DOM-пикер «Fixik» для правок на лету.

Зоопарк презентаций

Боль компании

Презентаций и питчей делалось очень много. Каждая команда собирала их в своём инструменте — Google Slides, PowerPoint, Figma, какой-нибудь онлайн-сервис. Нулевое переиспользование, разный уровень качества, бесконечные просьбы к дизайнеру «помочь причесать».

Почему гайдлайны не спасали

Просили набор блоков, паттернов и лейаутов — чтобы собирать осмысленно. Но набор лейаутов в Figma или «где-то визуально» никому не помогал: придерживаться его сложно даже дизайнеру. В итоге всё равно кто во что горазд.

инсайт

У нас уже есть машина, которая круто собирает по любым входным данным брендированные страницы. Презентация — та же история, но с одним переворотом: на лендинге контент ложится в готовые блоки, а в презентации всё строится наоборот — от контента. Инфраструктуру переиспользуем, а модель генерации меняем.

Не блоки, а контент

Здесь — главное отличие от генератора лендингов, и его легко упустить. Лендинг собирается из готовых блоков: есть каталог, контент раскладывается по нему, и за каталог мы почти не выходим. Презентация устроена наоборот — всё строится от контента.

Я не перетащил блоки. Я перевернул саму модель: блоки описаны прозой, мета-смыслом, а не конкретной вёрсткой — «заголовок, описательный текст, три карточки с иконкой сверху», а не зафиксированный layout. Это снимает с агента рамку готового каталога и даёт свободу спроектировать слайд под смысл: список, сравнение, before/after, цитата, шаги — сначала суть, потом форма под неё.

01 / дизайн от контента

Сначала смысл слайда — список, сравнение, before/after, цитата, шаги — потом форма под него. Никакого «впихнуть текст в готовый блок».

02 / текст — дословно

Заголовки, буллеты, цитаты переносятся verbatim: тон, пунктуация, эм-дэши, эмодзи. Слишком длинно — скилл останавливается и спрашивает, а не режет молча.

03 / единый дизайн-язык

Свобода в layout, но не в стиле: только семантические токены и проектная типографика. Один стиль иконок на слайд, в проза-списках — простые буллеты.

Инфраструктуру при этом переиспользовал по полной: тот же домен и движок, что и весь сайт, навигация, меню и адаптив из коробки. На вход — что угодно (MD, свободный текст, PDF, ссылка на Google Slides), на выходе — слайды на нашем домене.

  • Переиспользовал компонент иконок из лендинг-платформы — он гибко настраивает визуал.
  • Подключил глобальные лейауты: тёмный / светлый / красный, с фоном и без, с иконкой и без.
  • Скилл сам ориентируется в вариациях и подбирает подходящее автоматически.
  • Можно сослаться на другую презентацию: «вот ссылка, тут классный тест-слайд — хочу такой же».
Слайд Vertical Scaling — split-тема и таблица замеров
Слайд спроектирован под контент: split light/dark и таблица k6-замеров — форма выросла из данных, а не из готового блока

Три уровня творческой свободы

Раз форма не зашита в каталог, у агента появляется регулятор свободы — три режима. Они строго opt-in: включаются только явным кодовым словом и никогда не выводятся из «сделай поинтереснее». Variety и Madness — взаимоисключающие.

01 / Default / по умолчанию

Всегда активен. Бренд HS, семантические токены, проектная типографика. Опирается на проверенные паттерны — process row, big-number hero, red CTA — и десяток hero-фонов без повторов в одной деке. Рабочая лошадка: предсказуемо и на бренде.

02 / Variety / novel layouts

По явному слову. Скилл изобретает форму из контента, а не из каталога — каждый слайд новый shape, проверенные паттерны под запретом. Стилевой конверт зафиксирован: только цвета и шрифты HS. В отчёте — карта layout’ов.

03 / Madness / off-brand

Кодовое слово «madness» и обязательный warning-гейт. Снят весь стилевой конверт: любые цвета, шрифты, layout, текст можно переписывать — editorial, постер, zine. Держится только техника: валидный SSR, fullscreen, «не кринж».

как это ощущается

Default — рабочая лошадка на каждый день. Variety — когда стандартной формы мало и хочется свежий layout под контент. Madness показывает, насколько далеко движок может зайти, если снять рамки целиком.

Default — собирает презу из рекомендованных блоков
Variety — лепит блоки под нужду слайда, точнее попадает в суть
Madness — рандомный угар

Две точки входа

Ещё на лендингах я понял: люди делятся на два типа. Одним проще собрать всё текстом в голове и в MD — кинул и получил. Другим нужно видеть структуру: «вот мой контент, как он ляжет на блок». Под обе аудитории сделал свой вход.

A / скинь-и-получи

Кидаешь MD / текст / HTML / PDF / ссылку в Claude → «собери презентацию». Скилл сам разбивает на слайды, маппит на блоки, подбирает иконки и лейауты. Быстрый путь для тех, кому важен результат, а не процесс сборки.

B / визуальный редактор

Унаследован от лендинг-платформы: видимые блоки, режим редактирования, превью. Для тех, кто любит контроль — видишь, как контент раскладывается, фиксируешь удачный вариант в MD и отдаёшь Claude. Он собирает по ней готовую презентацию за 5–7 минут.

Визуальный редактор — слайды, палитра компонентов, холст и панель свойств
Библиотека блоков: templates · starters · layouts · content · media

Интерактивные слайды-приложения

Со временем мы упёрлись в ограничение: у тебя один слайд, а данных много — и приходится плодить слайды. Но зачастую простым интерактивом этого можно избежать. Я ввёл в скилл параметр «интерактивный слайд»: указываешь Claude, какой кусок контента превратить в интерактив, и он сам предлагает, как лучше это обыграть.

  • Карточки → клик открывает модалку с подробностями.
  • Свёрнутые данные → раскрываются по клику, прячут объём под кат.
  • Степперы, карусели, табы — пошаговое раскрытие вместо лишних слайдов.
  • Айфреймы, импорты, загрузки, даже запросы — слайд становится полноценным мини-сайтом.
новый слой

Это открыло вообще новый слой. У тебя готовится не презентация, а презентационный мини-лендос, в котором каждый слайд может быть отдельным приложением. Ребята сейчас творят там такое, чего я в исходную идею не закладывал.

Шаринг, трекинг и Fixik

Когда презентация готова — деплоишь. Локально всё собирается на localhost, а отдельный skill deploy гоняет линтеры и проверочные тесты, чтобы «совсем какашка не залилась», и выкатывает. Сначала в пайплайне был разработчик перед деплоем, но Claude стал работать достаточно чётко — звено убрали, и деплой пошёл автоматически после дизайнерского ревью.

  • Гибкий шаринг — публично, по ссылке или с UTM-меткой, чтобы потом видеть в статистике, кому что отправил.
  • Трекинг — кто, когда и сколько раз смотрел, как скроллил, на что нажимал. Всё в одном месте.
  • Fixik — волшебная кнопка: справа выезжает Claude-чат с DOM-пикером. Тыкаешь в любой кусок прямо на слайде, пишешь, что с ним сделать — и Claude вносит правку при тебе.
Fixik сделал правки настолько простыми и быстрыми, что презентации просто взлетели — каждый автор доводит свою до идеала за час, не дёргая дизайнера.

Итоги

Презентации взлетели. Все наши спикеры перешли на этот формат, и каждый день кто-то делает новую. Каждый автор получил две вещи: супергибкую генерацию по любым входным данным и не менее гибкий шаринг с трекингом. Дизайнера перестали дёргать по мелочам — система делает это сама.

50+ / презентаций

Сделано на генераторе. Каждый день добавляется новая — daily use по всей компании.

3 / уровня свободы

Default, Variety, Madness — один и тот же контент в трёх формах: от строгого бренда до off-brand хаоса. Плюс две точки входа: «кинул текст — получил» или визуальный редактор.

/ интерактив

Каждый слайд может быть мини-приложением — потолок презентации поднялся до уровня веб-апа.

что дальше

Получилась настолько крутая штука, что мы всерьёз подумываем оформить её отдельным продуктом. Пока это только мысли — но то, что внутренний инструмент дорос до уровня «а не продать ли это», само по себе результат.

Americor3 platforms

Americor Design System

Three-tier token architecture and a shared component spec across web, iOS and Android — instant theming via Figma modes, Code Connect to React.

3
products unified — web, iOS, Android
2
brands themed via Figma modes
3-tier
token architecture from scratch

Нужно добаивть

Сюда нужна о том, что сначала дизайн система делалась как та, что поддерживает текущий дизайн, а потом когда пришёл задача редизайна, я решил что будем унифицировать внешний вид и поэтому львинная доля всех компонентов стала жить в common components, и только нативные жили в соответствующих библиотеках

My role

  • Owned the system architecture, token structure, and component design
  • Made the case to pause feature work and invest in foundations — got product and engineering buy-in
  • Designed and documented foundational tokens, core components, and usage guidelines
  • Stayed embedded with engineering for three months of post-design implementation

Token architecture

Token architecture overview
Three-tier tokens — primitive → semantic → component — with Figma modes per brand

Cross-platform component spec

Cross-platform spec
One shared spec across web, iOS, and Android — native customised, not abandoned

Platform-appropriate interactions

Platform interactions
Drop-down on desktop · bottom-sheet on mobile · same visual language

Configurable components

Configurable components
Kitchen-sink primitives with toggleable slots replace dozens of bespoke variants

Slot-based cards

Slot-based cards
Consistent outer shell, freeform interior — compose without detaching

Design ↔ code connectivity

Code Connect and Storybook
Figma Code Connect → React in Storybook — engineers inspect real props in Figma
Health SamuraiFigma ↔ код

Дизайн-система shadCN и мост Figma ↔ код

Семантический слой поверх shadCN для Aidbox и продуктовых команд. Код — источник истины, Figma собрана из кода, а перенос интерфейсов идёт через маппинг-матрицы Claude.

70–80%
точность скилла Figma→код с первого запуска
Все команды
дизайн-система в продакшне продуктовых команд
Code-first
код — источник истины, Figma — представление

Контекст

Меня наняли в Health Samurai как дизайнера с замашками разработчика — человека, который пишет код и шарит в технике больше, чем рисует красивые картинки. Компания — это healthcare-IT с плоской культурой: взрослые t-shape инженеры, нет PM, нет QA, нет тестировщиков. Кто хочет драйвить продукт — берёт его и собирает команду по интересам. За 15 лет так наплодилось много приложений, и все они делались без дизайнера. Нейронок, которые могли бы хоть немного помочь, тогда ещё не было — поэтому куча продуктов с точки зрения дизайна выглядела, мягко говоря, так себе.

Первым же проектом мне дали Aidbox — флагманскую FHIR-платформу. За полгода до меня наняли второго дизайнера: он провёл интервью с пользователями и командой, собрал CJM, ревью, большой документ и начал накидывать вайрфреймы. На этом этапе пришёл я.

Бизнес-проблема

Aidbox — платформа, на базе которой разные команды достраивают свои модули. Каждая команда разворачивала Aidbox и рисовала свой дизайн, плюс-минус похожий на остальное. Отдельного дизайн-пакета, который можно было бы подключить, не существовало.

Технический долг

У Aidbox не было ни закономерности, ни дизайн-системы, ни констант — просто набор утилитарных Tailwind-классов и компоненты отовсюду: какие-то самописные, какие-то взятые непонятно где. Даже внутри одного Aidbox можно было встретить несколько разных селектов и кнопок.

Кнопки ставились то px-2, то px-4, бордеры и цвета чуть отличались от места к месту. Всех это бесило — особенно CTO. Задача была сформулирована так: сделать структурный дизайн-слой, отдельный пакет, который любая команда сможет подключить и собирать свой продукт на том же, на чём работает сам Aidbox.

Семантический слой поверх shadCN

Дальше — собственно дизайн-система. Я взял shadCN-компоненты и перестелил их под существующий дизайн Aidbox. shadCN был выбран как основа: он даёт компоненты и свободу, не навязывая визуальный язык. Но именно из-за этой свободы при нескольких командах всё расползалось — поэтому свобода нуждалась в ограничениях.

По пути я унифицировал все микрорасхождения: где-то цвета, где-то бордеры — все незначительно различающиеся элементы смержил к одному. Вместо утилитарных классов — готовые типографические стили. Вместо разбросанных вариантов — компоненты со всеми состояниями внутри: заходишь в кнопку, а там прописаны все её вариации.

01 / палитра

Семантическая палитра — primary / secondary / tertiary / quaternary, с border, foreground и background у каждой роли. Никаких утилитарных цветовых классов.

02 / типографика

Единые типографические стили вместо набора Tailwind-утилит. При конвертации компонента Claude подменял типографику заодно с цветами.

03 / компонент Icon

Отдельный компонент иконки, который умеет включать наборы Phosphor, Lucida и другие — единая точка работы с иконографикой.

Переписывал компоненты вместе с Claude — компонент за компонентом, забирал из shadCN, конвертировал. Сделал таблицу, несколько кастомных компонентов под узкие кейсы системы, добавил состояния, которых у shadCN нет из коробки, расширил инпуты и селекты. Где нужно — добавлял паддинги и иконки.

Архитектурно: команды используют только наши компоненты с нашими токенами. shadCN остаётся фундаментом, но не точкой расширения — расширяемся только через семантический слой.

Скилл shadCN → наши токены

Поскольку конвертация shadCN-компонента в наш стек повторялась снова и снова, я не делал её руками каждый раз. Для всех повторяющихся работ всегда писались скиллы — тогда они назывались иначе, просто MD-файлы в памяти Claude, но суть та же.

что делал скилл

Я описал Claude, как мы переносим shadCN-компонент: меняем все утилитарные классы, касающиеся цветов, на нашу семантическую палитру; подменяем то, что лежит в styles/css; заодно правим типографику и нужные элементы — паддинги побольше, добавить иконки через компонент Icon.

git diff typography.css — Tailwind-утилиты типографики сворачиваются в семантические text-токены
Типографика: набор Tailwind-утилит → семантические токены (text: display / heading / body / overline)

Буквально через месяц на свет появилась первая версия дизайн-системы — то, что я представил команде в Storybook. Все базовые компоненты, таблица, кастомные компоненты под узкие кейсы.

Storybook и ревью команды

Storybook я поднял с самого начала и складывал туда всё, что делаю — он же служил документацией. Можно покликать компонент, переключить состояния, посмотреть все property.

ревью

Презентовал систему команде Aidbox. Команда заревьюила — я всё-таки дизайнер — внесла корректировки, и мы вместе дописали правила для Claude, чтобы он с этого момента делал так, как указала разработка. Нюансы были небольшие. Я получил зелёный свет продолжать.

Дизайн-система в Figma, собранная ИЗ кода

Параллельно второму дизайнеру нужно было пересобирать интерфейсы в Figma на новых компонентах — чтобы и там, и там было одинаково. Но к этому моменту дизайн-система в коде ушла далеко вперёд: мы с Claude уже наделали десятки компонентов с кучей состояний, а в Figma было всего около десятка.

Мы покумекали, и я предложил: подожди, давай попросим Claude. Это был мой первый опыт, когда Claude из кода собирал по крупичкам дизайн-систему прямо в Figma.

Сегодня это делается просто — появились скиллы, появилась хорошая Figma-MCP с кучей методов. Но тогда задача была совсем не тривиальной.

Тогда приходилось много контролировать. Если просто отдать Claude Figma-файл и код, он начинал всё парсить и выжирал кучу токенов — было больно. Поэтому я проверял разные способы: парсил Figma JSON-ом, разными сторонними MCP, пытался через API отдавать только нужные куски, чтобы Claude разбирался быстрее. Ковырял как мог, чтобы сэкономить.

результат

После некоторых мытарств собрали достаточно много компонентов — со всеми состояниями. Дальше допиливали руками, постоянно проверяли синхронизацию: что-то добавлялось в коде, в дизайн-системе — мы синхронизировали это в Figma.

Двунаправленная синхронизация переменных

Порядок намеренно обратный обычному: код — источник истины, Figma — представление. Особенно здорово работала синхронизация переменных — токенов между собой и со стилями. Как всё было названо в коде с точки зрения стилей и логики — точно так же переезжало в Figma.

/ код в Figma

Новый или изменённый токен в коде уезжает в переменные Figma с той же семантикой и именами — без ручного переименования.

/ синхронизация

Проверка синхронизации шла постоянно: что добавилось в коде или в дизайн-системе, то подтягивалось в Figma. Имена и логика сходились с двух сторон.

Перенос интерфейсов через маппинг-матрицы

Когда разработчики начали доверять системе, я перешёл к сборке и редизайну интерфейсов на новых компонентах. Развернул Aidbox у себя и страничку за страничкой переводил всё на компоненты — снова в паре с Claude.

маппинг-матрицы

Мы с Claude создавали маппинги — матрицы соответствий: что он видит на странице, что видит в Figma, какой компонент использовать для какого блока. Если непонятно — Claude задавал вопросы, я навигировал, он составлял для себя карту. Так за месяц мы пересобрали интерфейсы.

Идеально получалось не всегда: код делал процентов 80, иногда меньше, и много мелочёвки приходилось доделывать руками. Но система переехала на автоматизацию — новый дизайн стали получать быстро.

Скилл Figma → код

Дальше написал дизайн-скилл, который переносит уже из Figma. Второй дизайнер собирал часть интерфейсов с командой, и их нужно было переносить в код: что-то один в один, а что-то имело свежий дизайн, который надо аккуратно положить на наши компоненты.

как работает скилл

Я отдаю Claude Figma и саму страницу, которую нужно перенести. Claude сканирует реестр компонентов, видит, что на что маппится, какие состояния использовать, строит таблицу соответствий и задаёт вопросы при неопределённости. Я отлаживал и улучшал скилл итерационно по ходу.

Точность с первого запуска — 70–80%. Иногда ошибается в состоянии, паддинге или раскладке. Я итеративно улучшал инструкции — качество росло. Теперь скилл используют сами разработчики в продакшне.

Итог

01 / система

Дизайн-система на shadCN с семантическим слоем работает в продакшне у всех продуктовых команд. Отдельный пакет, который подключается и используется как источник истины.

02 / мост

Двунаправленный мост Figma ↔ код: компоненты собираются в коде, переезжают в Figma, переменные синхронизируются с сохранением семантики.

03 / скиллы

Скилл shadCN→токены и скилл Figma→код (70–80% с первого запуска) сняли повторяющуюся работу и теперь используются разработчиками.

что вынес

Опыт на раннем этапе технологии: собирал дизайн-систему в Figma из кода через Claude, когда инструментарий для этого только зарождался. Ранние стадии требовали много ручного контроля и оптимизации токенов, но доказали главное: дизайн-систему можно вести как код, а Figma держать представлением, а не источником.

Health Samuraiтекущий проект

Replit для healthtech — приложения для врачей по запросу

Платформа, где врач описывает недостающее приложение словами, а под капотом Claude SDK и Codex SDK собирают FHIR-native приложение, которое встраивается прямо в его чарт. Систематизирую дизайн-слой и для обвязки вокруг агента, и для самого генерируемого приложения.

2 слоя
дизайн-слой обвязки агента + дизайн-слой генерируемых приложений
FHIR-native
приложения, интегрируемые в чарт врача
Главный фокус
основной проект сейчас
// чем занимаюсь сейчас
  • Это мой основной проект прямо сейчас, он в активной разработке. Мы пишем Replit для healthtech — платформу, где врач или большая медицинская компания описывает словами недостающее приложение, а агент его собирает.
  • Под капотом — Claude SDK + Codex SDK и набор скиллов, которые генерируют FHIR-native приложения, встраиваемые прямо в чарт конкретного врача.
  • Приложение может быть сколь угодно сложным: со своими пользователями, workflow engine и «тайм-машиной» — мы гоняем его по времени, местам и пользователям, чтобы тестировать весь workflow.
  • Я систематизирую два разных дизайн-слоя: обвязку вокруг агента (карта / сад) и внутреннюю часть генерируемого приложения.
  • Работаю в той же main-ветке, что и инженеры. Сейчас баланс — 20% Figma / 80% Claude.

Проект свежий, многое ещё в работе — поэтому ниже честно: часть деталей описана, а под визуал стоят плейсхолдеры под будущие материалы.

Что это такое

После того как генератор лендингов и генератор презентаций показали, что подход «опиши словами → агент соберёт» реально работает в продакшене, мы замахнулись на куда более серьёзную задачу.

Большим медицинским компаниям, госпиталям и отдельным врачам постоянно не хватает каких-то приложений. Врачу нужен инструмент под его конкретный сценарий — а заказывать полноценную разработку долго и дорого. Поэтому сейчас мы пишем то, что я для себя называю Replit для healthtech: врач описывает, что ему нужно, а на выходе получает работающее приложение, которое можно интегрировать прямо в его чарт.

Боль врача

Врачу не хватает приложения под его конкретный сценарий. Полноценная разработка — это месяцы, согласования и бюджет. Большинство таких приложений просто никогда не появляются.

Задача платформы

Дать врачу способ описать нужное приложение словами и получить его FHIR-native, встроенным в его чарт — без классического цикла разработки.

Под капотом

Это не «генератор статичных страниц», как было с лендингами. Здесь под капотом полноценная агентная система.

01 / Claude SDK

Основной агентный слой — понимает запрос врача и оркеструет сборку приложения.

02 / Codex SDK

Второй SDK в связке — на нём держится часть генерации и работы с кодом.

03 / скиллы

Набор скиллов под капотом, которые превращают описание врача в FHIR-native приложение.

04 / FHIR-native

Сгенерированное приложение говорит на FHIR с самого начала и встраивается в чарт конкретного врача.

Врач описывает, что ему нужно — скиллы под капотом собирают непосредственно FHIR-native приложение, которое впоследствии интегрируется в ту или иную чарту того или иного врача.

Что генерится

Главное отличие от прежних проектов — приложение может быть сколь угодно сложным. Это не лендинг и не презентация, это полноценный продукт со своей жизнью.

Свои пользователи

У сгенерированного приложения могут быть собственные пользователи и роли — это полноценный продукт, а не одноразовый экран.

Workflow engine

Внутри живёт движок рабочих процессов — приложение описывает и исполняет реальный клинический workflow.

Тайм-машина

Можно гонять приложение по времени, местам и пользователям — чтобы тестировать, как ведёт себя весь workflow в разных условиях.

тайм-машина

«Тайм-машина» — для меня одна из самых интересных частей. Мы прокручиваем приложение по времени, по местам и по разным пользователям, чтобы увидеть, как отрабатывает весь workflow целиком, а не отдельный экран. Это меняет то, как я проектирую состояния: я думаю не про один кадр, а про всю траекторию процесса.

Workflow engine — визуализация процесса внутри приложения
Тайм-машина — переключение по времени и пользователям

Два дизайн-слоя

Самое содержательное, чем я занимаюсь как дизайнер на этом проекте, — это то, что здесь два принципиально разных дизайн-слоя, и их нельзя смешивать.

01 / обвязка агента

Слой вокруг агента — «карта / сад». Это интерфейс, через который врач общается с агентом, видит, что собирается, и управляет процессом.

02 / внутри приложения

Слой внутренней части самого сгенерированного приложения — то, что в итоге попадает врачу в чарт и чем пользуются конечные пользователи.

Поначалу я отвечал за дизайн и систематизировал дизайн-слой для карты / сада — для обвязки вокруг агента. А потом отдельно систематизировал дизайн-слой для внутренней части приложения. Это два разных слоя со своими правилами, и держать их раздельно — принципиально: обвязка должна быть про управление и наблюдаемость агента, а внутренняя часть — про чистый, предсказуемый продукт для врача.

почему два слоя

Если смешать слои, получится каша: интерфейс управления агентом начнёт протекать в само приложение, которым пользуется врач. Поэтому я веду их как две отдельные дизайн-системы — у каждой свой язык, свои паттерны, свои состояния.

Дизайн-слой обвязки агента — карта / сад
Дизайн-слой внутренней части генерируемого приложения
Это два разных слоя — обвязка вокруг агента и внутренняя часть приложения. Я систематизирую дизайн отдельно для каждого.

Как я работаю

На этом проекте я окончательно живу в том же репозитории, что и инженеры. Никакого «дизайнер отдал макет — команда когда-нибудь реализует».

20% / Figma

Остаётся для проработки мелочёвки и отдельных интерфейсных кусков, где нужен точный визуальный контроль.

80% / Claude

Основная работа — прямо в коде, в одной main-ветке с разработчиками.

  • Я работаю в той же main-ветке, что и разработчики — все свои изменения вношу прямо туда.
  • Дожидаюсь, когда инженеры выкатят какой-то сложный бизнес-код или бизнес-логику, прокручиваю результат, смотрю, что мне не нравится.
  • Проект у меня развёрнут локально — с помощью Claude вношу изменения сразу, как мне нужно.
  • Затем обсуждаю изменения, которые хочу внести, с командой.
  • Где нужен точный визуал — забираю кусок в Figma, дорабатываю мелочёвку и возвращаю в код.
процесс

Я не жду релиза, чтобы потрогать дизайн. Дождался сложной бизнес-логики от инженеров — прокрутил, увидел шероховатости, тут же поправил в коде, обсудил с командой. Дизайн здесь — это коммиты в общей ветке, а не отдельные файлы.

Где сейчас

Это мой основной проект на данный момент. Параллельно я продолжаю поддерживать всё, что сделал до этого — генераторы лендингов и презентаций, блог, дизайн-систему — добавляю формы, куски интерфейса, новые блоки. Но фокус сейчас здесь: мы пишем агента, который пишет врачам приложения.

2 слоя
Дизайн-слой обвязки агента + дизайн-слой приложений
FHIR
Native-приложения, интегрируемые в чарт врача
Now
Основной проект, в активной разработке
20 / 80
Figma / Claude, общая main-ветка

Обсудим работу

Проект живой и продолжает развиваться — деталей и материалов будет становиться больше. Готов пройтись по любому слою: как устроена обвязка агента, как генерируются FHIR-native приложения, как работает тайм-машина и почему я веду два дизайн-слоя раздельно.

Написать
Health Samuraiмаскот → продукт

Бренд, иллюстрации и генератор кудосов

Редизайн фирстиля компании и линейки продуктов, система иллюстраций, маскот, стиль диаграмм и управляемый пайплайн нейрогенерации графики — вплоть до генератора кудосов на нейросети, дообученной на бренд-маскоте.

Единый стиль
фирстиль, логотипы всех продуктов, иллюстрации, маскот
~200
генераций кудосов, ежедневное использование
Пайплайн
управляемая нейрогенерация графики, не разовое «угадал»

Моя роль

  • Вёл редизайн фирстиля компании и продуктовой линейки в паре с со-дизайнером
  • Собрал систему иллюстраций, маскота/персонажа и единый стиль диаграмм
  • Перевёл стиль диаграмм в Claude-скилл, который генерит брендовые SVG автоматически
  • Выстроил управляемый пайплайн нейрогенерации графики (Gemini, ChatGPT, Flux + рендер в Figma Weavy)
  • Обучил нейросеть на бренд-маскоте и встроил генератор кудосов в Telegram-бот

Контекст — продукты без единого визуального языка

Health Samurai — это 15 лет жизни компании, где 80 инженеров строили продукты вообще без дизайнера. Нейронок, которые могли бы хоть немного помочь с графикой, тогда ещё не было. В итоге накопилась куча приложений, и с точки зрения дизайна они, мягко говоря, выглядели по-разному. У каждой команды — свой продукт, свой случайный визуал, никакой системы.

Бизнес-проблема

У компании нет узнаваемого лица. Продукты линейки выглядят так, будто их делали разные компании. Бренд не работает на доверие в healthcare, где доверие — это всё.

Боль команд

Каждая команда каждый раз изобретает графику с нуля — логотип модуля, иллюстрацию, диаграмму. Долго, непредсказуемо и всегда вразнобой.

Figma-канвас со старыми материалами Health Samurai — десятки разрозненных макетов, логотипов и иллюстраций
До — зоопарк визуальных языков по продуктам и поверхностям

Редизайн фирстиля и логотипы линейки

Я зашёл в проект по бренду в паре с со-дизайнером. Мы переделали фирменный стиль компании целиком: палитра, типографика, графические элементы, маркетинговые шаблоны — и собрали систему, которую можно держать единой на всех поверхностях.

Отдельная большая часть — логотипы. Продуктов в линейке много, и каждому нужен был знак, который читается как часть одной семьи, но при этом узнаётся отдельно.

01 / фирстиль

Новый корпоративный визуальный язык — палитра, типографика, графические константы.

02 / логотипы

Знаки для всей продуктовой линейки — единая система, узнаваемые члены семьи.

03 / шаблоны

Маркетинговые заготовки — LinkedIn, мероприятия, загрузки.

image · brand-system-overview.png
Обзор бренд-системы — палитра, типографика, графика
Логотип компании — новый знак
Логотипы линейки: Aidbox, Formbox, Termbox, MDMbox
Логотипы линейки: Payerbox, eRxbox, Smartbox, RCMbox
Система логотипов — единый каркас знака

Система иллюстраций

Под лендинги, статьи блога и пустые состояния нужна была не пачка случайных картинок, а система — узнаваемые сцены, единые персонажи, общая стилистика линии и цвета. Это то, что превращает набор страниц в единое лицо компании.

Иллюстрации для лендингов
Иллюстрации для статей и пустых состояний
image · illustration-grid.png
Сетка иллюстраций — единая стилистика

Маскот / персонаж

Отдельно мы собрали фирменного персонажа — маскота. Это не просто украшение: персонаж даёт бренду характер, его легко поставить в любую сцену, и, как выяснится дальше, именно он стал ядром одной из самых живых внутренних фич компании.

Маскот — базовый образ
Маскот — эмоции и позы
Маскот — в сценах и контексте
image · mascot-sheet.png
Лист персонажа — образ, состояния, вариации

Стиль диаграмм + скилл для SVG-диаграмм

У нас работают очень серьёзные эксперты по healthtech, и блог — важная часть компании: люди постоянно делятся решениями в статьях. А в статьях про FHIR-инфраструктуру без диаграмм никуда. Проблема была та же — каждый рисовал схемы как умел.

Я сделал единый стиль диаграмм и, что важнее, перевёл его в Claude-скилл, который собирает SVG-диаграммы в нашем фирменном стиле прямо из описания. Разработчик пишет статью, скилл подтягивает брендовую схему — и не надо звать дизайнера на каждую картинку. Туда же ушла стилизация диаграмм Mermaid.

решение

Не «нарисовать красивые диаграммы», а зашить стиль в скилл — чтобы разработчики выкатывали брендовые SVG-схемы сами, быстро и единообразно.

Стиль диаграмм — до / после
SVG-диаграмма генерится скиллом из описания
image · mermaid-before-after.png
Mermaid — до / после стилизации

Пайплайн нейрогенерации графики

Самое интересное — не отдельные картинки, а то, как мы их делаем. Логотипы, иллюстрации, маскота мы генерировали в разных нейронках: Gemini, ChatGPT, Flux — в чём только не пробовали. Поначалу это было лотереей: где-то «угадал», где-то нет.

В итоге мы выработали стиль и нашли повторяемый пайплайн. Финальный рендер всей графики я гоняю через Figma Weavy — это даёт контроль над результатом, а не разовое везение модели. Главное достижение тут — не отдельная красивая картинка, а управляемый процесс: я могу предсказуемо получать графику в нашем стиле.

01 / генерация

Gemini · ChatGPT · Flux — подбор модели под задачу.

02 / стиль

Выработанные правила и референсы, чтобы держать бренд.

03 / рендер

Figma Weavy как точка финального контроля над графикой.

video · neuro-pipeline.mp4
Пайплайн нейрогенерации — от промпта до рендера в Figma Weavy
что достигнуто

Фирменный стиль получился симпатичный и запоминающийся, а главное — графику теперь делает управляемый пайплайн, а не разовое «повезло с генерацией».

Генератор кудосов — маскот в Telegram-боте

Внутри компании есть «кудосы» — внутренняя валюта благодарностей: сотрудники дарят их друг другу за достижения. Жила эта система в Telegram-боте, но сообщения были чисто текстовыми — жест получался сухим.

Раз у нас уже был маскот и пайплайн нейрогенерации, я собрал генератор изображений на нейросети, дообученной на бренд-персонаже. Сотрудник пишет, за что благодарит, — сеть генерит картинку маскота, разыгрывающего ровно этот сценарий, и бот прикладывает её к кудосу. Благодарность стала личной и запоминающейся.

image · kudos-bot.png
Кудос в Telegram-боте — текст благодарности + сгенерированная картинка маскота
  • Нейросеть дообучена на персонаже бренд-маскота
  • Сотрудник пишет суть благодарности и контекст
  • Генератор создаёт изображение маскота в этом сценарии
  • Картинка вкладывается в ответ Telegram-бота
Маскот, нарисованный для бренда, в итоге каждый день ходит по компании — как валюта благодарности.
~200
Генераций кудосов на сегодня
Daily
Ежедневное использование по всей компании
Mascot
Сеть дообучена на бренд-персонаже

Итог

Из зоопарка случайной графики получился единый язык: фирстиль, логотипы всей линейки продуктов, система иллюстраций, маскот и стиль диаграмм. Под капотом — не ручная отрисовка каждой картинки, а управляемый пайплайн нейрогенерации и скилл для брендовых SVG-диаграмм. А вершина истории — маскот, который из статичного образа превратился в живой продукт: генератор кудосов в Telegram-боте, которым пользуются каждый день.

Health Samurai94 участника · 56 тем

FHIR Camp BOF — система голосования за темы

Мобильное веб-приложение для офлайн-конференции FHIR Camp. Участники предлагают темы для обсуждений (Birds of a Feather) и собирают вокруг них группы, организаторы модерируют, а на экранах в зале в реальном времени видно, какие темы набирают людей. Собрал вайб-кодом за неделю — отработало на реальной конференции.

94
участника на реальной конференции — 3 дня, 6 BOF-сессий
56 / 153
предложенных тем / присоединений
1 неделя
от идеи до продакшена, вайб-кодом — и с тестами
Живая BOF-сессия — на экране в зале темы перестраиваются в реальном времени
FHIR Camp — участники конференции Health Samurai в зале

Что это

FHIR Camp — большое офлайн-собрание лидеров healthcare-IT, которое проводит Health Samurai. Один из форматов там — BOF (Birds of a Feather): неформальные обсуждения в группах по темам. Сложность в том, что за ограниченное число слотов нужно быстро понять, какие темы реально интересны залу и кто их поведёт — без бумажных списков и каши в чатах.

Я собрал под это мобильное веб-приложение: участник с телефона за десять секунд предлагает тему или присоединяется к чужой, организаторы модерируют, а на экранах в зале в реальном времени видно, какие темы набирают людей. Сделал вайб-кодом за неделю — и оно отработало на настоящей конференции: 3 дня, 6 сессий, 94 участника.

Личный QR-код участника и ссылка для входа
Личный QR с бейджа и ссылка для входа — скан, и ты внутри, без пароля и регистрации

Предыстория

Конференцию ещё только планировали. На паре митингов я случайно услышал, как её собираются организовывать — и среди прочего, что BOF-сессии хотят вести по бумаге: каждый от руки записывается в тему на распечатанном листке.

Я спросил, зачем так — и мне объяснили суть формата: за ограниченное число слотов надо быстро понять, какие темы реально заходят залу и кто готов их вести. Звучало как ровно та задача, которую телефон в кармане решает лучше бумаги. Я предложил собрать под это приложение. Сказали: ну да, вроде здорово — но без энтузиазма, скорее в духе «когда-нибудь».

решение

Я не стал ждать тикета и согласований. Никому ничего не сказав, просто пошёл и спаял приложение — а принёс его уже работающим.

Части приложения

Дальше — по частям: что есть в приложении и зачем. Три интерфейса под три аудитории — участник с телефона, организатор в админке и проектор в зале.

Вход — по QR с бейджа

У каждого участника на бейдже свой QR-код. Сканируешь — и сразу внутри, без паролей и регистраций. За кодом закреплён конкретный человек, поэтому система знает, кто голосует, и считает честно — без накруток с нескольких телефонов.

Бейдж с личным QR — то, что участник сканирует на входе
Участник в зале — бейдж с QR в руках и приложение открыто на телефоне

Главная — сессии по дням

Открываешь — и видишь все BOF-сессии, разложенные по дням конференции, а в каждой — топ-темы, которые набирают людей прямо сейчас. Отсюда проваливаешься в нужную сессию.

Главная участника
Главная участника — BOF-сессия со списком тем и счётчиком собравшихся у каждой

Тема — веду или присоединяюсь

Главная механика: не просто «голос», а «веду или присоединяюсь» — так, как это и работает на офлайн-BOF.

01 / веду

Создаёшь свою тему и становишься её ведущим. Одна тема на сессию — фокус на том, что реально хочешь обсудить.

02 / присоединяюсь

Подсаживаешься к чужой теме. Один выбор на сессию, можно передумать и переключиться на другую.

Вес темы — это сколько людей вокруг неё собралось плюс сам ведущий. По нему темы и ранжируются. В части сессий включается режим Lightning Talks — присоединяться нельзя, можно только вести короткое выступление; интерфейс это подсказывает.

Веду — создаёшь свою тему и становишься её ведущим, одна на сессию
Присоединяюсь — подсаживаешься к чужой теме, виден состав и счётчик

Моя активность и профиль

Отдельный экран показывает твою активность: какие темы ты создал и в скольких сессиях из шести поучаствовал. В профиле — данные, собранные бейджи и выход.

Моя активность
Моя активность — созданные темы и участие (сколько из шести сессий зацепил)

Админка организатора

У организаторов — своя панель на весь цикл мероприятия:

01 / сессии и QR

Настройка BOF-сессий (день, номер, окна голосования, режим) и генерация QR-кодов на участников для печати на бейджи.

02 / участники

Массовое добавление, список со статистикой, блокировка нарушителей, печать кодов.

03 / модерация и аналитика

Скрыть/перенести тему, а в аналитике — топ-темы, топ-участники и разбивка по дням и сессиям.

Экран в зале

На проектор выводится полноэкранный режим: сетка тем, отсортированных по числу собравшихся, индикатор LIVE и обновление в реальном времени. Зал видит, как темы перестраиваются прямо по ходу голосования — это и драйвит участие.

Экран в зале — живое голосование
Экран в зале — топ-5 тем перестраиваются вживую по мере присоединений, индикатор LIVE

Что демонстрирует кейс

94
Участника на реальной конференции (3 дня, 6 сессий)
56 / 153
Предложенных тем / присоединений
1 нед
От идеи до продакшена, вайб-кодом

Это первый случай, когда мой вайб-код ушёл не во внутреннюю песочницу, а в живой продакшн с реальными пользователями — и отработал. Полноценный продукт с тремя интерфейсами, продуманной механикой и геймификацией, собранный за неделю — причём с тестами, а не на скорую руку.

FHIR Camp стал поворотным: после него поддержка code-first-подхода в компании заметно расширилась — первый крупный продакшн-пример, что вайб-код реален, а не побочный проект.
Health Samurailive test

Marketing Illustrations for Health Samurai

A small custom-built sticker library — chibi-style samurai mascots used across landings, social, OG-images and conference swag. Built with an image-gen pipeline tuned to the brand mascot.

40+
stickers in the library
~1 hr
per finished asset
5
surfaces using them

// test case — assembled live to validate the build-and-ship pipeline (Roman in Telegram → main agent in terminal → MDX → astro build → link back into the chat).

// Brief

Health Samurai’s brand mascot is, well, a samurai. Marketing kept asking for more illustrations — for landing pages, social posts, OG-images, conference swag. Hand-drawing each one in Figma was slow. Buying stock didn’t fit the brand.

I set up a small image-gen pipeline tuned to the mascot: same posture, palette, sticker frame, soft cute energy, transparent-friendly background. One brief in, one finished asset out, ~an hour each.

// The library

Chibi samurai sitting in bow
sticker · samurai sitting in bow
Samurai meditation pose
sticker · samurai in meditation
Chibi samurai duplicate variant
alt take · same brief, different model run

// Approach

▸ One brand prompt, locked. Same color palette, sticker outline, soft pastel background, mascot proportions. ▸ Three modes: chibi (cute, social), classic (landing-hero), meditation (about / culture pages). ▸ Output: 1024×1024 PNG with a baked white outline, ready to drop into any surface. ▸ Each asset took ~30-60 minutes from brief to final, vs days through a hand-drawn process.

// Outcome

▸ 40+ stickers in the library after a few weeks. ▸ Used across landings, social, OG-images, and FHIR Camp conference materials. ▸ Marketing can self-serve — they brief the prompt template themselves now.

// Note

This page was assembled live as a test of the portfolio’s case-build pipeline: a request comes from a visitor’s chat into Roman’s Telegram, gets handed off to the main agent in his terminal, MDX is written here, astro build ships it, the link drops back into the visitor’s chat. End-to-end validation.