Aller au contenu
Julien Bigot, accueil
Menu
Tous les projets

01/SaaS Shopify · Analytics de rentabilité

Nette Profit Analytics

Le bénéfice net réel d’une boutique Shopify, commande par commande.

Rôle
Produit, développement full-stack, infra et publication, en solo
Période
mars – oct. 2026
Statut
Publiée sur le Shopify App Store

Code privé — démo sur demande. Le dépôt est privé. Je fais volontiers une démo de l’application en visio ou en entretien.

Demander une démo
Présentation en 71 secondes, générée par le code avec Remotion. Sans voix off, musique seule. Boutique de démonstration, données fictives.
connecteurs OAuth / API
12
lignes de TypeScript
~45 k
fichiers de tests
41
publication App Store
12 oct. 2026

Contexte

Sur Shopify, le chiffre d’affaires est affiché partout ; la marge, presque nulle part. Une boutique paie ses produits, la livraison, les frais de paiement, des campagnes sur plusieurs régies et des charges fixes, et aucune vue ne rassemble tout ça.

Le problème

Réunir des données éparpillées (commandes Shopify, dépenses de 8 régies publicitaires, coûts de 4 transporteurs) dans un modèle de coûts fiable, le recalculer en continu et le rendre lisible dans l’admin Shopify, sans jamais exposer les données d’un marchand.

Ce que j’ai fait

  • Conception produit, modèle de coûts et parcours d’onboarding.
  • Toute l’application : front Polaris, rendu serveur, API, jobs, base de données.
  • Infrastructure de production, CI et sauvegardes.
  • Soumission et publication sur le Shopify App Store.
  • Vidéos de présentation FR/EN générées par le code (Remotion).

Architecture & choix techniques

  1. 01

    React Router 7 en SSR dans l’admin Shopify

    App embarquée via App Bridge et Polaris, rendue côté serveur, branchée sur l’Admin GraphQL. Une première version Express + Vite (mars 2026) a servi de prototype ; la v2 a été réécrite en TypeScript de bout en bout.

  2. 02

    12 connecteurs derrière une interface commune

    8 régies publicitaires (Meta, Google, TikTok, Bing, Pinterest, Snapchat, Reddit, X) et 4 transporteurs (ShipStation, Shippo, Sendcloud, EasyPost) en OAuth ou API. Les synchronisations passent par une file de jobs pg-boss adossée à PostgreSQL.

  3. 03

    Une IA encadrée

    L’assistant s’appuie sur Claude avec des outils typés par Zod. Chaque question a un plafond de coût et d’appels, et le modèle ne voit que des métriques agrégées, jamais les données brutes des clients.

  4. 04

    Une infra faite à la main, durcie

    VPS sous Docker Compose : PostgreSQL sur volume chiffré (LUKS), Caddy en HTTPS/HSTS, sauvegardes pg_dump chiffrées avec age, endpoint /healthz. CI GitHub Actions sur Node 22 et PostgreSQL 17.

Points clés

  • Bénéfice calculé par commande, coût par coût.
  • Compte de résultat mensuel, cohortes LTV en bénéfice et simulateur de leviers.
  • Interface et e-mails bilingues FR/EN.

Stack

  • TypeScript
  • React 18
  • React Router 7 (SSR)
  • Shopify App Bridge
  • Polaris
  • Admin GraphQL
  • Prisma
  • PostgreSQL 17
  • pg-boss
  • Zod
  • Recharts
  • Anthropic SDK
  • Vitest
  • Docker Compose
  • Caddy
  • GitHub Actions
  • Remotion

Captures issues de boutiques de démonstration, données fictives. Sélectionnez une image pour l’agrandir.

  • 01Le tableau de bord embarqué dans l'admin Shopify (Polaris). Chaque coût est déduit : produits, livraison, frais de paiement, pub, charges fixes.
  • 02Un compte de résultat mensuel calculé à partir des commandes, des dépenses pub et des charges fixes.
  • 03Le bénéfice après pub, canal par canal : les dépenses viennent des 8 connecteurs de régies publicitaires (OAuth).
  • 04Le simulateur recalcule le bénéfice projeté en direct quand on bouge les leviers.
  • 05Cohortes LTV mesurées en bénéfice et non en chiffre d’affaires.
  • 06Le bénéfice de chaque commande, coût par coût.
  • 07Le résumé hebdomadaire envoyé par e-mail (boutique fictive « Atelier Lumen »).
  • 08Le site public usenette.com, bilingue FR/EN.