12k
All articles

Может ли EmDash полноценно заменить WordPress?

Может ли EmDash заменить WordPress? Сравните безопасность плагинов, хостинг, миграцию и компромиссы, чтобы понять, каким сайтам подойдёт переход.

OpenReplay Team
OpenReplay Team
Может ли EmDash полноценно заменить WordPress?

Уже сегодня EmDash может заменить WordPress на контентных сайтах со скромными потребностями в плагинах, если команда уверенно работает с Astro. Однако для сайтов, которые зависят от PHP-тем, конкретных плагинов WordPress или платных расширений, он пока не станет прямой заменой.

Каждый клиент, чей сайт на WordPress взломали через плагин, спрашивал, нет ли более безопасной альтернативы. Когда EmDash вышел в версии 1.0 со слоганом «духовный наследник WordPress», многие агентства снова задались этим вопросом.

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

Ключевые выводы

  • EmDash 1.0 — CMS на базе Astro под лицензией MIT. Cloudflare выпустила её 28 сентября 2026 года. Она работает на Cloudflare Workers или на любом сервере Node.js.
  • Изолированный (sandboxed) плагин EmDash изначально имеет доступ только к собственному приватному хранилищу. Доступ к контенту, медиафайлам, пользователям или сети он получает лишь после того, как объявит соответствующую потребность и администратор её одобрит.
  • На Cloudflare для изолированных плагинов нужны тариф Workers Paid и привязка Worker Loader. На Node.js они выполняются в дочернем процессе workerd, который ограничивает только реальное время выполнения (wall time).
  • Импортёр переносит контент WordPress из файла WXR или через плагин EmDash Exporter. PHP-темы и плагины не переносятся, их придётся создавать заново.

Что такое EmDash CMS?

EmDash — CMS с открытым исходным кодом на TypeScript, построенная на Astro. Она распространяется под лицензией MIT и работает на Cloudflare или на сервере Node.js. В анонсе EmDash 1.0 от Cloudflare она названа стабильной, бесплатной CMS с открытым исходным кодом, «готовой к работе на продакшен-сайте».

У каждой роли свой способ работы с системой. Разработчики пишут сайт на Astro. Редакторы работают в админ-панели EmDash. ИИ-агенты могут читать и изменять контент через API, CLI или встроенный сервер Model Context Protocol (MCP). Новый сайт создаётся командой:

npm create emdash@latest

По словам Cloudflare, компания перевела на EmDash собственный блог ещё в августе, до выхода версии 1.0.

Чем модель плагинов EmDash отличается от WordPress?

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

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

Реестр плагинов EmDash децентрализован. Он построен на AT Protocol: издатели подписывают записи о своих пакетах и релизах и хранят их в собственном аккаунте Atmosphere. Даже если каталог EmDash скроет публикацию в ходе модерации, плагин и история его релизов остаются у издателя.

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

Где размещать EmDash: на Cloudflare или на Node.js?

EmDash можно разместить на Cloudflare или на Node.js, но песочница в этих средах работает по-разному. Cloudflare стоит денег, зато применяет больше ограничений. Раннер для Node.js не требует дополнительных затрат, но ограничений у него меньше.

Cloudflare WorkersNode.js
ТребованияТариф Workers Paid, привязка worker_loaders с именем LOADER, экспорт PluginBridgeПакет workerd
База данных плагиновПривязка D1 DB, независимо от настроенного адаптера сайтаНастроенная база данных
Применяемые ограниченияПроцессорное время, подзапросы, реальное время выполненияТолько реальное время выполнения

Эти требования описаны в документации по песочнице плагинов. Без раннера EmDash пропускает все плагины, перечисленные в sandboxed: []. Просматривать реестр, который вы настроили сами, по-прежнему можно, но установка или обновление изолированного плагина завершится ошибкой SANDBOX_NOT_AVAILABLE. Остальная часть сайта продолжит работать.

На Node.js нужно установить адаптер Node и раннер песочницы, а затем указать раннер в конфигурации:

npm install @astrojs/node @emdash-cms/sandbox-workerd workerd
// astro.config.mjs
import { defineConfig } from "astro/config";
import node from "@astrojs/node";
import emdash from "emdash/astro";
import { sqlite } from "emdash/db";

export default defineConfig({
  output: "server",
  adapter: node({ mode: "standalone" }),
  integrations: [
    emdash({
      database: sqlite({ url: "file:./data/emdash.db" }),
      sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox",
    }),
  ],
});

Документация по возможностям плагинов подтверждает: раннер для Node.js применяет только 30-секундный лимит реального времени выполнения. Если на сайте заданы ограничения по процессору, памяти или подзапросам, раннер выводит в лог предупреждение, поскольку автономный workerd не может их применить. На Node.js плагин, расходующий слишком много процессорного времени, будет остановлен, только когда упрётся в лимит реального времени.

Как перенести сайт с WordPress на EmDash?

EmDash переносит контент, а не код. В документации по импорту контента описаны два способа импорта: файл WordPress eXtended RSS (WXR) или подключение к сайту, на котором установлен плагин EmDash Exporter. Отдельного источника импорта для WordPress.com нет, поэтому для таких сайтов также используется экспорт WXR или EmDash Exporter.

ЧтоСтатус
Записи, страницы, пользовательские типы записей, таксономии, многоразовые блоки, авторыИмпортируются через WXR
МедиафайлыИмпортируются, но WXR содержит только URL. Сайт на WordPress должен оставаться доступным, пока файлы копируются
Комментарии, меню, логотип, фавиконТолько через Exporter 1.2.0 или новее
PHP-темы и плагиныНе переносятся
Поля, принадлежащие плагинамИз WXR не копируются. Exporter может скопировать пользовательские метаданные и значения ACF в соответствующие поля

Руководство по миграции с WordPress предупреждает: экспортёр версии ниже 1.2.0 молча теряет комментарии, меню, логотип и фавикон. Импорт при этом завершается успешно и не сообщает ни о каких недостающих данных. Проверьте версию экспортёра перед началом работы. Что касается тем и плагинов, в README EmDash сказано, что портировать их помогают навыки агентов (agent skills). Но даже с такой помощью рассчитывайте на переделку с нуля.

В чём WordPress по-прежнему выигрывает?

У WordPress остаются четыре практических преимущества: гораздо более крупная экосистема тем и плагинов, поддержка почти у любого хостинга, привычность для редакторов и зрелый рынок платных плагинов. На момент запуска версии 1.0 Cloudflare сообщила, что реестр EmDash поддерживает только бесплатные плагины, а платные запланированы на будущее.

Второй пробел — хостинг. WordPress работает практически на любом PHP-хостинге. Для полноценной песочницы плагинов EmDash нужен либо платный тариф Cloudflare, либо собственный сервер Node.js.

Третья статья расходов связана с редакторами. Админ-панель EmDash для них в новинку, поэтому перевод клиента означает не только перенос контента, но и переобучение сотрудников. Если вы рассматриваете несколько альтернатив WordPress, сравнение 11ty и WordPress показывает, как эти компромиссы проявляются у решения, ориентированного на статическую генерацию.

Кому стоит попробовать EmDash сейчас, а кому лучше подождать

Пробуйте сейчас, если:

  • вы создаёте контентные сайты — блоги, документацию или маркетинговые страницы, — и ваша команда уже работает с Astro;
  • риски цепочки поставок плагинов действительно волнуют вас или ваших клиентов;
  • вам нужно, чтобы агенты работали с контентом через API, CLI или MCP-сервер.

Подождите, если:

  • сайт зависит от конкретного плагина WordPress, коммерческой темы или функциональности уровня WooCommerce;
  • вам нужны платные плагины из реестра;
  • вы ограничены дешёвым виртуальным PHP-хостингом.

Если вы развёртываете сайт на Cloudflare, обратите внимание на cf — новый CLI от Cloudflare, который вышел в открытую бету 28 сентября 2026 года. Он управляет конфигурацией и привязками Workers через файл cloudflare.config.ts, а проекты, настроенные через wrangler.jsonc, по-прежнему обслуживает Wrangler.

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

Часто задаваемые вопросы

Может ли EmDash импортировать сайт на WordPress только по его URL?

Нет. Без плагина EmDash Exporter по URL сайта EmDash может лишь обратиться к публичному REST API WordPress. Такая проверка позволяет подтвердить, что сайт работает на WordPress, и подсчитать его публичные записи, страницы и медиафайлы, но ничего импортировать не может. Для импорта загрузите файл экспорта WXR или установите EmDash Exporter на сайт WordPress и подключитесь с помощью пароля приложения WordPress — так можно получить и контент, который публичный REST API не отдаёт.

Что происходит с блоками Gutenberg и блоками плагинов при импорте в EmDash?

EmDash преобразует разметку Gutenberg в Portable Text и пропускает HTML классического редактора через тот же конвертер. Блоки, которые WordPress формирует на сервере, — например, «Последние записи» или многие блоки плагинов, — не хранят разметку в записи. Импортёр сохраняет каждый такой блок как HTML-блок, содержащий только исходный комментарий блока, который ничего не выводит на сайте, поэтому их нужно воссоздать или удалить. Многоразовые блоки становятся разделами (sections) EmDash.

Сохраняют ли черновики, запланированные и личные записи WordPress свой статус в EmDash?

Опубликованными остаются только опубликованные записи. Импортёр EmDash сопоставляет статус WordPress publish со статусом published, а статусы draft, pending, private, future, trash и неизвестные становятся черновиками. Поэтому запланированные и личные записи после импорта требуют ручной проверки. В руководстве по миграции EmDash также рекомендуется подсчитать записи по статусам и убедиться, что черновики скрыты от неавторизованных посетителей, прежде чем переключать DNS или отключать сайт на WordPress.

Какие базы данных и хранилища поддерживает EmDash?

EmDash использует Kysely для работы с SQL и S3 API для хранилища, поэтому для данных подходят SQLite, Cloudflare D1, Turso или libSQL и PostgreSQL, а для медиафайлов — Cloudflare R2, AWS S3, любой S3-совместимый сервис или локальная файловая система. На Cloudflare изолированные плагины всё равно читают и записывают данные через привязку D1 с именем DB, независимо от того, какой адаптер базы данных использует сам сайт.

DevTools for the frontend

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers.

Star on GitHub12k

We use cookies to improve your experience. By using our site, you accept cookies.