Synthèse, home

Work

Elara

The house CMS: Astro + Rust, Stripe payments, a live chat that reaches the team on Matrix, everything a demanding e-commerce needs. It powers Ezako, Dobrunia and Art minéral. V1 is close, and with it the open source release.

AstroRustproduct

Role
Architecture, design, development.
Period
Since 2019
Stack
Rust (axum, sqlx), PostgreSQL, Astro, SvelteKit, Stripe, Matrix
A product page on artmineral.fr, a site built on Elara: the breadcrumb, a photo of a lampshade in Brazilian Chita fabric, its title, price in euros, description and a table of attributes (diameter, height, origin of the fabric).
A product page on artmineral.fr, a site built on Elara: the breadcrumb, a photo of a lampshade in Brazilian Chita fabric, its title, price in euros, description and a table of attributes (diameter, height, origin of the fabric).

The brief

Elara is the CMS I build my clients’ sites on: a Rust API, an Astro storefront and a SvelteKit back office. Ezako and Art minéral use it.

The name dates from 2019, when Elara referred to the Dobrunia Design front end, connected to WordPress. In 2026, Dobrunia and Art minéral ran on two variants of the same codebase. On 2 September, I brought that code together in a monorepo, with one rule: Elara stays generic, and anything about ceramics, minerals or signals stays in each site.

In use

A site composes its pages from 19 standard blocks, from the hero to the map and opening hours. Translated paths, redirects, a multilingual sitemap and structured data are included.

The shop covers the sale end to end, from variants to invoices and credit notes, with shipping costs by zone and by weight. Payment goes through Stripe or Revolut. Optional modules complete the set: multi-step forms, appointment booking, newsletter, anonymous statistics, live chat over Matrix.

Design is adjustable in the back office: palette, typefaces and logo. On input, the admin checks the contrast of each text and background pair.

The contact page of ezako.com, another Elara site with its own theme: a form (name, email, optional subject and message) with its Send button, and the company's public phone number and email beside it.
The contact page of ezako.com, another Elara site with its own theme: a form (name, email, optional subject and message) with its Send button, and the company's public phone number and email beside it.

Architecture

Each site has its own repository, with the Elara crates it needs and a crate of its own. Elara comprises 21 Rust crates, six published packages and a starter site that serves as a test bench.

A Bun server receives every request and passes /admin to SvelteKit, the rest to Astro. Astro calls the API through an SDK generated from the OpenAPI description: a contract change is detected at build time. Reading and navigation work with JavaScript disabled; cart, booking and chat each have a server-side fallback form.

Content moves as files: elara export writes a site, elara seed loads it. Art minéral and Ezako migrated this way. In production, Caddy switches between two web instances during each deployment.

Decisions

Every decision written down. Each structural choice gets an ADR, a short document that gives its context and reasons; there are twenty-nine of them.

Everything starts from an event. Background tasks are triggered by events, and an expiry is computed at read time. The chat goes through server-sent events and resumes from the last message received after a disconnection.

Up-to-date dependencies, strict code. Each dependency tracks its latest version. Rust lints are at the strictest level, and the code is entirely in safe Rust. The storefront and the admin meet WCAG 2.2 AA in both themes, checked by axe in a real browser.

Respond to leads quickly. According to the Harvard Business Review (2011), a lead called back within the hour becomes a qualified prospect nearly seven times as often. The chat asks for the message first, opens the conversation from the first send and shows who is answering.

Today

Elara is in its 0.8 series. Ezako and Art minéral each run on a published version; Dobrunia still uses the previous generation. Version 1.0 is approaching, and Elara’s code will be published as open source with it.

A project in mind? Let's talk