Разрабатываю сайты, которые приносят заявки

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

  • Цена — до старта
  • Лендинг — 10–14 дней
  • Работаю по договору
  • Месяц поддержки включён
Листайте
ЛендингиСайты к мероприятиямКорпоративные сайтыВеб-приложения3D и анимацияЛендингиСайты к мероприятиямКорпоративные сайтыВеб-приложения3D и анимация
01 — Смысл определяет форму

Красивый сайтбез заявок —это просто картинка.

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

01

Структура

Что и в каком порядке отвечает на вопросы посетителя

02

Форма

Дизайн, который усиливает ответ, а не украшает его

03

Данные

После запуска смотрим на цифры и правим по ним

02 — Услуги

Что я
делаю

Полный цикл: исследование, прототип, дизайн, код, запуск и поддержка. Один ответственный на всём пути.

01Лендингот 63 000 ₽10–14 дней02Сайт к мероприятиюот 84 000 ₽7–14 дней03Корпоративный сайтот 168 000 ₽3–5 недель04Интернет-магазинот 266 000 ₽5–8 недель05Редизайн сайтаот 98 000 ₽2–4 недели06Промо и 3Dот 210 000 ₽3–6 недель07Технология под идеюпо договорённостиот 6 недель08Поддержка сайтаот 10 000 ₽/меспо подписке

Сайт к мероприятию

от 84 000 ₽ · 7–14 дней

Страница конференции, форума, концерта или открытия. Задача одна — собрать регистрации участников до даты события. Программа, спикеры, площадка с картой, форма записи с подтверждением и выгрузкой списка. Дедлайн жёсткий, поэтому такие проекты я беру в работу вне очереди и запускаю за 7–14 дней.

Регистрация

Форма с подтверждением и выгрузкой списка участников

Программа

Расписание, спикеры, площадка с картой проезда

Дедлайн

Запуск к дате события, вне общей очереди

03 — Работы

Что уже
сделано

Не витрина скриншотов, а разбор: задача, решение и то, чего заказчик никогда не увидит — но за что платит.

Костя, пора пригнатьИмпорт автомобилей из Кореи, Японии, Китая и ОАЭ

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

38 459
карточек-двойников убрано из каталога
34 КБ
весит главная: открывается за секунду и на слабом интернете
8 попыток
доставки — заявка не теряется, даже если Telegram лёг

Что сделано

  • Каталог с подбором по стране, бюджету и сроку поставки
  • Раздел «Как мы работаем» — шаг за шагом, от аукциона до постановки на учёт
  • Гарантии, сделки и отзывы отдельными разделами: это читают перед обращением
  • Заявка на подбор в три поля вместо анкеты

Чего не видно

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

Сайт достался после взлома

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

Заявка доходит, даже если что-то упало

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

Каталог нельзя уронить одной ссылкой

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

Четверть каталога была призраками

Площадка-источник отдаёт одну и ту же машину дважды — под номером объявления и под внутренним номером автомобиля, — а прежний сбор данных послушно заводил две карточки. Каждая четвёртая машина в каталоге двоилась. Убрал 38 459 лишних карточек, предварительно сохранив их копию, и закрыл саму причину тремя проверками при записи. Сейчас в каталоге 94 647 машин и 3 дубля.

Проданные машины уходят с витрины сами

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

Ролики больше не следят за посетителем

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

Открыть poraprignat.ru
КОНТУРЭлектромонтаж в Кирове

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

259 КБ
весит главная целиком — разметка и весь код
2 мс
столько сервер тратит на сборку ответа
0
обращений к чужим серверам: ни шрифтов, ни счётчиков

Что сделано

  • Калькулятор сметы: квартира, дом или офис — расчёт до выезда мастера
  • Разделы «Цены», «Объекты» и база знаний: чтобы читали, а не звонили с одним и тем же вопросом
  • Заявка на замер с согласием на обработку данных прямо в форме
  • Мастер назван по имени, с городом: в этой нише доверяют человеку, а не компании

Чего не видно

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

Половина сайта была невидимой

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

Заявка не исчезает в тишине

Заявка уходит двумя путями подряд: сначала в служебного бота, а если он не ответил за четыре секунды — напрямую в Telegram. Если не сработал ни один путь, посетитель видит честное «не отправилось, позвоните», а не поддельное «спасибо»: текст заявки при этом целиком записывается в служебный журнал на сервере, откуда его можно достать руками. Проверил именно поломанный сценарий — сайт ответил ошибкой и сохранил заявку, а не сделал вид, что всё хорошо.

Робот не заполнит форму, человек не заметит защиты

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

На телефоне страница не уезжает вбок

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

Текст читается и в светлой, и в тёмной теме

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

Страница не ждёт чужих серверов

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

Открыть master-electric.online
ovchinnikow.comЭтот сайт

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

176 КБ
вес страницы вместо 1947
27
адресов, все отвечают
0
потерянных заявок после переделки

Что сделано

  • Две языковые версии на одном домене, восемь страниц услуг под запросы поиска
  • Открытый калькулятор сметы — расчёт уезжает вместе с заявкой
  • Заявки приходят в Telegram за секунды, с адресом и браузером отправителя
  • Ежедневные резервные копии с проверкой восстановления

Чего не видно

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

Заявка ложится на диск до отправки

Раньше сообщение уходило в Telegram напрямую. Одна заявка с текстом, который Telegram не принял, — и она пропадала молча. Так потерялось девять. Теперь заявка сначала пишется в журнал на диске и только потом отправляется, а неудачные попытки повторяются по расписанию.

Страница похудела в одиннадцать раз

Ролик первого экрана весил 3 МБ, и внутри сидела звуковая дорожка на 256 кбит/с — при том что видео на сайте всегда без звука. Перекодировал в два формата без звука: 1947 КБ стали 176 КБ до подгрузки ролика.

Браузер не кэшировал вообще ничего

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

Цены перестали расходиться

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

Форма отличает человека от робота

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

Разберу и ваш сайт

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

04 — Процесс

Пять шагов
без тумана

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

01

Бриф и цели

30 минут созвона. Разбираем задачу, аудиторию, конкурентов. Выхожу со сметой и планом.

1 день
На руках
Бриф и критерий приёмки
Цель
Один измеримый результат
Аудитория
Кто и в какой момент
Ограничения
Сроки, доступы, стек
Готово, когда
Проверяемый критерий
02

Структура

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

2–4 дня
На руках
Карта страниц и прототип
Экраны
Порядок и переходы
Блоки
Что отвечает на какой вопрос
Состояния
Пусто, загрузка, ошибка
Проверка
Сценарий проходится целиком
03

Дизайн

Концепт первого экрана, потом весь макет. Анимации показываю прототипом, а не словами.

5–10 дней
На руках
Макет и живой прототип
Концепт
Первый экран до остального
Макет
Все страницы и состояния
Адаптив
Телефон, планшет, десктоп
Движение
Кликабельный прототип
04

Разработка

Код, анимации, адаптив, скорость 90+ в PageSpeed, подключение CRM и аналитики.

5–14 дней
На руках
Рабочая сборка на превью-ссылке
Интерфейс
Компоненты и состояния
Данные
Формы, интеграции, CRM
Скорость
90+ в PageSpeed
Проверки
Типы, доступность, сценарии
05

Запуск

Домен, хостинг, метрики, инструкция. Месяц поддержки в подарок.

1–2 дня
На руках
Продакшен и план развития
Сервер
Домен, SSL, окружения
Метаданные
Title, OG, микроразметка
Аналитика
События, цели, отчёты
Рост
SEO, скорость, итерации

Первый шаг — 30 минут

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

05 — Отличия

Чем отличаюсь
от агентства

Без посредников между вами и тем, кто делает работу. Отсюда и сроки, и цена, и то, что правки не упираются в регламент.

Кто отвечает за результат
АгентствоАккаунт-менеджер
ЯЯ сам, без посредников
Цена известна
АгентствоПосле двух встреч
ЯДо старта, есть калькулятор
Цена лендинга
Агентство150–300 тыс ₽
Яот 63 000 ₽
Срок лендинга
Агентство1,5–3 месяца
Я10–14 дней
Правки в дизайне
АгентствоПо регламенту
ЯПока не понравится
Кто пишет код
АгентствоПодрядчик подрядчика
ЯЯ
Что после запуска
АгентствоНовый договор
ЯМесяц поддержки включён
06 — Смета

Прикиньте сами,
сколько выйдет

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

Ориентировочно
63 000 ₽
срок ≈ 10 рабочих дней
Лендинг
Авторский
Обычный график
Зафиксировать смету →

Вилка ±20%. Точную цену называю после 30-минутного брифа — бесплатно и без обязательств.

07 — Вопросы

Ответы до
первого звонка

Если вопроса нет в списке — напишите в Telegram, отвечу по существу и предложу следующий шаг.

01Сколько стоит и от чего зависит цена?

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

02Как проходит оплата?

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

03Вы один. Что если заболеете или пропадёте?

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

04Можно прийти без структуры и готовых текстов?

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

05На чём вы делаете сайты?

Next.js и TypeScript, вёрстка на Tailwind, размещение на своём сервере. Не конструктор: сайт не привязан к чужой подписке, его можно развивать и переносить. Если задача проще — скажу прямо и предложу решение дешевле.

06Почему дешевле агентства — где подвох?

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

07Чем вы лучше фрилансера за 20 тысяч?

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

08Что происходит после запуска?

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

09Кому принадлежат права на результат?

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

10Что если результат не понравится?

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

08 — Контакт

Расскажите
о задаче

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

  1. 01Отвечаю в течение дня, обычно быстрее
  2. 02Созвон 30 минут: вопросы и разбор
  3. 03У вас смета и план — даже если дальше не со мной

Закажете сегодня — сайт готов к14 октября

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