Julien Levesque Architecte solutions

← Tous les produits

Produit · Vente directe

Ma Commande : la vente directe, sans plateforme entre le producteur et ses clients.

Un service en ligne de prise de commande pour les producteurs qui vendent en direct : éleveurs, maraîchers, fromagers, collectifs. Leurs clients commandent sur le catalogue sans créer de compte et choisissent un créneau de retrait ; le règlement se fait sur place, sans commission. Conçu, développé et exploité de bout en bout, de l'idée à la production.

Voir ma-commande.app Parler de votre projet

La boutique d'un producteur, côté client : 187 produits, filtres par producteur et par catégorie. Données de démonstration.

Le point de départ

Beaucoup de producteurs prennent leurs commandes par téléphone, par e-mail ou par un formulaire en ligne qui ne suffit plus dès que le catalogue grandit. De l'autre côté, les plateformes de e-commerce sont lourdes à tenir et prélèvent une commission sur chaque vente. Ma Commande se place entre les deux, et dit aussi clairement ce qu'elle n'est pas : ni une place de marché, ni une caisse, ni un ERP, ni un créateur de site.

La commande sur téléphone, total toujours visible.
Le tableau de bord du producteur : commandes de la semaine, statuts, dernières commandes.

Les choix d'architecture

Ce qui ne se voit pas sur le site du produit, et qui fait qu'il tient.

Deux applications qui ne s'appellent jamais
Le portail public gère le site, l'abonnement et la création des espaces ; l'application sert les boutiques et leur back-office. Leur seul contrat est la base PostgreSQL : le portail crée un espace en une transaction, l'application le sert dans la foulée. Aucune API interne à maintenir, aucune panne en cascade entre les deux.
Une seule instance pour tous les producteurs
Chaque boutique est une ligne en base, servie à sa propre adresse par la même application. Un Worker Cloudflare relaie chaque sous-domaine avec un secret d'origine, vérifié en temps constant, et chaque requête en base est filtrée par boutique. Ouvrir un nouvel espace ne demande plus ni conteneur, ni enregistrement DNS, ni déploiement.
Pas de compte client, pas de faille pour autant
Le client suit sa commande avec un code à six chiffres reçu par e-mail. Ce code est stocké sous forme d'empreinte HMAC, à usage unique, limité à cinq essais comptés en base. Côté producteur : verrouillage après cinq échecs, plafond par adresse IP, protection anti-robot Turnstile.
Ce qui fait foi est écrit en base
L'abonnement n'est activé que par le webhook signé de Stripe, jamais par le retour du navigateur. Chaque commande garde un instantané de ses prix et des coordonnées du client. La preuve d'acceptation des conditions générales est immuable : un déclencheur PostgreSQL refuse toute modification.
Une exploitation sobre
Conteneurs serverless, PostgreSQL managé, stockage objet et coffre à secrets chez Scaleway, à Paris. Les images ne contiennent aucune configuration : tout vient du coffre de chaque environnement. Les migrations s'appliquent au démarrage sous un verrou PostgreSQL, pour que plusieurs instances ne se marchent pas dessus.
Testé contre une vraie base
Environ 350 tests automatisés, exécutés contre un vrai PostgreSQL lancé à la volée dans un conteneur, et non contre une base simulée. Trois environnements, développement, préproduction et production, sans aucune intégration simulée.

Pile technique .NET 10 · Blazor Server · EF Core 10 · PostgreSQL · Stripe · Cloudflare Workers · Scaleway

Ce que ça change pour votre projet

Ce sont les questions d'un système d'entreprise, à plus petite échelle : séparer ce qui vend de ce qui sert, accueillir de nouveaux clients sur une infrastructure partagée plutôt que de multiplier les déploiements, décider de ce qui fait foi et l'écrire en base. Si votre système doit grandir sans une nouvelle infrastructure à chaque client, c'est exactement ce type de système qui est en jeu ici.

Parler de votre projet

Les autres produits