Elara
Le CMS maison : Astro + Rust, paiements Stripe, un live chat qui joint l'équipe sur Matrix, tout ce qu'exige un e-commerce sérieux. Il propulse Ezako, Dobrunia et Art minéral. La V1 approche, et avec elle l'open source.
- Rôle
- Architecture, design, développement.
- Période
- Depuis 2019
- Stack
- Rust (axum, sqlx), PostgreSQL, Astro, SvelteKit, Stripe, Matrix


Le besoin
Elara est le CMS sur lequel je construis les sites de mes clients : une API Rust, une vitrine Astro et un back-office SvelteKit. Ezako et Art minéral l’utilisent.
Le nom date de 2019, quand Elara désignait le front de Dobrunia Design, branché sur WordPress. En 2026, Dobrunia et Art minéral tournaient sur deux variantes d’une même base de code. Le 2 septembre, j’ai réuni ce code dans un monorepo, avec une règle : Elara reste générique, et ce qui touche à la céramique, aux minéraux ou aux signaux reste dans chaque site.
À l'usage
Un site compose ses pages à partir de 19 blocs standard, du hero à la carte et aux horaires d’ouverture. Chemins traduits, redirections, sitemap multilingue et données structurées sont inclus.
La boutique couvre la vente de bout en bout, des variantes aux factures et aux avoirs, avec des frais d’expédition par zone et par poids. Le paiement passe par Stripe ou Revolut. Des modules optionnels complètent l’ensemble : formulaires à étapes, prise de rendez-vous, newsletter, statistiques anonymes, chat en direct sur Matrix.
Le design est réglable dans le back-office : palette, polices et logo. À la saisie, l’administration vérifie le contraste de chaque couple texte et fond.


Architecture
Chaque site a son propre dépôt, avec les crates d’Elara dont il a besoin et une crate spécifique. Elara compte 21 crates Rust, six paquets publiés et un site de démarrage qui sert de banc de tests.
Un serveur Bun reçoit toutes les requêtes et transmet /admin à SvelteKit, le reste à Astro. Astro appelle l’API par un SDK généré depuis la description OpenAPI : un changement de contrat est détecté dès le build. La lecture et la navigation fonctionnent avec JavaScript désactivé ; panier, réservation et chat ont chacun un formulaire serveur de repli.
Le contenu s’échange en fichiers : elara export écrit un site, elara seed le charge. Art minéral et Ezako ont migré de cette façon. En production, Caddy bascule entre deux instances web pendant chaque déploiement.
Décisions
Chaque décision écrite. Chaque choix structurant fait l’objet d’un ADR, un court document qui en donne le contexte et les raisons ; il y en a vingt-neuf.
Tout part d’un évènement. Les tâches de fond se déclenchent sur évènement, et une expiration se calcule au moment de la lecture. Le chat passe par des server-sent events et reprend au dernier message reçu après une coupure.
Des dépendances à jour, un code strict. Chaque dépendance suit sa dernière version. Les lints Rust sont au niveau le plus strict, et le code est entièrement en Rust sûr. La vitrine et l’administration respectent le WCAG 2.2 AA dans les deux thèmes, contrôlé par axe dans un vrai navigateur.
Répondre vite aux contacts. Selon la Harvard Business Review (2011), un contact rappelé dans l’heure devient un prospect qualifié presque sept fois plus souvent. Le chat demande d’abord le message, ouvre la conversation dès le premier envoi et montre qui répond.
Aujourd'hui
Elara en est à la série 0.8. Ezako et Art minéral tournent chacun sur une version publiée ; Dobrunia utilise encore la génération précédente. La version 1.0 approche, et le code d’Elara sera publié en open source avec elle.