{
  "projects": [
    {
      "id": "zeloop",
      "name": "ZeLoop",
      "status": "live",
      "url": "https://zeloop.net",
      "role": {
        "en": "Co-founder & CTO",
        "fr": "Co-fondateur & CTO"
      },
      "period": {
        "en": "2018 — Present",
        "fr": "2018 — Présent"
      },
      "tagline": {
        "en": "Eco-friendly social network rewarding green actions with cryptocurrency — deployed under 4 distinct brands.",
        "fr": "Réseau social écologique qui récompense les gestes éco-responsables en cryptomonnaie — déployé sous 4 marques distinctes."
      },
      "tags": [
        "Flutter",
        "Firebase",
        "Blockchain",
        "White Label",
        "Node.js"
      ],
      "components": [
        {
          "id": "whitelabel",
          "title": {
            "en": "White Label Architecture",
            "fr": "White Label Architecture"
          },
          "description": {
            "en": "A single Flutter codebase deployed under 4 visual identities — newBin, StopMego, Cherry and Eau de Paris. Dynamic theme system and per-client configuration.",
            "fr": "Un seul codebase Flutter déployé sous 4 identités visuelles — newBin, StopMego, Cherry et Eau de Paris. Système de thèmes dynamiques et configuration par client."
          },
          "tags": [
            "Flutter",
            "Firebase",
            "Theme Engine",
            "Marque Blanche"
          ],
          "url": null
        },
        {
          "id": "api",
          "title": {
            "en": "Reward Engine API",
            "fr": "Reward Engine API"
          },
          "description": {
            "en": "Generic cryptocurrency reward REST API. 4 blockchains — Ethereum, EOS, Binance Smart Chain and VeChain. Smart contracts in Solidity & C++.",
            "fr": "API REST générique de récompense par cryptomonnaie. 4 blockchains — Ethereum, EOS, Binance Smart Chain et VeChain. Smart contracts en Solidity & C++."
          },
          "tags": [
            "REST API",
            "Node.js",
            "Solidity",
            "C++",
            "Ethereum",
            "VeChain"
          ],
          "url": "https://zeloop.net"
        },
        {
          "id": "spotter",
          "title": {
            "en": "ZeLoop Spotter",
            "fr": "ZeLoop Spotter"
          },
          "description": {
            "en": "Field application for waste collectors, integrated with the VeChain blockchain. Flutter web mini-app deployed without a store.",
            "fr": "Application de terrain pour les collecteurs de déchets, intégrée à la blockchain VeChain. Mini-app web Flutter déployée sans store."
          },
          "tags": [
            "Flutter Web",
            "VeChain",
            "PWA"
          ],
          "url": "https://spotter.zeloop.net"
        },
        {
          "id": "exchange",
          "title": {
            "en": "ZeLoop Exchange",
            "fr": "ZeLoop Exchange"
          },
          "description": {
            "en": "Waste-valorization marketplace built on my Next.js marketplace boilerplate: TypeScript, tRPC, PostgreSQL + Prisma, Stripe and Docker.",
            "fr": "Marketplace de valorisation des déchets bâtie sur mon boilerplate Next.js : TypeScript, tRPC, PostgreSQL + Prisma, Stripe et Docker."
          },
          "tags": [
            "Next.js",
            "TypeScript",
            "tRPC",
            "Prisma",
            "PostgreSQL",
            "Stripe",
            "Docker"
          ],
          "url": "https://exchange.zeloop.net/"
        }
      ]
    },
    {
      "id": "lovt",
      "name": "LOVT",
      "status": "ended",
      "url": "https://laruchequebec.com/fr/projets/ameliorez-votre-quotidien-investissez-dans-la-jeunesse",
      "role": {
        "en": "Co-founder & CTO",
        "fr": "Co-fondateur & CTO"
      },
      "period": {
        "en": "2024 — 2025",
        "fr": "2024 — 2025"
      },
      "tagline": {
        "en": "Service marketplace dedicated to young people — 2,000 registrations in 1 month thanks to a PWA strategy without going through the stores.",
        "fr": "Marketplace de services dédiée aux jeunes — 2 000 inscriptions en 1 mois grâce à une stratégie PWA sans passage par les stores."
      },
      "tags": [
        "Flutter",
        "PWA",
        "Firebase",
        "Analytics",
        "Growth"
      ],
      "components": [
        {
          "id": "pwa",
          "title": {
            "en": "Flutter PWA Strategy",
            "fr": "Flutter PWA Strategy"
          },
          "description": {
            "en": "Deployment in a few weeks, zero store. After lazy loading optimization: 3× more registrations while reducing Firebase reads below the free tier threshold.",
            "fr": "Déploiement en quelques semaines, zéro store. Après optimisation du lazy loading : 3× plus d'inscriptions tout en réduisant les lectures Firebase sous le seuil du free tier."
          },
          "tags": [
            "Flutter Web",
            "PWA",
            "Firebase",
            "Lazy Loading"
          ],
          "url": "https://laruchequebec.com/fr/projets/ameliorez-votre-quotidien-investissez-dans-la-jeunesse"
        },
        {
          "id": "installer",
          "title": {
            "en": "pwa_installer",
            "fr": "pwa_installer"
          },
          "description": {
            "en": "Open source Dart library published on pub.dev. Natively triggers the PWA install banner from Flutter Web — a feature missing from the framework by default.",
            "fr": "Librairie Dart open source publiée sur pub.dev. Déclenche nativement le bandeau d'installation PWA depuis Flutter Web — fonctionnalité absente du framework par défaut."
          },
          "tags": [
            "Dart",
            "pub.dev",
            "Open Source",
            "v0.2.0"
          ],
          "url": "https://pub.dev/packages/pwa_installer"
        }
      ]
    },
    {
      "id": "hiiba",
      "name": "Hiiba",
      "status": "live",
      "url": "https://hiiba.ae",
      "role": {
        "en": "Co-founder & CTO",
        "fr": "Co-fondateur & CTO"
      },
      "period": {
        "en": "2026 — Ongoing",
        "fr": "2026 — En cours"
      },
      "tagline": {
        "en": "First marketplace for item donations in the United Arab Emirates — connects donors and receivers in a local circular economy.",
        "fr": "Première marketplace de dons d'objets aux Émirats Arabes Unis — connecte donneurs et receveurs dans une économie circulaire locale."
      },
      "tags": [
        "Flutter",
        "Postgres",
        "Next.js",
        "Marketplace",
        "UAE"
      ],
      "components": [
        {
          "id": "app",
          "title": {
            "en": "Flutter Marketplace App",
            "fr": "Flutter Marketplace App"
          },
          "description": {
            "en": "Cross-platform iOS, Android and Web app. Firebase sign-in (email, Google, Apple, phone), business logic in PostgreSQL RPCs, real-time messaging with Supabase Realtime, images on Cloudflare R2 and push notifications.",
            "fr": "Application multiplateforme iOS, Android et Web. Connexion Firebase (email, Google, Apple, téléphone), logique métier en RPC PostgreSQL, messagerie en temps réel avec Supabase Realtime, images sur Cloudflare R2 et notifications push."
          },
          "tags": [
            "Flutter",
            "Postgres",
            "PostgreSQL",
            "Cloudflare R2",
            "Push"
          ],
          "url": "https://hiiba.ae"
        },
        {
          "id": "admin",
          "title": {
            "en": "Admin & web app",
            "fr": "Back-office & web app"
          },
          "description": {
            "en": "Back-office in Next.js 15, React 19 and TypeScript (Supabase, maps, charts, emails), plus a Next.js web app and a localized Astro site in a pnpm monorepo with staging and production deploys.",
            "fr": "Back-office en Next.js 15, React 19 et TypeScript (Supabase, cartes, graphiques, e-mails), plus une web app Next.js et un site Astro localisé en monorepo pnpm, avec déploiements staging et production."
          },
          "tags": [
            "Next.js 15",
            "React 19",
            "TypeScript",
            "Postgres",
            "pnpm"
          ],
          "url": null
        }
      ]
    },
    {
      "id": "artkiddo",
      "name": "Artkiddo",
      "status": "mvp",
      "url": "https://artkiddo.bencool.ca",
      "role": {
        "en": "Founder",
        "fr": "Fondateur"
      },
      "period": {
        "en": "2026 — New",
        "fr": "2026 — Nouveau"
      },
      "tagline": {
        "en": "Keep your kids' drawings safe: photos, details and voice notes. A free open-source core that works offline with no account, plus a proprietary extension on the App Store and Google Play for a family space, cloud backup and sharing.",
        "fr": "Conserver les dessins de vos enfants : photos, informations et notes vocales. Un cœur open source et gratuit qui fonctionne sans compte et hors ligne, et une extension propriétaire sur l'App Store et Google Play : espace familial, sauvegarde cloud et partage."
      },
      "tags": [
        "Flutter",
        "Supabase",
        "PostgreSQL",
        "Cloudflare R2",
        "TypeScript"
      ],
      "components": [
        {
          "id": "backend",
          "title": {
            "en": "Supabase backend & API contract",
            "fr": "Backend Supabase & contrat d'API"
          },
          "description": {
            "en": "PostgreSQL schema with RLS, RPCs, triggers and scheduled jobs. ~25 TypeScript Edge Functions: signed and background uploads to Cloudflare R2, family invitations and permissions, revocable share links, trash and account deletion. 50 pgTAP tests and CI.",
            "fr": "Schéma PostgreSQL avec RLS, RPC, triggers et jobs planifiés. ~25 Edge Functions TypeScript : uploads signés et en arrière-plan vers Cloudflare R2, invitations et permissions familiales, liens de partage révocables, corbeille et suppression de compte. 50 tests pgTAP et CI."
          },
          "tags": [
            "PostgreSQL",
            "RLS",
            "Edge Functions",
            "pgTAP",
            "GitHub Actions"
          ],
          "url": null
        },
        {
          "id": "app",
          "title": {
            "en": "Offline-first Flutter app",
            "fr": "App Flutter offline-first"
          },
          "description": {
            "en": "Works with no account and no network. Source-available core, private cloud layer, and an Astro site with a family gallery pinned to a versioned backend contract.",
            "fr": "Fonctionne sans compte ni réseau. Cœur source-available, couche cloud privée, et site Astro avec galerie familiale épinglés sur un contrat backend versionné."
          },
          "tags": [
            "Flutter",
            "Riverpod",
            "Offline-first",
            "Astro"
          ],
          "url": "https://github.com/KooliFab/artkiddo"
        }
      ]
    },
    {
      "id": "grimora",
      "name": "Grimora",
      "status": "mvp",
      "url": null,
      "role": {
        "en": "Founder",
        "fr": "Fondateur"
      },
      "period": {
        "en": "2026 — In development",
        "fr": "2026 — En développement"
      },
      "tagline": {
        "en": "Gamified study app: flashcards and spaced repetition (FSRS-6) on iOS, Android, tablet, macOS and Web — works offline, built clean-room.",
        "fr": "Application de révision gamifiée : cartes mémoire et répétition espacée (FSRS-6) sur iOS, Android, tablette, macOS et Web — fonctionne hors ligne, développée en clean-room."
      },
      "tags": [
        "Flutter",
        "Local-first",
        "Supabase",
        "FSRS-6",
        "AI agents"
      ],
      "components": [
        {
          "id": "sync",
          "title": {
            "en": "Local-first sync",
            "fr": "Synchronisation local-first"
          },
          "description": {
            "en": "SQLite (Drift) is the source of truth on device; Supabase Auth, PostgreSQL and Edge Functions back up and sync. Server-side entitlements, text-to-speech and synced voice answers.",
            "fr": "SQLite (Drift) est la source de vérité sur l'appareil ; Supabase Auth, PostgreSQL et Edge Functions sauvegardent et synchronisent. Droits appliqués côté serveur, synthèse vocale et réponses vocales synchronisées."
          },
          "tags": [
            "SQLite",
            "Drift",
            "Supabase",
            "Text-to-speech"
          ],
          "url": null
        },
        {
          "id": "agents",
          "title": {
            "en": "AI-delegated delivery",
            "fr": "Livraison déléguée à l'IA"
          },
          "description": {
            "en": "I write the specs and contracts; coding agents deliver bounded batches with files, tests and migrations; I review every batch before integration.",
            "fr": "J'écris les specs et les contrats ; des agents codeurs livrent des lots bornés avec fichiers, tests et migrations ; je relis chaque lot avant intégration."
          },
          "tags": [
            "Claude Code",
            "Codex",
            "Specs & contracts",
            "Code review"
          ],
          "url": null
        }
      ]
    },
    {
      "id": "cogni",
      "name": "Cogni's Adventure",
      "status": "live",
      "url": "https://cognibook.com",
      "role": {
        "en": "Founder",
        "fr": "Fondateur"
      },
      "period": {
        "en": "2024 — Present",
        "fr": "2024 — Présent"
      },
      "tagline": {
        "en": "Companion app for the physical book \"Les Aventures de Cogni\" — generates an infinite number of interactive episodes with random puzzles.",
        "fr": "Application compagnon du livre physique \"Les Aventures de Cogni\" — génère un nombre infini d'épisodes interactifs avec des énigmes aléatoires."
      },
      "tags": [
        "Flutter",
        "PWA",
        "Firebase",
        "EdTech"
      ],
      "components": [
        {
          "id": "engine",
          "title": {
            "en": "Generative Episode Engine",
            "fr": "Generative Episode Engine"
          },
          "description": {
            "en": "Random episode and puzzle generation engine linked to the physical book. Each session offers a unique experience — the content never runs out.",
            "fr": "Moteur de génération d'épisodes et d'énigmes aléatoires lié au livre physique. Chaque session offre une expérience unique — le contenu ne s'épuise jamais."
          },
          "tags": [
            "Flutter Web",
            "Firebase",
            "PWA",
            "Génératif"
          ],
          "url": "https://cognibook.web.app"
        }
      ]
    },
    {
      "id": "barcode",
      "name": "BarcodeVibe",
      "status": "live",
      "url": "https://barcodevibe.com",
      "role": {
        "en": "Founder",
        "fr": "Fondateur"
      },
      "period": {
        "en": "2026 — Ongoing",
        "fr": "2026 — En cours"
      },
      "tagline": {
        "en": "Grocery price comparison app: barcode scan, available price history, price per unit, shrinkflation detection and price-drop alerts.",
        "fr": "Application de comparaison de prix d'épicerie : scan de codes-barres, historique des prix disponibles, prix à l'unité, détection de la réduflation et alertes de baisse de prix."
      },
      "tags": [
        "Flutter",
        "Supabase",
        "React",
        "TypeScript",
        "SEO"
      ],
      "components": [
        {
          "id": "scanner",
          "title": {
            "en": "Price scanner app",
            "fr": "Application de scan de prix"
          },
          "description": {
            "en": "Flutter app on Firestore + Supabase: barcode scan, tracking lists, community feed, deal discovery and push alerts when a lower price is reported.",
            "fr": "App Flutter sur Firestore + Supabase : scan de codes-barres, listes de suivi, fil communautaire, découverte de promotions et alertes push quand un prix plus bas est signalé."
          },
          "tags": [
            "Flutter",
            "Firestore",
            "Supabase",
            "Push",
            "Barcode Scanner"
          ],
          "url": null
        },
        {
          "id": "site",
          "title": {
            "en": "Bilingual SEO site",
            "fr": "Site SEO bilingue"
          },
          "description": {
            "en": "React 19 + TypeScript + Vite site prerendered in 3 locales, Astro blog, automated SEO audit, sitemap and IndexNow.",
            "fr": "Site React 19 + TypeScript + Vite prérendu en 3 locales, blog Astro, audit SEO automatisé, sitemap et IndexNow."
          },
          "tags": [
            "React 19",
            "TypeScript",
            "Vite",
            "Astro",
            "SEO"
          ],
          "url": "https://barcodevibe.com"
        }
      ]
    }
  ]
}
