Heretic is a framework which allows you to build a blazing fast and modern website which combines both SSR and SPA approaches.
It's based on Marko, a language for building dynamic and reactive user interfaces - it's as if HTML and JS had a perfect baby that grew up to be awesome. Also under the hood: Fastify, Bulma, internationalization out-of-the-box and much more.
In the modern world, there are several standards, such as React and Vue, which have a number of disadvantages. The difficulty of implementing quick and simple projects using the SSR approach from scratch, as well as the need to learn special syntax such as JSX, has led to the emergence of new frameworks based on frameworks.
The syntax used by Marko does not differ at all from HTML, but, if desired, gives a lot of possibilities in order to create technically complex projects. Thus, in order to use Marko, a basic knowledge of HTML layout is sufficient.
Based on this, the name used by the project appeared. Heretic is a person holding an opinion at odds with what is generally accepted. So why not to give a try?
The goal is to focus on optimization and speed. You decide what will be included in the bundles, and the SPA approach provides maximum speed. At the same time, an important aspect is the support of SEO.
Heretic is not just another content management system, it doesn't have a fancy page what-you-see-is-what-you-get page editor, but it lets the developer to create and to control every aspect of a website by creating modules, pages, API endpoints etc. depending on the requirements.
The following features are provided out-of-the-box:
Heretic is open source and is based on the open source technologies, libraries and frameworks, licensed under MIT license. This means that you are free to use it in both open source and commercial projects and modify the source code according to you needs. Marko, Bulma and Fastify – projects on which Heretic is based – are well tested and being widely used in production. Heretic uses MongoDB as a database engine and Redis as a caching helper, but both components are optional and you may disable this functionality when not needed.
Heretic pre-renders the page contents on the server side, then performs so called "rehydration", e.g. activating browser interactive elements. This is useful because the search systems will be able to cache the page contents correctly. At the same time, there is no need to reload the whole page while browsing, required chunks only will be loaded from server on demand. This improves the render speed and doesn't force the user to wait for the whole page to reload.
The framework contains a lot of components that allow you to solve a large number of tasks related to module development. Available components: admin panel, form builder, dynamic table, routing, WYSIWYG editor, calendar, modal dialog, load spinner and many more.
You may use the built-in internationalization system which has variables and plural support. One or many languages are supported, and Heretic is already translated to English, Russian and German, but it's easy to add new languages as well. In translation files you may use plurals and variables which makes the built-in system especially powerful.
Heretic included built-in authentication and authorization system. You can control users via the administration panel, turn on or off website sign in and sign up, define password policy, allow users to restore passwords by e-mail. There is an option to enable protection via built-in captcha and flexible rate limiting. OAuth2 providers are supported for both sign in and sign up.
The site directory contains the whole source code and assets of your site. There are also some core modules, which could be override by copying them to the site directory. This means that you only make changes there, and build your website afterward. You have a complete control of every feature or module you need.