Вчера вышел EmDash 1.0. Многие не заметили, а зря: для веб-разработки последствия будут серьёзными. Это стабильная, бесплатная CMS с открытым кодом под лицензией MIT, и выпустила её Cloudflare. Авторы описывают замысел прямо: взять то, на чём вырос WordPress (расширяемость, удобную админку, экосистему плагинов), и собрать это заново на serverless-основе со строгой типизацией.
Почему это важно
WordPress работает на 40% с лишним всех сайтов мира. Экосистема огромная, технология старая. PHP-монолит, запрос в базу на каждый чих, плагины с полным доступом к файлам и базе данных. Отсюда главная боль: безопасность. Сайты на WordPress чаще всего взламывают через плагины, ядро тут почти ни при чём. Хватает одного заброшенного плагина с дырой.
EmDash решает это архитектурой. Это full-stack CMS на TypeScript поверх Astro. Плагины из реестра запускаются в изолированных воркерах и получают ровно те права, что им выдали при установке. Нет права на почту, значит, плагин не отправит письмо. Нет права на запись, значит, не тронет ни одной страницы. Реестр при этом проверяет подписи релизов. Настройками такую защиту поверх WordPress не собрать, здесь другая модель угроз.
Скорость, и почему она стала критичной
Страницы собираются на серверах Cloudflare рядом с посетителем, данные берутся из кэша, так что база не дёргается на каждый просмотр. Наш сайт nesmachny.ru после переезда отдаёт прогретую страницу за 60–100 мс. На WordPress та же страница уходила за 150 мс, и это с кэшем nginx. Без кэша выходило от 0,4 до 3,5 секунды.
Раньше за миллисекунды боролись ради поведенческих метрик и позиций в Google. Теперь у сайта появился новый читатель: ИИ-агент. У агента есть тайм-аут. Собирая ответ, он обходит десятки источников, и медленный сайт ждать не станет: пропустит и процитирует конкурента. Скорость отдачи превращается в пропуск в ответы нейросетей.
Гонка за скорость уже идёт. EmDash отвечает на неё устройством самой платформы, а не оптимизациями поверх.
SEO и ИИ
Серверный рендеринг, предсказуемая семантическая разметка, мгновенная отдача. Ровно это нужно и поисковым роботам, и языковым моделям, и в EmDash всё это работает из коробки, без плагинов-надстроек. На nesmachny.ru мобильный Lighthouse после переезда вырос на всех ключевых страницах: главная с 81 до 94, блог с 92 до 95, страница статьи с 89 до 100.
Второй наш сайт на EmDash, svetstylist.com, получил первого посетителя из ChatGPT через 17 дней после запуска. Домен был новый, без единой внешней ссылки.
Что мы получили, уйдя с WordPress
nesmachny.ru жил на двух приложениях: WordPress в роли CMS и Next.js в роли сайта. Оба крутились на маленьком сервере с одним ядром и 2 ГБ памяти. Зависал PHP-FPM, и вместе с ним ложилась админка. Спам-боты заваливали комментариями адрес CMS, который вообще не должен был быть публичным. Плагины требовали обновлений, и каждое обновление было лотереей.
Что изменилось после переезда:
- Одно приложение вместо двух. Сайт и админка живут в одном воркере, деплой тоже один.
- Позиции в поиске не пострадали. Все адреса сохранились. Мы сверили скриптом 123 страницы со старым сайтом: заголовки, описания, canonical, hreflang и разметка совпали на 122. Единственное отличие внесли сами, намеренно.
- Заявки больше не теряются. Формы пишут их сразу в CRM внутри CMS и параллельно в наш сборщик лидов HookHub. В каждой рассылке есть подписанная ссылка отписки, как того требует GDPR.
- Контентом управляет ИИ-ассистент. MCP-сервер встроен в EmDash. Для WordPress ради того же приходилось ставить отдельный адаптер и открывать доступ по паролям приложений.
Мы перешли
Наше агентство перешло на EmDash: все новые клиентские сайты делаем на нём.
Из чего состоит такой клиентский сайт и во что обходится, мы подробно разобрали в статье «Появилась ли наконец настоящая альтернатива WordPress?».
Для клиентов главное изменение в деньгах: отдельный счёт за хостинг фактически исчез. EmDash работает на Cloudflare Workers, минимальный платный тариф стоит 5 долларов в месяц. Для сайта со средней посещаемостью это и есть вся инфраструктура.
Там же решается почта на своём домене. Входящие можно пересылать на существующий ящик или разбирать прямо в воркере: принимать заявки и отвечать с адреса на своём домене. Получается замкнутая система. Быстро разворачивается, дёшево обходится и надёжно работает.
Одна оговорка для российских проектов. Из России Cloudflare открывается с перебоями, поэтому сайты с российской аудиторией мы ставим на VPS в России. EmDash спокойно работает и на обычном сервере с Node.js и SQLite.
Так устроен royalridespb.ru, сайт аренды автомобилей с водителем в Петербурге. Старый сайт 2017 года был даже не на WordPress, а на Laravel, и перенесли мы его целиком: 36 автомобилей с фотогалереями, три языка (русский, английский, французский). Сервер Selectel в Петербурге собирает страницу за 17 мс. PageSpeed даёт 100 баллов на компьютере и 90 на мобильных, и это вместе со счётчиком Яндекс Метрики.
Архитектура
Разделения на бэкенд и фронтенд больше нет, EmDash собирает всё в одном приложении. Меньше движущихся частей, меньше точек отказа, мониторинг сводится к одному контуру вместо нескольких.
Чем опасна связка, мы проверили на себе. На одном проекте сайт и CMS общались по токену. Токен истёк, и шесть недель заявки молча не доходили до CRM, а форма всё это время бодро отвечала посетителю «спасибо». В одном приложении такому стыку просто неоткуда взяться.
Три живых примера: сайт, на котором вы читаете эту новость, nesmachny.ru, сайт стилиста Светы svetstylist.com и royalridespb.ru.



