Разработчик WordPress-тем и плагинов Бен Джиллбэнкс придумал альтернативу плагину Jetpack с акцентом на скорости, удобстве и приватности. Toolbelt – новый легковесный плагин, который предлагает функционал, часто используемый на WordPress-сайтах. В настоящий момент доступны модули, предлагающие такие возможности, как «хлебные крошки», нативная браузерная «ленивая загрузка», произвольный тип данных Portfolio, связанные посты с изображениями, адаптивные видео, статичный шаринг в соцсетях и т.д.
Бен владеет Pro Theme Design, магазином коммерческих тем WordPress; также на его счету многочисленные проданные темы на WordPress.com. Ему нравится идея Jetpack, и все его коммерческие темы поддерживают этот плагин. Однако желание создавать более эффективные и производительные сайты привело его к выпуску плагина под названием Toolbelt. Бен работает над новой бесплатной темой Jarvis, которая будет выпущена на WordPress.org с полной совместимостью с Toolbelt.
«Я хотел создать что-то быстрое, приватное и доступное, потому и стал трудиться над новой темой. Меня вдохновил на это Джек Ленокс из Susty (и его речь на WordCamp Europe), потому я пожелал сделать что-то более устойчивое. При тестировании моей новой темы на личном сайте я выяснил, что Jetpack замедляет его. В итоге я вынес все возможности, которые планировал использовать, в оптимизированный плагин».
Toolbelt в данный момент включает в себя более десятка модулей, предлагаемых в формате, аналогичном Jetpack, однако с сильно урезанным интерфейсом управления в панели администратора. Все модули по умолчанию отключены; пользователи могут включать только те из них, которые им требуются.
Страница настроек содержит столбец, который прозрачно отображает скорость работы страницы для нескольких модулей. Высокая производительность – одна из главных целей плагина.
«Я тестировал свою тему на dev-сервере, и у нее была оценка 99 или 100 – но как только я переносил тему на свой личный сайт, оценка падала», — объяснил Бен. – «Мне потребовалось некоторое время, чтобы понять, что проблема заключалась в Jetpack. Как только я отключил Jetpack, оценка выросла снова до 99 или 100. Теперь всякий раз, когда я добавляю функцию, я тестирую ее на сайте, чтобы убедиться, что производительность осталась прежней».
Хотя Toolbelt позаимствовал часть кода из Jetpack и Machete, в нем были сделаны и некоторые улучшения, связанные с загрузкой кода для модулей:
- Не используется jQuery или любой другой javascript фреймворк. Весь javascript – «ванильный» и минифицированный.
- Миницифированы все ресурсы (JS/CSS).
- Все ресурсы загружаются инлайн. Они уже являются небольшими, и загрузка их напрямую на страницу означает, что запросы к серверу отсутствуют.
- Ресурсы загружаются только тогда, когда они требуются. JS- и CSS- код загружается только для активированных модулей.
- Опции отсутствуют. Есть только одна опция в базе данных, и это массив, который хранит информацию о том, какие модули активны.
- Используется минимально возможный код. Минимум Javascript и PHP. Меньше кода – больше скорости и меньше багов.
Подход Toolbelt к приватности: никаких звонков, никакого слежения за пользователями
Приватность – один из наиболее важных аспектов плагина для Бена, который является британцем и подпадает под GDPR и законодательство Европы по cookie. Toolbelt не требует ввода телефонного номера, не передает данные третьим лицам, не использует стандартный JavaScript-код для шаринга в соцсетях. Также плагин не отслеживает использование и не добавляет какие-либо комментарии к HTML-коду сайта.
«Одним из минусов Jetpack является то, что он связан с серверами wordpress.com, включая размещение изображений и контента», — отметил Бен. – «Такие возможности, как связанные записи, требуют синхронизации контента поста с серверами WP, чтобы записи можно было искать и фильтровать».
Подход к приватности в Toolbelt способен ограничить Бена в применении некоторых функций, зависящих от сторонних серверов. К примеру, статистика посещений, мониторинг простоя, CDN изображений – реализация всего этого может оказаться под вопросом.
«Я не уверен, добавлю ли я эти функции или заключу партнерство со сторонними приватными сервисами», — рассказал Бен. – «Да, я хочу добавить статистику, поэтому я надеюсь, что найду кого-то, с кем можно поработать».
Toolbelt – плагин, вдохновленный Jetpack, однако Бен заявил, что не планирует перекраивать все его функции. Он начнет с самых простых опций и затем сосредоточится на тех, которые планирует использовать. Он также не планирует его монетизировать в ближайшее время.
«Возможно, я добавлю премиум-функции в будущем, но я не буду взимать плату за то, что сейчас является бесплатным», — отметил Бен. – «Сейчас я просто буду постепенно добавлять новые модули, которые мне кажутся полезными».
Бен работает над улучшением панели согласия со сбором cookie в Toolbelt. Он хочет придумать метод с опциями «Разрешить» и «Отклонить», чтобы отслеживание включалось только тогда, когда пользователь щелкнул по кнопке «Разрешить». Это поможет тем, кто хочет жестко следовать всем рекомендациям GDPR. Текущая реализация ведет на страницу с политикой конфиденциальности сайта, если пользователь задал ее в настройках сайта.
В Toolbelt нет настроек, кроме списка модулей, активных на сайте. Бен создал набор хуков и фильтров, которые позволяют разработчикам настраивать опции для клиентов. Вся документация приведена на GitHub.