Blog

  • Модель RDB — инструмент для мышления маркетолога

    Модель RDB — инструмент для мышления маркетолога

    Все коммерческие предложения, лендинги, ТЗ на рекламные плакаты и вообще всю маркетинговую коммуникацию я уже много лет проектирую на основе модели RDB. Про неё я узнал из выступления Ильи Балахнина и тут же применил на одном из клиентских проектов. Удалось вырастить конверсию лендинга в 3 раза не прибегая к редизайну — я просто блоки переставил местами в соответствии с моделью.
    Модель даёт отличные результаты на практике, потому что позволяет выстраивать повествование про ваш бренд или предложение в понятном потребителю порядке.

    Resonance
    В резонансе нужно русским по белому написать ваше предложение на понятном клиенту языке. Запуск интернет-магазина для бренда одежды за 30 дней.
    Клиент узнаёт себя, чётко и ясно понимает вашу услугу. Важно, чтобы всё окружение резонанса транслировало сопутствующую атмосферу и атрибуты. Картинка с котятами не подойдёт — нужны картинки интерфейсов современных интернет-магазинов с одеждой, фэшн-фотографии и процесса оформления заказа. Шрифты, цветовая палитра, Tone of Voice — должны соответствовать резонансу. Не стесняемся лепить самую банальщину. Клиника — врачей в белых халатах, а не яблоки на тарелке или здоровых пациентов.

    Differentiation — отличие от других.
    Для B2C брендов нужно говорить про потребителя и как его индивидуальность будет подчёркивать этот продукт или услуга. Чем он будет отличаться от других после покупки.
    Для B2B рынка мы делаем ровно наоборот — доказываем, что мы такие же, как и все: соблюдаем стандарты, имеем лицензию, делаем по методологии. Корпоративный клиент не хочет рисковать, поэтому предпочтёт проверенное решение. Магазин на WordPress, а не самопис от нашей студии. Бухучёт по международному стандарту, а не по авторской методике.

    Belief — создаём доверие и внушаем веру в продукт или компанию. Размещаем логотипы и отзывы клиентов. Показываем производство и работников. Публикуем реквизиты компании. Даём значимые цифры, подтверждающие наш опыт и компетенции. 3 тысячи сайтов сделано, 20 тысяч клиентов выздоровело, 300 миллионов рублей потрачено.

    В ходе применения RDB и обратной связи я немного модифицировал формулу. Мой порядок применения модели: RBDB, — два раза используется Belief. Первый раз мы создаём доверие сразу после резонанса. Внимание покупателя захвачено, нужно сказать, что мы норм, чтобы следующий блок был встречен с предварительно сформированным доверием. Достаточно краткой полоски логотипов, фотографий людей и значимые цифры. Второй раз мы будем использовать весь арсенал — отзывы, фотографии, сертификаты и награды, видео-ролики и демонстрацию внутрянки. Этот Belief может быть огромным лонгридом для самых недоверчивых Осликов по матрице Винни-Пуха.

    Применение этой модели сильно снижает предстартовую фрустрацию и позволяет мне сразу создавать скелет эффективного КП или лендинга.

  • Файлы теперь лежат в ведрах

    Файлы теперь лежат в ведрах

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

    В 2006 Амазон запустили Simple Storage Service (S3) — сервис с простым хранением файлов в облаке, призванный решить все эти вопросы. Через API загружаем файл, сервис генерирует ссылку. Файл загружается в вёдро (bucket), а не на диск. Вёдра не имеют ограничений как у папок и могут быть распределены по разным серверам.

    Сейчас S3-сервис можно создать на многих хостингах в пару кликов. Также можно развернуть своё S3-хранилище с помощью Open Source, например MinIO.

    Для чего это нужно нам сейчас на практике?
    – Загружать и хранить бэкапы — первое с чего обычно начинают.
    – Хранить файлы отдельно от нод, обрабатывающих запросы.
    – Отдавать статические файлы сайта (картинки, скрипты, файлы для скачивания) с отдельного сервиса.
    – Избегать ситуации с переполненным диском на сервере за счёт переноса всех больших файлов в S3.
    – Организовывать безразмерные хранилища файлов на терабайты с открытым и закрытым доступом.
    – Для S3-хранилищ есть библиотеки на всех популярных языках.
    – Все S3-совместимые хранилища работают по образцу Amazon S3, поэтому ко всем хранилищам нужна одна библиотека.
    – Для разработки в docker-compose удобно использовать образ MinIO.

    Может тарифицироваться:
    – Стоимость хранения в гигабайтах.
    – Стоимость трафика загрузки в облако (чаще всего бесплатно)
    – Стоимость трафика выгрузки из облака.
    – Запросы к файлам.
    – Хранение старых версий файла (если работает с версионированием).

    Для большинства проектов переход на S3 — шаг на пути к масштабированию и большим нагрузкам. Но нужно внимательно считать сценарий использования — может оказаться значительно дороже традиционного способа.

  • Книга с полки: От нуля к единице

    Книга с полки: От нуля к единице

    Стэнфордский университет, весна 2012 года. Студент Блейк Мастерс ведёт очень подробные заметки по курсу лекций “Computer Science 183: Startup”. Автор курса — Питер Тиль, сооснователь и генеральный директор PayPal, а также участник мафии PayPal. У Питера захватывающая для бизнесмена биография — например, он самый первый инвестор в Facebook. В фильме “Социальная сеть” роль Тиля сыграл Джастин Тимберлейк.

    Главная ценность курса — Питер передаёт своё мировоззрение основателям стартапов. Он не рассказывает о формуле успеха и не даёт практических знаний, как в MBA. Зато очень ценно узнать от практика, что основатель должен искать “нечестное” конкурентное преимущество, которое не смогут повторить конкуренты.
    Одна из основных мыслей книги — технологические инновации делают необычные люди необычными способами. Но часто пионеры зарабатывают меньше, чем те, кто приходит следом и масштабирует проверенные решения. Ещё он уже тогда рассказывал о сверхчеловеческом ИИ и его влиянии на производительность труда.

    Курс был необычного формата: лекции напоминали экскурсы в историю предпринимательства и психологические разборы. Часть лекций проходила с гостями и выглядела как живой подкаст.

    Заметки с этого курса публиковались на tumblr и стали очень популярными среди стартаперов и фондов. Помню, что поставил закладку в браузере и проверял новые выпуски несколько раз в неделю, настолько это отличалось от другого контента.

    Через некоторое время заметки отредактировали и издали в виде книги. На русском языке она вышла в Альпине под названием “От нуля к единице. Как создать стартап, который изменит будущее”.

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

  • WordPress устарел, но это легко исправить

    WordPress устарел, но это легко исправить

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

    Чего не хватает в WordPress?
    – Поддержку git каждый придумывает самостоятельно, потому что нет общих рекомендаций. Держать в репозитории только тему или всю папку? Что делать с плагинами? Должно ли быть ядро в репозитории? Непонятно.
    – Нет поддержки composer — нет управления зависимостями. Чтобы воспроизвести такой же сайт, нужно выписать все названия и версии плагинов, а затем устанавливать их вручную. Нет способов поставить внешнюю библиотеку. Разные плагины тянут за собой зависимости, которые могут конфликтовать друг с другом.
    – Конфигурация задаётся через файл. Нет поддержки переменных среды ENV, нет поддержки нескольких окружений. Работать с CI/CD и контейнерами практически невозможно.
    – Весь код находится в публичной папке сервера. В зависимостях WordPress много кода, который можно было бы спрятать в папку vendor ради безопасности.

    В общем, упущены все базовые вещи, которые есть в популярных фреймворках Laravel, Symfony, Next, Django, Ruby on Rails.

    Все эти упущения исправляет бесплатная сборка Bedrock от коллектива разработчиков Roots. Это тот же WordPress, но он уже больше похож на фреймворк. В нём есть git, composer, env, поддержка Docker и CI/CD. Он использует те же плагины, темы оформления и тот же базовый WordPress в качестве ядра. Изменена структура папок и метод загрузки конфигурации. Всё остальное работает точно так же.

    Я использую Bedrock уже несколько лет, он отлично себя зарекомендовал в продакшине. Обновления с локальной среды разработчика оказываются на тестовом сервере после git push. Сразу устанавливаются те же версии WP и плагинов, обновляется тема оформления, сбрасывается кэш, импортируются настройки.

    Bedrock может открыть WordPress с другой стороны для разработчиков, которые привыкли к “взрослому” миру фреймворков. Более того, у Roots есть пакет Acorn, который добавляет в WordPress пакеты из Laravel. Как тебе такое, Илон Маск Мэтт Мулленвег?

  • Клиент забыл, какой хостинг у его сайта

    Клиент забыл, какой хостинг у его сайта

    Два раза за последние сутки разыскивали потерянные хостинги для клиентов.

    Порядок действий:
    0) Домен-то вы знаете? 😆
    1) Нужно посмотреть в DNS куда направлена A-запись этого домена.
    Для консольщиков:
    Команды nslookup (Windows) или host (macOS/Linux).

    $ host fullstackfounder.ru  
    fullstackfounder.ru has address 46.173.18.24

    Для нормальных людей:
    Идём на сайт https://mxtoolbox.com/, выбираем режим DNS Lookup.
    Сразу видим IP-адрес и в чьём диапазоне он находится.

    2) Узнаём, за кем закреплён IP-адрес
    Идём на сайт https://ipinfo.io/ и вводим полученный IP-адрес.
    Тут написана компания, которая получила диапазон IP-адресов, а также email для жалоб. Из этого email очевидно, какой сайт у хостинга.

    Это может не сработать, если IP окажется в диапазоне Cloudflare или другого прокси. Тогда путь начинается с восстановления доступа к этому прокси — ищем в переписке по названию сервиса и пробуем попасть вначале туда. Там в панели будет DNS и настоящий IP-адрес.

    3) Пишем в поддержку найденного хостинга с просьбой восстановить доступ. В идеале — с официального ящика компании, указанного на сайте. Может понадобиться запрос на бланке организации или визит с паспортом в офис.

    Эта последовательность действий должна помочь выявить хостинг в большинстве случаев.

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

  • Выводы с прожарки КП

    Выводы с прожарки КП

    Сегодня в клубе Галера в прямом эфире я с коллегами-экспертами разбирал два десятка коммерческих предложений (КП) диджитал агентств.

    Рефлексирую полученный опыт в виде чеклиста:
    – На обложке КП нужно написать русским по белому какая именно услуга предлагается, название клиента и название агентства.
    – После обложки хорошо бы кратко представить агентство и вызвать доверие логотипами клиентов, рейтингами и значимыми цифрами.
    – Если показываете фотографию одного только основателя, агентство воспринимается как лавочка фрилансера. Покажите групповое фото или кружочки с командой.
    – Дизайн продаёт без слов. Возьмите на создание шаблона КП лучшего дизайнера, которого только сможете себе позволить — это быстро окупится.
    – КП нужно адаптировать под клиента и писать на языке клиента. Многие КП сделаны на языке агентства и клиенту не понятны.
    – Смету, медиаплан, десяток подробных кейсов, аудит и даже концепцию можно приложить дополнительными документами и дать ссылки.
    – Подрядчики на трафик любят делать разбор рынка клиента и его конкурентов. Выглядит, как будто агентство напрашивается на проверку домашки.
    – Агентства склонны сильно раздувать КП. Клиент не будет читать 40 слайдов, у него лежит целая пачка таких же КП. Нужно учиться зацепить клиента в 10 слайдов, включая обложку.
    – На последнем слайде — контактные данные менеджера по продажам и название агентства ещё раз. На этом слайде больше ничего не нужно.
    – Цена должна быть на одной из первых или последних страниц. Если она спрятана в середину КП, её будет очень сложно найти.
    – Не стесняйтесь писать цену большим шрифтом и заметно. Клиент ожидает, что вы назовёте цену, не нужно её прятать в таблицах.
    – Цена должна содержать полную стоимость для клиента: со стоимостью услуг агентства, рекламным бюджетом и НДС. Часто указывают только стоимость услуги, хотя клиент будет оплачивать всё вместе.
    – Окупаемость нужно считать исходя из полных затрат, включая услуги агентства, а не только из рекламного бюджета.
    – Указывайте на какой системе налогообложения вы работаете. Клиентам с НДС это важно.

    Вижу, что формат прожарки КП очень популярен в клубе. Так и просится собрать набор универсальных правил) Вместе с тем, я понимаю, что КП может успешно продавать своему покупателю и нарушать при этом все правила.

    Поэтому, универсальная рекомендация:
    – Сделать партизанскую разведку, чтобы отстроить КП от конкурентов.
    – Регулярно улучшать и изменять КП по результатам продаж.

  • Favicon для сайта

    Favicon для сайта

    Фавикон — иконка для избранного. То самое лого сайта с вкладки браузера.
    Раньше это была иконка 16х16px, но сейчас для корректной работы на всех устройствах можно сделать до 27 изображений разного размера и формата.

    В сети много сложных и местами противоречивых инструкций про favicon и его поддержку разными устройствами. Я перебрал несколько десятков и вот мои выводы.

    Favicon используется:
    – В заголовке или на вкладке браузера
    – В поиске Google и Яндекс — около названия сайта будет показана иконка
    – В разных программах, которые работают с сайтами.
    – В качестве иконки на мобильнике, если пользователь сохранит сайт на рабочий стол

    Для полной поддержки нужен векторный логотип компании, из которого мы будем делать полный набор:
    – SVG-иконку, которая автоматически включает темную или светлую версию под тему оформления пользователя (а что, так можно было?).
    – PNG 512х512 и 192х192 без полей под Android.
    – PNG 512х512 и 180х180 с отступами от края под iOS.
    – PNG 32х32 и 16х16, запакованные как favicon.ico для совместимости со старыми девайсами.
    – JSON-файл manifest.webmanifest в корень сайта со ссылками на файлы иконок для мобилок и PWA.
    Полный гид по техническим подробностям от Злых Марсиан (обновлено в 2025 году).
    Инструкции такого размера ради одной иконки меня удручают. Выглядит как подарочный ребус для досуга дизайнера.

    Лайфхак: У моего блога ещё нет логотипа. Поэтому я решил взять в качестве иконки обычную эмодзи. Пусть будет 🤖

    Найденный сайт позволил выбрать эмодзи и сразу получить набор иконок всех нужных размеров. Не хватает только SVG-версии. Её нахожу на другом сайте по запросу robot emoji svg download. Обойдусь без тёмной версии, её создание выглядит для меня трудозатратно.
    В обоих случаях это одна и та же иконка из бесплатного набора, который выпустил Twitter под open source лицензией MIT — можно использовать в качестве фавиконки ничего не нарушая.

    Ещё полезные ссылки:
    – Генератор иконок из вашей картинки
    – Упаковщик favicon.ico
    – Инструкция как сделать SVG-иконку с темной и светлой версией

  • 🙌🙌🙌🙌  25+ документов для тех, кто в диджитал

    🙌🙌🙌🙌 25+ документов для тех, кто в диджитал


    В преддверии новой активности мы собрали в одну папку 29 Telegram-каналов известных профессионалов и попросили их авторов подготовить для вас документы, которые помогут:

    🔴Правильно писать запросы нейросетям;
    🔴Промпты для прокачки карьеры в IT;
    🔴20 игровых механик, которые повысят LTV вашего продукта;
    🔴Чек-лист SEO-требований к релизу нового сайта;
    🔴UX-аудит сайта своими руками;
    🔴и еще много много всего!

    ✔️ Я делюсь скриптом для автоматической настройки VDS.
    С ним вы научитесь использовать Ansible и примените все лучшие практики защиты вашего сервера от взлома.
    ➡️ Скачайте архив по ссылке или склонируйте репозиторий на GitHub.

    ❗️ Сохранив единожды папку «Документы для тех, кто в диджитал», вы сможете спокойно пройтись по всем каналам и скачать множество авторских документов, которые точно пригодятся в работе.

    Также они проводят розыгрыш с топовыми призами:
    🥇Главный приз — MacBook Air (M2)
    🥈2 место: Яндекс Станция Лайт 2
    🥉3 место: Наушники HUAWEI Freebuds 5i

    Как участвовать:

    1. Подпишись на папку: https://t.me/addlist/Qu1lhSIaUZVjZTFi
    2.
    Подтверди участие в боте

    До встречи 27 июля – дата подведения итогов!

  • Фуллстек парадокс

    Фуллстек парадокс

    В начале 2000-х в веб-разработке не было фронтэндов или бэкэндов.
    Была профессия вебмастер. Этот человек мог сделать сайт целиком. Он умел общаться с полиграфическим дизайнером про внешний вид сайта, верстать HTML таблицами, оптимизировать графику, писать java script. Стек был небольшой и было мало слоёв абстракции.
    Если было нужно что-то покруче, звали программиста и он писал CGI-скрипты на Perl, PHP или C.

    Прошло 25 лет. В этом году искал для клиента fullstack-разработчика. Вакансии такие на рынке есть. Например, одновременно с моей вакансией продвигали объявление от Теремка на такой же стек. На такую вакансию массово откликаются фронтэнд-разработчики. Почему так?

    В момент, когда фронт научился писать запросы к базе данных и создавать API-методы, он достиг своей полноты. В его мировоззрении всё жизненное пространство в этот момент освоено. Всё так, но для бэкэнд разработчика уровень фронтов на его территории — Intern или Junior.

    Современный бэкенд разработчик часто знает HTML, CSS и Java Script. Может так случиться, что был у него опыт разработки на React, но он не будет считать это значительным достижением. Хорошо, если в резюме укажет. Его территория упирается с одной стороны в серверное администрирование и облака, с другой находится уровень железа: производительность процессора, работа с памятью, операции чтения и записи на жесткий диск. Пляж фронтэндов находится на периферии его владений и занимает небольшой участок с выходом в море.

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

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

    Практические выводы:
    – Если вам нужен в команду разработчик с полным спектром знаний — ищите сеньора бэкендера, у которого был опыт работы на фронте. Вакансии Веб-разработчик, Программист или Backend-developer. Но делать фронт его руками очень дорого.
    – В команду нужно брать и фронтов и бэков. Бэки будут ворчать и не хотеть делать задачи фронтов, фронты не владеют всей картиной происходящего на бэке.
    – LLM уже сейчас помогает бэкендерам делать сносный фронтэнд. Скоро всё перемешается снова.

  • Лингва франка для программистов

    Лингва франка для программистов

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

    В популярных языках программирования сочетаются символы (скобки, операторы, знаки пунктуации) и ключевые слова на английском (if, then, function), а код пишется слева направо. Для многих это является существенным ограничением: нужно изучить английский алфавит, приспособиться к восприятию системы письма слева направо, научиться вводить символы латинского алфавита на клавиатуре и изучить значение английских слов.

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

    Значит, что язык программирования можно было бы перевести на ваш родной язык. Это сразу бы сделало освоение программирования доступным для миллиардов человек. Подкованный читатель наверняка сразу вспомнит 1С с его русскоязычным синтаксисом. Также есть десятки языков программирования на арабском, китайском, японском, фарси и санскрите. Посмотрите на этот список.

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

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

    В эру многополярного мира и искуственного интеллекта, английский может потерять позицию доминирующего языка для международных отношений. И станет для программистов таким же узкопрофессиональным языком, как латынь для медиков.

    Как думаете, что произойдёт быстрее: исчезнет профессия программиста или потребность изучать английский?