1

Как сварщик решил создать свою CMS

Предисловие

На территории интернета остались единицы которые не знают про копирование сайтов. Кто то слышал, кто то пользовался, с разной степенью успеха. А кто то работает и зарабатывает на этом. Остальные просто копируют чужой контент и надеются что их не забанят. Шутка, конечно, но в каждой шутке есть доля шутки.

Мой уровень владения копированием сайтов, это Ctrl+C, Ctrl+V, правка HTML, удаление аналитики, смена классов. То что валяется в коде, в какой то момент отправляется на хостинг. Если честно, мой уровень был на уровне "копирую код с StackOverflow и надеюсь что работает". Каждая правка пути к картинке — это как мини-квест. Сначала пробую "../images/logo.png", не работает. Пробую "../../images/logo.png", опять не работает. В итоге пишу абсолютный путь и надеюсь что хостинг не упадет от такой красоты.

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

Идея

Как то раз решил я помочь с копированием сайта для бизнеса. Простой лендинг на 5 страниц, думал дел на час. Скачал сайт через Save Page As, начал править HTML, менять пути к файлам, удалять скрипты аналитики, менять тексты... Два часа прошло, три часа, пять часов. Вечер уже, глаза слипаются, кофе уже не помогает, сайт всё еще не готов.

Ссылки битые, картинки не грузятся, CSS сломан. Шрифты не подключились, иконки превратились в квадратики, форма обратной связи отправляет данные в никуда. Я правлю классы с "btn-primary" на "my-button", потом на "custom-btn", потом вообще пишу inline стили, потому что уже нет сил искать где этот чертов CSS файл.

Каждая правка — это 5 минут. На 20 правках — уже час ушел. На 50 правках — уже три часа. На 100 правках — я уже забыл зачем вообще это делал и почему не стал водителем маршрутки.

Рутинная работа, которую никто не любит делать. Удаление аналитики — это отдельный квест. Google Analytics, Яндекс.Метрика, Hotjar, Crazy Egg — каждый сайт это набор шпионов. Я удаляю их один за другим, как будто играю в "найди и уничтожить". Иногда забываю какой-то скрипт, и потом получаю письмо от владельца оригинального сайта с вопросом "почему у меня в статистике вдруг появился трафик с твоего домена". Отвечаю что это не я, это мой кот прыгнул на клавиатуру. Не верят, но что поделать.

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

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

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

Создаю сервис. Ошибки и пинки кода

Решил делать сервис. PHP выбрал потому что он везде работает, даже на хостинге за 100 рублей. Нужен был простой парсер, AI для переписывания, и админка для управления. Звучит просто, если не знать что это займет 10 дней бессонных ночей.

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

HTTrack есть, но это 2005 год. SiteSucker для макоси, а я на винде. Octoparse стоит как крыло от Боинга. Решил делать через парсер.

Вечером сел за код. Первая строка — curl_init. Вторая — curl_setopt. Третья — curl_exec. Работает! Получил HTML. Открыл в браузере — пустая страница. Оказался сайт на React, контент грузится через JS. Мой curl видит только пустой div с id="root".

Ну ладно, headless браузер подключу. Puppeteer или Playwright? Выбрал Puppeteer — меньше проблем с установкой на Windows. Два часа установки Node.js, npm, зависимостей. Наконец-то работает.

Первоначальные действия

Идея была такова, парсер + AI переписывание + перевод на языки.

Утром настроил Puppeteer. Сайт открывается, контент грузится, HTML получен. Красота, думаю. Но картинок нет, CSS не скачан, JS не работает. Это не копия сайта, это его скелет.

Начал разбираться как скачивать ресурсы. Каждая картинка — это отдельный запрос. CSS файлы тоже. JS файлы тоже. И все они должны быть с правильными путями. Написал функцию для замены относительных путей на абсолютные. Работает... но медленно. Один сайт копируется 10 минут.

Тут же меня начали мучать муки совести. А что если сайт сложный, с авторизацией, с динамическим контентом. А что если это SPA на Angular, где всё в одном файле. А что если это Next.js с SSR.

Ладно, ограничимся лендингами и мини-сайтами до 10 страниц, это реалистично. SPA и сложные штуки оставим на потом, если вообще дойдем.

AI переписывание или как нейросеть меняла смысл

Подключил OpenAI API. Зарегистрировался, получил ключ, написал первую функцию. Отправил текст на переписывание. Получил результат — текст про "продажу квартир" превратился в "аренду домов". Пользователь бы не понял.

Начал экспериментировать с промптами. "Перепиши текст, сохрани смысл, измени структуру..." Работало через раз. То идеально, то вообще бред. Текст про "компьютеры" превратился в "ноутбуки". Про "программирование" в "веб-разработку". Смысл менялся, а я даже не замечал.

Пробовал GPT-3.5, потом GPT-4. GPT-4 лучше, но дороже. GPT-3.5 дешевле, но тупее. Баланс между качеством и ценой — это отдельная история. Каждая попытка — это деньги. Счет от OpenAI растет быстрее чем мои нервы.

В итоге ушел с OpenAI на GPTunnel. Там дешевле, и качество почти такое же. OpenAI работает идеально, но стоит дорого. GPTunnel работает нормально, стоит разумно. Для моего сервиса это идеально.

Ночь промпт-инжиниринга

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

Контекст сохраняется, качество лучше. Но это не всё. Нужно еще учитывать длину текста. Слишком короткий — AI переписывает слишком агрессивно. Слишком длинный — теряет контекст. Оптимально — 300-500 символов за раз.

В 4 утра нашел идеальный промпт. Работает идеально. Текст сохраняет смысл, меняется структура, добавляются синонимы. Пошел спать в 5, проснулся в 9. Голова болит, кофе не помогает, но результат есть.

Перевод на 15 языков или когда я перепутал коды

Google Translate API подключил, работает идеально. Английский, немецкий, французский — всё переводится как надо. Но цена! За 1000 страниц — копейки превращаются в тысячи. Пришлось искать альтернативы.

LibreTranslate? Бесплатно, но качество хромает. DeepL? Качество супер, но цена еще выше. Остановился на гибридном решении — Google для популярных языков, альтернативы для экзотики.

Самое смешное — перевод работал, но тестеры жаловались. "Почему текст перевелся на испанский, когда я просил португальский?" Оказалось, я перепутал коды языков. pt-BR и pt-PT — это разные вещи, кто бы мог подумать. Бразильский португальский и европейский португальский — это как русский и украинский. Схожие, но разные.

Ночь исправления языков

Две ночи исправления, проверка каждого языка вручную. Теперь знаю, что es-ES и es-MX тоже разные. Испанский из Испании и мексиканский испанский — это опять же разные вещи. zh-CN и zh-TW — упрощенный и традиционный китайский.

Голова уже не хочет спать, она просто хочет умереть, но руки продолжают печатать. Проверяю каждый язык, каждый код, каждый перевод. В 3 утра нашел ошибку — ar-SA и ar-EG тоже разные. Арабский из Саудовской Аравии и египетский арабский. Кто бы мог подумать, что арабский тоже имеет диалекты.

В 5 утра всё исправлено. Пошел спать. Проснулся в 10. Голова не болит, она просто отсутствует.

Автономная админка или как я генерировал файлы

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

Первая идея — генерировать PHP-файлы. Но это небезопасно, кто то захакает. Вторая идея — SQLite база в каждом сайте. Работало, но медленно. Каждое обращение к базе — это открытие файла, чтение, закрытие. На 100 обращений — секунда задержки. Третья идея — JSON-файлы с конфигурацией. Победила.

JSON быстрее, проще, надежнее. Но как его редактировать? Нужен интерфейс. Нужна админка. Нужна форма для редактирования текстов. Нужна форма для замены картинок. Нужна форма для настройки редиректов.

Конструктор в одном файле

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

Пришлось придумать систему, где пользователь получает "конструктор" в одном файле. Один PHP-файл, который содержит всё — админку, редактор, сохранение. Загрузил на хостинг, работает. Но есть проблема — безопасность. Любой может открыть админку и всё поломать.

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

Тестирование

Показал результат. Один сказал "классно", другой "что это за бред", третий вообще не понял что я ему показываю. Типичный день разработчика.

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

Вечером первый попросил скопировать реальный сайт. Я скопировал, он посмотрел, сказал "нормально". Это был первый реальный кейс. Не клиент, но близко.

Финал первой части

Сервис работает. Не идеально, но работает. Пользователи могут копировать лендинги, мини-сайты до 10 страниц. AI переписывает тексты, переводит на 15 языков. Автономная админка позволяет управлять без связи с моим сервером.

Но это только начало. Впереди еще много ночей, когда голова хочет спать, а руки и неуемная задница говорят работать. Впереди баги, ошибки, недовольные пользователи, счета от OpenAI, бессонные ночи.

Но главное — оно работает. Люди копируют сайты за 2 минуты вместо 5 часов. И это, пожалуй, главное.

Продолжение следует...

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества