Dobrunia
Plus de dix ans aux côtés d'un atelier de création : céramique, cours, design d'intérieur. Le site est un e-commerce personnel complet propulsé par Elara, Stripe compris.
- Rôle
- Design, développement, hébergement, suivi au long cours.
- Période
- Plus de dix ans
- Stack
- Rust (axum), PostgreSQL, Astro, Stripe, Playwright, axe
- Liens

Le besoin
Dobrunia Design est un atelier de céramique niçois ; ses pièces sont peintes à la main. Je développe son site depuis plus de dix ans. Le dépôt actuel compte 575 commits depuis juillet 2019, quand j’ai réécrit le front React en web components.
En 2026, l’atelier voulait tout gérer en ligne : la boutique, les cours, les éditions limitées et les demandes des professionnels. En mars, j’ai migré le front vers Astro et remplacé WordPress par une API Rust sur PostgreSQL. Fin mars, le paiement Stripe fonctionnait et WordPress était retiré.
À l'usage
Depuis septembre 2026, la boutique est la page d’accueil, à la demande de l’atelier. Chaque produit a ses variantes et son stock. Les commandes partent en Colissimo, au poids, ou se retirent à l’atelier, avec facture et lien de suivi.
Les cours ont leur calendrier, avec réservation et paiement en ligne. Le bon cadeau « duo » donne, pour chaque unité achetée, un code valable pour deux places. La place, le bon et la réservation sont enregistrés dans une seule transaction.
Le site propose aussi des éditions limitées, en quantité et en durée, et un formulaire pour les professionnels.

Architecture
L’API Rust, le serveur Astro et PostgreSQL tournent dans trois conteneurs. Seul Astro est exposé au public. L’API lui répond, et chaque réponse est validée par un contrat typé avant d’atteindre une page.
Les e-mails partent après l’enregistrement : une réservation écrit ses messages dans une file d’envoi, dans la même transaction, puis une tâche les expédie. Le stock et les numéros de facture sont attribués dans des transactions verrouillées. Chaque image est déclinée en WebP et AVIF, jusqu’à une vignette de 300 px, et le navigateur charge la taille qu’il affiche.
Pour quitter WordPress, j’ai écrit un exporteur, un collecteur pour les annonces Etsy de l’atelier et un script de traduction, sur un modèle local, pour la version anglaise.

Décisions
Mesurer, puis corriger. La grille de l’accueil se chargeait dans un îlot différé, et le navigateur découvrait tard la première image. Je l’ai rendue côté serveur, avec un préchargement. En production, le score Lighthouse mobile est passé de 78 à une note entre 92 et 99, et l’affichage de l’image principale de 5,6 s à une durée entre 1,9 et 3,1 s.
Le paiement sur le site. Avec Stripe Embedded Checkout, le client paie sur la page du site. Le montant payé est comparé à celui de la commande avant validation, et une réconciliation rattrape les notifications Stripe manquées.
Des contrôles à chaque push. En août 2026, j’ai mené deux audits complets du site et corrigé leurs constats. Chaque push lance l’analyse statique Rust, les tests, l’audit des dépendances et la suite Playwright, avec zéro violation axe sur les pages publiques.
Une administration simple. L’administration est écrite en Astro, avec des formulaires classiques. Ses limites sur les écrans complexes ont orienté la conception d’Elara.
Aujourd'hui
dobruniadesign.com est en ligne et encaisse ses ventes par Stripe. C’est de ce code que j’ai extrait Elara : l’authentification, les médias, la file d’envoi, la boutique, les cours et les bons cadeaux en viennent.