Langage de templates
Syntaxe type Django/Twig avec filtres, macros, includes et {% verbatim %} pour Vue ou Alpine.
IllusionCMS couvre ce dont un site construit par des développeurs a besoin – de l’éditeur aux données, à l’automatisation et à l’exploitation. Voici la visite complète.
Chaque page est du HTML avec des balises de template – édité dans CodeMirror, prévisualisé en direct juste à côté.

Snippets, composants et layouts gardent votre markup concis. CSS et JavaScript vivent dans une bibliothèque commune et sont rattachés là où il le faut.
Syntaxe type Django/Twig avec filtres, macros, includes et {% verbatim %} pour Vue ou Alpine.
Marquez un snippet comme layout – les nouvelles pages démarrent avec {% extends %} et une zone de contenu.
{% component %} avec slots nommés et contenus de repli – comme des web components, mais côté serveur.
Une bibliothèque, attribuée par page ou héritée par les sous-pages. Minifiée et versionnée automatiquement ; modules ES détectés.
Rattachez du CSS/JS à un snippet – il n’est chargé que sur les pages qui l’utilisent vraiment.
Un bac à sable HTML, CSS et JS avec résultat en direct – privé ou partagé par lien.
Un composant est un snippet avec des slots. Passez des paramètres, remplissez les slots, c’est fait – les modifications s’appliquent partout. Les mêmes composants deviennent des blocs pour les rédactions.
{% component "card" image=p.photo %}
{% fill "title" %}{{ p.name }}{% endfill %}
<p>{{ p.summary }}</p>
{% fill "footer" %}
<a href="/team/{{ p.slug }}">Profile →</a>
{% endfill %}
{% endcomponent %}
Donnez à un snippet un schéma avec des paramètres typés et des slots – et le voilà devenu un bloc. Pages et entrées de collections peuvent alors être assemblées à partir de blocs.

Définissez des structures aux champs typés – blog, équipe, produits, événements – et utilisez-les dans n’importe quel template.

Les sources REST amènent des données externes dans vos templates : boutiques, CRM, systèmes headless ou vos propres services – avec placeholders, en-têtes, secrets issus de variables d’environnement et cache. Via les workflows, les tables IllusionDB deviennent aussi des pages, jusqu’à des milliers de landing pages avec sitemap générée.
{# Collection, REST API and IllusionDB – same syntax #}
{% for p in data("products", "category", route.query.cat,
"sort", "price", "limit", 12) %}
{% include "product-card" with product=p %}
{% endfor %}
{% with weather=data("weather-api", "city", "Berlin") %}
<p>{{ weather.current.temp }} °C</p>
{% endwith %}
Reliez des nœuds sur un canevas – à la Node-RED. Formulaires, webhooks et planifications démarrent un flux ; nœuds JavaScript, aiguillages, requêtes HTTP et actions de collection font le travail.
workflow()
Endpoints publics pour formulaires et webhooks – avec honeypot, validation et redirections.
Expressions cron pour tâches nocturnes, listes de prix, imports ou nettoyages.
Réagir quand des entrées sont créées, modifiées ou supprimées.
Envoyez des mails via votre serveur SMTP – notifications, confirmations, rapports.
Attendre, fusionner des branches parallèles et garder un état dans un petit stockage clé-valeur.
Lire et écrire des tables IllusionDB – filtrées, groupées et mises en cache.
Sous-arborescences par langue ou sites séparés – IllusionCMS relie les versions et s’occupe du reste.
hreflang et alternatives dans le sitemap générées automatiquementtranslations() et language_name() pour votre sélecteur de languelang_root()<nav class="languages">
{% for t in translations() %}
<a href="{{ t.url }}" hreflang="{{ t.lang }}"
{% if t.current %}aria-current="page"{% endif %}>
{{ language_name(t.lang) }}
</a>
{% endfor %}
</nav>
Indiquez un sitemap à l’importeur ou laissez-le explorer. Il reprend l’arborescence, le HTML, le CSS et le JavaScript comme assets partagés, les images, polices et vidéos – et réécrit tous les liens.

IllusionCMS est un binaire Go avec une base SQLite. Tout le reste est intégré.
Versions avec restauration pour pages, snippets, assets et workflows ; sauvegardes nocturnes.
Transférez des contenus complets entre instances – ou poussez du local vers la production.
Garage, AWS, Hetzner, R2 … avec cache local et migration guidée.
Liens signés temporaires ou connexion requise.
Totaux journaliers pour pages, provenances, navigateurs, pays et téléchargements – sans cookie.
Domaines, sitemap, robots.txt, icône et page 404 par site.
Pages rendues en mémoire avec gzip et ETag – vidé à chaque modification.
Tokens en lecture ou écriture, lots, clés d’idempotence, endpoint de schéma.
Notifications signées lors de modifications de contenu et de schéma – avec nouvelles tentatives.
En-têtes de sécurité, CSP, limitation de débit, protection CSRF, HSTS derrière HTTPS.
Redirections automatiques lors des déplacements ; import et export CSV.
Exploitation sans admin – pilotée à distance depuis votre instance locale.
IllusionCMS est gratuit. Sans compte, sans télémétrie, sans contrepartie.