Heretic

Heretic – фреймворк, который позволяет создавать быстрые, современные сайты, сочетающие в себе подходы SSR и SPA.

Фреймворк основан на Marko, языке для создания динамических, реактивных пользовательских интерфейсов – идельном симбиозе HTML и JavaScript. Также под капотом: Fastify, Bulma, интернационализация «из коробки», и многое другое.

Существует точка зрения, согласно которой каждый разработчик должен написать свою собственную систему управления контентом :) Что я и делал – много раз, начиная с 2002 года, когда я начал программировать на Perl, и продолжая использовать этот удивительный язык программирования в течение многих лет (целиком и полностью пропустив эру PHP). Сосредоточившись на пользовательском опыте и производительности, я сделал множество коммерческих проектов на основе Taracot, моей первой CMS. Затем, в начале 2010 года, я начал работать с JavaScript; этот язык программирования до сих пор остается предпочтительным для меня, из-за его исключительной выразительности и гибкости. Я разработал несколько версий CMS ZOIA, вторая версия которой была основана на React.

В современном мире существует несколько стандартов де-факто, таких, как React и Vue, которые однако имеют ряд недостатков. Сложность реализации быстрых и простых проектов с использованием SSR-подхода с нуля, а также необходимость изучения специального синтаксиса, такого, как JSX, приводят к появлению все новых и новых фреймворков, основанных на этих фреймворках. Замкнутый круг.

Синтаксис, используемый Marko, на первый взгляд ничем не отличается от HTML, но, при необходимости, предоставляет массу возможностей для создания технически сложных проектов. Таким образом, для того, чтобы начать использовать Marko, достаточно базовых знаний о верстке HTML.

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

Цель Heretic – дать возможность разработчику сосредоточиться на оптимизации и скорости. Вы сами решаете, что будет входить в пакеты, а SPA-подход обеспечивает максимальную скорость взаимодействия для конечного пользователя. В то же время, важным аспектом является поддержка SEO, обеспечиваемая SSR.

Heretic – это не просто система управления контентом, в ней нет привычного визуального редактора страниц; он позволяет разработчику создавать и контролировать каждый аспект сайта, создавать модули, страницы, точки API и т. д. в зависимости от требований и задач проекта.

Следующие возможности предоставляются «из коробки»:

  • Открытый исходный код
    Heretic имеет открытый исходный код и основан на технологиях, библиотеках и фреймворках с открытым исходным кодом; фреймворк распростраянется под лицензией MIT. Это означает, что вы можете свободно использовать его как в открытых, так и в коммерческих проектах, а также модифицировать исходный код в соответствии с вашими потребностями. Marko, Bulma и Fastify – проекты, на которых основан Heretic – хорошо протестированы и широко используются в продакшене. Heretic использует MongoDB в качестве движка базы данных, Redis – в качестве вспомогательного инструмента кэширования, однако оба компонента являются опциональными, и вы можете отключить эту функциональность, если она не нужна для конкретного проекта.
  • Рендеринг на стороне сервера (SSR)
    Heretic предварительно формирует содержимое страницы на стороне сервера, а затем выполняет так называемую «регидрацию»: активирует интерактивные элементы браузера на стороне клиента. Это имеет смысл, поскольку таким образом поисковые системы могут корректно кэшировать содержимое страницы. В то же время нет необходимости обновлять страницу целиком во время перехода по внутренним ссылкам; с сервера запрашиваются только нужные фрагменты. Данный подход повышает скорость рендеринга и не вынуждает пользователя ждать загрузки контента.
  • Компоненты на Marko
    Фреймворк содержит большое число компонентов, которые позволяют решать задачи, связанные с разработкой модулей. Доступные компоненты: панель администратора, конструктор форм, динамическая таблица, маршрутизатор, WYSIWYG-редактор, календарь, модальный диалог, спиннер загрузки и многое другое.
  • Поддержка мультиязычности
    Вы можете использовать встроенную систему интернационализации, которая поддерживает переменные и плюрализацию. Имеется возможность один или несколько языков. Heretic уже переведен на английский, русский и немецкий, но можно легко добавить и новые языки.
  • Система авторизации
    В Heretic встроена система аутентификации и авторизации. Вы можете управлять пользователями через административную панель, включать или отключать доступ на сайт и регистрацию, определять политику паролей, разрешать пользователям восстанавливать пароли по электронной почте. Есть возможность включить защиту с помощью встроенной системы captcha и гибко ограничивать количество запросов. Поддерживаются провайдеры OAuth2 для входа и регистрации.
  • Модульность
    В директории site содержится весь исходный код и данные вашего сайта. Существует также несколько базовых модулей, которые можно переопределить, скопировав их в директорию сайта. Это означает, что вы получапете максимальную возможность кастомизации, у вас есть полный контроль над каждой необходимой функцией или модулем.