Heretic
A framework for building blazing-fast modern websites that combine SSR and SPA in one stack.
Heretic is built on Marko — a language for dynamic, reactive UIs that reads as if HTML and JavaScript had a perfect baby. Under the hood: Fastify, Bulma, and a built-in i18n system. The goal is honest performance and a real developer experience, not a marketing scoreboard.
There is a saying: every developer should write their own content management system. So I did, many times — starting in 2002 with Perl-based attempts, growing into Taracot (my first commercial CMS), and later ZOIA, a React-based rewrite.
Modern stacks like React and Vue are powerful but make simple SSR setups expensive and force you to learn meta-frameworks layered on top of frameworks. Marko keeps the syntax close to HTML and lets you go deep when you need to. That is the point of view that named the project.
Heretic is not a CMS with a glossy WYSIWYG editor — it gives developers full control over modules, pages, API endpoints, and how the bundle is composed. SPA speed for users, SSR depth for search engines, and no ceremony in between.
Open source from end to end
MIT licensed, built on MIT-licensed Marko, Bulma and Fastify. MongoDB and Redis are supported but optional — turn them off in projects that do not need them.
Server-side rendering with rehydration
Pages render fully on the server, then activate interactive components in the browser. Search engines see real markup; users skip the white blank screen.
Marko component library
Admin panel, form builder, dynamic table, router, WYSIWYG editor, calendar, modal dialog, load spinner — the practical pieces that show up in every CMS.
Multilanguage out of the box
Built-in i18n with variables and plurals, English, Russian and German included, easy to add new languages without rewiring the build.
Authentication and authorization
User management via the admin panel, sign-in / sign-up policies, password recovery, captcha, flexible rate limits, and OAuth2 providers — all in the box.
Modular by design
The site/ directory holds your code and assets. Core modules can be overridden by copying them in. You stay in control of every feature, every endpoint, every byte that ships.
