прощай вордпресс (Рисунок www.wpbeginner.com)

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

Почему нас не устраивал вордпресс

  1. Вордпресс медленный. Особенно для наших постов с кучей картинок. У меня половина плагинов была направлена на кеширование, минификацию и прочее ускорение, но слабо помогало.
  2. Вордпресс уязвимый. Нас дважды пытались взломать. Мы случайно попали в список взлома каких-то хакеров, и они нас ломали. К счастью, оба раза мы в момент взлома были дома и смогли оперативно отреагировать. Но все равно пришлось восстанавливать последние правки. Да, вторая половина плагинов у меня на тему защиты :\
  3. В вордпрессе сложно приделать что-то свое. Нужно копаться в миллионе плагинов, которые в итоге все равно работают не так, как мне нужно. Все это написано на языке PHP, в котором нам сложно что-то толковое делать. Это бессмысленное копание нереально бесило.
  4. В вордпрессе сложно править сразу много постов, и невозможно делать это в офлайне. С нашим регулярным отсутствием интернета это было неудобно.

Что такое статическая генерация

Блоги типа нашего являются статическими. Мы пишем пост, и он не меняется в зависимости от условий пользователя. Поэтому достаточно один раз создать html страницу под этот пост и всем ее показывать. Вордпресс же перегенерирует все заново каждый раз, и из-за этого тормозит.

У нас тексты статей пишутся на Markdown, который в частности применяет и активно пропогандирует GitHub. Движок написан на Node.js + Jade, верстка на основе Twitter Bootstrap.

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

Итак, что же поменялось

Из видимого, немного переделан дизайн. Некоторые функции убрали

Из внутреннего:

  1. Легко вносить любые правки: виджеты, посты, дизайн. Можно легко менять сразу много постов с помощью скриптов.
  2. Все это можно делать оффлайн и тестировать оффлайн.
  3. Посты теперь пишутся на markdown, это проще и удобнее, чем html. Я знаю, что в вордпрессе тоже можно было включить маркдаун, но это была бы новая порция копания.
  4. Включена автогенерация некоторых штук, стало меньше ручной работы.
  5. Сайт будет грузиться быстрее. Особенно у постоянных читателей. Сейчас у нас продвинутое кеширование.
  6. Безопасность значительно повысилась, логин идет через GitHub и Bitbucket.
  7. Все изменения контроллируются системой контроля версий Git, в случае необходимости можно легко откатиться на предыдущую версию, удобно координировать работу нескольких авторов.
  8. Возможность включить бесплатный хостинг через Bitbucket (это в процессе реализации) или GitHub.

пишем блог оффлайн в автобусе

Неужели нет никаких минусов?

Минус в том, что это все нужно разворачивать на своем компьютере. Быстро залезть поправить с чужого компьютера не получится. Но нам такое и не актуально.

Лично для меня минус в том, что мой дешевый маленький медленный нетбучик тормозит, и перегенерация сайта в тестовой версии занимает секунд 20. У Сереги это занимает секунды, и конечно же ничего не тормозит. Но рано или поздно мы все оптимизируем :)

Почему мы не использовали готовый статический генератор

велосипед - это сила

Это пожалуй тема для отдельного поста. Если кратко, на GitHub существует много готовых статических генераторов с открытым кодом, большинство, кстати, написаны на Node JS тоже, но есть на всех скриптовых языках (типо Perl и PHP), на Go и даже на Java. Но они как правило ориентированы на создание очень топорных блогов, функционала недостаточно для такого сайта, как наш. К тому же у большинства нет толковой документации. Мы начали с попытки расширить другой движок, но быстро поняли, что легче написать свой.

Возможность использования нашей платформы другими пользователями

Нашу платформу можно использовать, но в ней нет никакой админ панели, пока что все действия происходят через консоль и текстовый редактор. От установки до написания постов. И пока что у нас много хардкода заточенного на наш сайт и мало возможностей по расширению без изменения исходного кода на Node JS. Возможно, мы когда-то сделаем из этого полноценную CMS, но не обещаем. Как-только мы сделаем нашу платформу более-менее пригодной для использования, мы напишем отдельный пост и дадим ссылку на инструкцию по установке и применению :)

Просьба к читателям

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