21/21factures de test lues sans erreur (7 oct. 2026)
30+sites web migrés sans interruption
Voyez-le à l'œuvre
Une facture en désordre entre. Des données propres et vérifiées en sortent.
simulation en directpipeline d'extraction · simulé · 0 appel externe
Ce que je peux construire pour votre entreprise
Pas besoin de connaître le terme technique.
Décrivez le problème dans vos mots. Chaque carte montre ce que je construis pour le régler, le nom que lui donnent les spécialistes, et la preuve vérifiable sur ce site.
Mesuré
Les factures, bons de commande et formulaires sont encore ressaisis à la main.
Le terme technique
Extraction de données de documents, avec schéma validé et modèle de relève
Preuve
Lecteur de factures : 21 factures de test sur 21 entièrement exactes au banc d'essai du 7 octobre 2026.
Vos équipes ne trouvent pas les réponses dans vos procédures et vos manuels réglementaires.
Le terme technique
Recherche hybride (RAG) avec citations vérifiées
Preuve
Interrogez vos manuels : 6 questions enregistrées sur 6 répondues avec des citations vérifiées, et la seule question hors des documents a été refusée (14 octobre 2026).
Des outils d'IA qui vérifient leur propre travail.
Deux services sont en ligne, au code public. Deux autres sont planifiés. Les chiffres marqués Mesuré ont été enregistrés lors de tests datés. Les chiffres marqués Cible sont des objectifs, pas des résultats.
Mesuré
Cible
En production, code ouvert01 / Phase 1 · Livré
Lecteur de factures
Service d'extraction de factures
Transforme les PDF, les numérisations et les courriels transférés en données de facture propres, prêtes pour votre logiciel comptable. Si un fournisseur d'IA est lent ou en panne, il passe tout seul à un autre, et chaque total est recalculé au cent près avant toute sortie.
Le problème réglé
Les équipes des comptes fournisseurs reçoivent leurs factures sous forme de sorties OCR brutes, de fils de courriels transférés, de reçus de caisse et de PDF en langue étrangère. Un appel LLM brut renvoie de la prose, des blocs de code délimités ou un objet JSON de la mauvaise forme, et une seule panne chez un fournisseur bloque toute la file d'entrée.
classes de défaillance de fournisseur couvertes hors ligne
mesuré
0
appel réseau permis dans la suite de tests
mesuré
0,00 $
de coût marginal par requête sur la chaîne par défaut
mesuré
Comment ça marchepour les équipes techniques
En termes techniques
Un microservice FastAPI asynchrone qui transforme des documents désordonnés et non structurés en un enregistrement de facture garanti, validé par schéma. La résilience vient du routage entre modèles, pas entre fournisseurs. Un modèle principal gratuit bascule vers un second fournisseur en cas de limite de débit, de délai dépassé ou d'exception de schéma, à coût marginal nul.
Architecture
Les requêtes sont validées par Pydantic v2 avant tout appel de modèle. Le répartiteur parcourt une chaîne ordonnée de modèles avec décodage contraint par json_schema strict, à température 0. Chaque tentative s'exécute sous un délai d'expiration ferme et traduit les exceptions du SDK en une taxonomie d'erreurs unique. La sortie brute est débarrassée de ses délimiteurs de code et de ses préambules de raisonnement, analysée, puis normalisée par des validateurs qui recalculent les totaux de ligne au cent près et convertissent les symboles monétaires en codes ISO-4217. Le service veille aussi sur sa propre chaîne. Quand un modèle gratuit est retiré, il reteste le catalogue gratuit avec sept documents d'exemple et comble le vide selon une règle d'ordonnancement publiée.
Pile technique
Python 3.12
FastAPI
Pydantic v2
OpenRouter
httpx
Pytest
GitHub Actions
Render
Éléments de preuve
Dix classes de défaillance exercées hors ligne dans les tests de cascade, soit 429, 503, 404, délai dépassé, exception inattendue, JSON invalide, schéma non conforme, réponse vide, erreur amont intégrée à la réponse et sortie tronquée.
La suite de tests ne peut pas atteindre le réseau, par construction. Chaque chemin sortant est fermé dans conftest, et un test qui tente d'en emprunter un échoue immédiatement.
Instantané du banc d'essai daté du 7 octobre 2026. 3 passes de 7 documents par modèle, chaque appel enregistré en JSONL pour que les chiffres puissent être recalculés sans appeler de modèle.
Chaque chiffre de la page du projet est vérifié par un test contre les enregistrements. Une phrase qui ne découle pas des données fait échouer le build.
Côté journalisation, le modèle et la durée sont consignés, jamais le nom du fournisseur ni le numéro de facture au-dessus du niveau DEBUG.
Pipeline de requête
01
Ingestion
ExtractRequest, 10 à 50k caractères, plafond de 1 Mo sur le corps, refusé avant lecture
02
Durcissement
Neutralisation des injections de prompt, middleware request-id, budget d'appels avec Retry-After
Autre fournisseur, déclenché seulement après un appel échoué
05
Récupération
Retrait des délimiteurs, suppression du préambule de raisonnement, décodage JSON
06
Validation
InvoiceData.model_validate, recalcul des totaux, ISO-4217
Démo en ligne, code ouvert02 / Phase 2 · Livré
Interrogez vos manuels
Moteur de recherche hybride et contextuel pour la conformité
Vos équipes posent une question sur vos procédures ou vos règlements et reçoivent une réponse qui cite le passage exact et la page d'où il vient. Quand les documents ne le disent pas, la réponse le dit.
Le problème réglé
Le RAG naïf découpe le texte au nombre de caractères et classe par similarité cosinus seulement. Il brouille les identifiants exacts comme 21 CFR Part 11 ou SOP-QA-017, coupe une clause du document dont elle provient et laisse le modèle libre de mal recopier un chiffre ou de citer une page qu'il n'a jamais vue. En contexte de conformité, ce n'est pas un problème de qualité, c'est un risque juridique.
réponses à citations vérifiées sur les questions enregistrées
mesuré
1 / 1
question hors corpus déclinée, sans deviner
mesuré
441 Mo
de mémoire au pic, deux modèles locaux chargés, instance de 512 Mo
mesuré
0,00 $
de coût marginal par question sur la pile gratuite
mesuré
Comment ça marchepour les équipes techniques
En termes techniques
Un moteur de recherche pour procédures opératoires normalisées et manuels réglementaires, qui ne répond qu'en citant la source. La recherche vectorielle et la recherche par mots-clés s'exécutent dans une seule requête PostgreSQL et sont fusionnées, un cross-encoder retient les trois meilleurs passages, et chaque citation renvoyée par le modèle est vérifiée contre le document stocké avant que quiconque la voie. Quand les documents ne le disent pas, la réponse le dit. La démo publique fonctionne à coût nul sur des modèles gratuits.
Architecture
PyMuPDF extrait les blocs de mise en page de chaque page, puis un segmenteur structurel les regroupe le long des titres en segments de 400 jetons avec un chevauchement de 60 jetons. Suivant le patron Contextual Retrieval d'Anthropic, chaque segment est stocké avec un préambule de mise en situation, et son embedding comme sa colonne tsvector générée sont construits à partir de ce texte. Une seule requête SQL exécute une recherche cosinus pgvector sur un index HNSW (m=16, ef_construction=64) et une recherche plein texte sur un index GIN, puis fusionne les deux listes par Reciprocal Rank Fusion (k=60) dans une CTE. Un cross-encoder lit la question avec chacun des candidats fusionnés, jusqu'à 50, et en garde 3. Le modèle doit renvoyer un JSON strict contenant une réponse, un score de confiance et des citations textuelles, ou un verdict explicite de contexte insuffisant. Le serveur réancre chaque citation dans le texte stocké du segment, écarte ce qui ne correspond pas, tire les titres et les numéros de page de la base de données et refuse de livrer une réponse dont aucune citation ne survit. La génération passe par une chaîne ordonnée de modèles OpenRouter gratuits avec repli, et Claude, les embeddings OpenAI et Cohere Rerank v3.5 s'activent par simple paramètre.
Pile technique
Python 3.12
FastAPI
Pydantic v2
PostgreSQL
pgvector (HNSW)
tsvector (GIN)
Reciprocal Rank Fusion
fastembed (ONNX)
OpenRouter
PyMuPDF
Render
Éléments de preuve
Sept exécutions réelles enregistrées le 14 octobre 2026 et publiées telles que le service les a renvoyées. Elles montrent que le pipeline fonctionne, pas à quelle fréquence il a raison, et un test retrouve chaque citation enregistrée mot pour mot dans le PDF d'exemple, à la page citée.
Une citation ne peut pas être inventée. Elle est comparée au segment stocké, jamais au préambule généré, après normalisation Unicode et typographique, et le modèle ne fournit jamais de numéro de page.
La suite hermétique n'a besoin ni de réseau, ni de base de données, ni de clé API, et s'exécute avec ruff à chaque push. Des tests optionnels sur un vrai PostgreSQL vérifient que la fusion SQL concorde avec son jumeau Python à 1e-9 près et qu'EXPLAIN utilise l'index HNSW.
Tient dans une instance gratuite de 512 Mo. Trois changements de mémoire, dont la désactivation de l'arène mémoire d'ONNX Runtime, ont fait passer le service de 856 Mo à 441 Mo au pic, les deux modèles locaux chargés.
Démo verrouillée par conception pour l'Internet public. Le téléversement exige la clé de l'opérateur, les questions sont plafonnées par visiteur et par jour, et l'allocation gratuite du jour est lue chez OpenRouter même, si bien qu'un redémarrage ne peut pas l'effacer.
Sur les sept exécutions, la médiane est de 1,4 s pour la recherche (embedding, SQL, reclassement) et de 6,8 s de bout en bout, sur des modèles gratuits. La requête SQL elle-même prend environ 170 ms, et la génération représente l'essentiel du reste.
Pipeline de requête
01
Ingestion
Blocs PyMuPDF, segments de 400 jetons selon les titres, préambule contextuel
02
Indexation
pgvector HNSW et index GIN sur un tsvector généré, une seule table
03
Recherche
Cosinus dense et plein texte dans une seule requête SQL
04
Fusion
CTE de Reciprocal Rank Fusion, k=60, jusqu'à 50 candidats
05
Reclassement
Cross-encoder qui lit question et passage ensemble, en garde 3
06
Vérification
Réponse JSON stricte, citations réancrées dans le texte stocké, pages tirées de la base
Prochaines étapes planifiées
03 / Phase 3 · JalonLivraison, jours 61 à 90
En cours de réalisation
Agents d'opérations supervisés
Pipeline d'opérations multiagent autonome
Un assistant IA qui vérifie l'inventaire, rédige les fiches produits pour chaque canal de vente, vérifie chaque affirmation au regard de la réglementation et attend qu'une personne approuve tout ce qui est risqué.
LangGraph
Python
PostgreSQL Checkpointers
Structured Tool Calling
Claude Sonnet
+3 autres: GPT-4o-mini, FastAPI, Webhooks
100%
des mutations à haut risque soumises à un point de contrôle humain
cible
Rejeu complet
de l'état depuis n'importe quel point de contrôle
cible
2 niveaux
de cascade de modèles selon la complexité de la tâche
cible
04 / Phase 4 · Projet synthèseLivraison, jours 91 à 120
En cours de réalisation
Contrôle qualité de l'IA
Passerelle LLMOps de production et suite d'évaluation CI/CD
Un point de contrôle devant chaque appel à l'IA : il enregistre ce qui s'est passé et ce que ça a coûté, réutilise les réponses aux questions répétées et bloque un changement qui dégrade les réponses avant qu'il n'atteigne vos clients.
FastAPI Reverse Proxy
Redis Vector Similarity Cache
Langfuse Tracing
DeepEval
Ragas
+1 autres: GitHub Actions CI/CD
< 15 ms
temps de réponse sur succès de cache
cible
0.96
seuil cosinus pour la résolution par la cache
cible
5%
plafond d'hallucination qui bloque une PR
cible
~65%
de réduction du coût d'inférence grâce à la cache
cible
Produit phare · Code source ouvert
NextBlock CMS: un CMS full-stack natif IA, construit de bout en bout.
Les générateurs par prompt vous remettent du code à héberger et à rapiécer. WordPress vous remet des plugins à surveiller. NextBlock transforme des blocs de contenu typés dans PostgreSQL en un site web qu'une équipe entière peut faire tourner: un éditeur de style Notion pour les rédacteurs, des React Server Components pour le site public et un serveur MCP pour que les agents de codage construisent des pages avec le protocole qu'ils parlent déjà.
nextblock.dev · v0.21.3
Créateur, concepteur et développeur principal
Le CMS full-stack natif IA et à code source ouvert pour Next.js 16, Supabase et Tailwind CSS.
C'est le projet qui compile tout le reste de cette page dans une seule base de code: conception de schéma relationnel et sécurité au niveau des lignes, un éditeur que des gens non techniques utilisent vraiment, du commerce où circule de l'argent réel, du routage de modèles avec solutions de repli, un serveur MCP aux outils typés, une CLI, un pipeline de publication pour huit paquets et un parcours de déploiement qui ne demande à l'utilisateur rien d'autre qu'un compte administrateur.
C'est aussi là que la thèse de l'IA appliquée est mise à l'épreuve auprès d'utilisateurs réels. Cortex AI ne greffe pas un robot conversationnel sur un CMS. Les agents modifient le contenu par des arguments d'outils Zod stricts, les outils de mutation demandent confirmation avant de s'exécuter, les brouillons sont préparés de façon non destructive et les clés sont chiffrées au repos.
version
v0.21.3
licence
Noyau AGPL-3.0-or-later, modules premium à code source disponible
depuis
Première publication npm en octobre 2025. Dépôt public en janvier 2026.
Chaque chiffre est public et daté. Rien ici n'est estimé.
200k+
lignes de TypeScript
Décompte des lignes du dépôt, instantané de juin 2026: 115 944 lignes de code TS et 88 666 lignes TSX
8
paquets npm à une seule version
create-nextblock et @nextblock-cms/{ui, utils, db, editor, sdk, ecom, cortex} en 0.21.3
191
versions de la CLI depuis oct. 2025
Historique des versions de create-nextblock sur le registre npm
11.5k
téléchargements de la CLI en 30 jours
Décomptes de téléchargements npm, du 8 septembre au 7 octobre 2026
100 / 100
Lighthouse, les quatre catégories
Build de production: 0,3 s FCP, 0,8 s LCP, 0 ms TBT, 0 CLS
146
fichiers de tests Vitest
Arborescence du dépôt, octobre 2026
56
outils MCP exposés aux agents
Fiche du serveur MCP en ligne sur cms.nextblock.dev, 9 octobre 2026
620+
commits
GitHub, branche master, octobre 2026
01
Des blocs comme données, pas comme code
Moteur de contenu
Chaque bloc est une ligne JSONB dans PostgreSQL. Les pages se publient directement depuis la base de données, sans rebuild, et les éditeurs peuvent définir de nouveaux types de blocs à l'exécution.
Éditeur Tiptap de style Notion avec commandes slash, glisser-déposer et IA intégrée dans chaque bloc de texte, publié sous @nextblock-cms/editor.
13 types de blocs intégrés, dont des sections multicolonnes imbriquées, des formulaires, des grilles de produits, le panier et le passage à la caisse.
02
Le schéma est la source de vérité
Modèle de données et de sécurité
Postgres Supabase avec une couche de sécurité au niveau des lignes consolidée, des migrations en avant seulement et des secrets chiffrés avant d'atteindre une ligne.
Trois rôles (ADMIN, WRITER, USER) appliqués par un déclencheur de base de données qui promeut la première inscription au rang d'administrateur, de sorte que chaque installation compte exactement un administrateur garanti.
RLS sans avertissement dans Supabase Advisor: une politique permissive par rôle et par commande, appels auth enveloppés dans (select ...) pour n'être évalués qu'une fois par instruction, déclencheurs SECURITY DEFINER révoqués pour anon et authenticated.
03
Les agents comme éditeurs de plein droit
Cortex AI et le serveur MCP
Le CMS est un serveur MCP. Claude Code, Cursor, Codex ou tout autre client peut lire le schéma et écrire des pages par Streamable HTTP avec un jeton bearer à portée limitée.
56 outils sur la fiche du serveur en ligne, de create_page_layout et publish_content_draft à describe_database_schema et translate_content_bulk. Inscrit au registre MCP officiel sous dev.nextblock/nextblock; chaque site sert /llms.txt et /.well-known/mcp/server-card.json.
Les outils de mutation renvoient d'abord une phrase de confirmation et ne s'exécutent qu'après l'accord de l'utilisateur. Les annotations d'outils déclarent les indices destructive, idempotent et read-only.
04
De l'argent réel, des cas limites réels
Commerce Pro
Un module premium avec deux fournisseurs de paiement, tarification multidevise, soldes planifiées, zones d'expédition, taxes, inventaire et commandes, verrouillé par activation de paquet.
Les produits physiques passent à la caisse par Stripe, les produits numériques par Freemius; les paniers mixtes sont rejetés au niveau de l'API.
Multidevise avec prix par devise, rafraîchissement des taux de change et cinq modes d'arrondi, dont le prix psychologique.
05
Zéro variable d'environnement
Distribution et expérience développeur
Un clic sur Vercel, une commande en local, ou laissez un agent de codage faire l'installation. Les mises à jour fusionnent l'amont sans casser les modifications locales.
Déploiement Vercel en un clic: l'intégration Supabase Marketplace provisionne la base de données et injecte les clés avant le premier build. L'utilisateur ne remplit rien d'autre qu'un compte administrateur.
Le mode Docker autohébergé démarre Postgres, GoTrue, PostgREST, Kong, MinIO et l'application en une commande, sans aucun compte infonuagique.
06
100 / 100, pas un plugin
La performance par défaut
Des scores Lighthouse parfaits sur le build de production parce que les valeurs par défaut sont les bonnes: rendu côté serveur, AVIF/WebP avec cache d'un an, CSS critique intégré en ligne, imports élagués par tree-shaking.
Build de production. 0,3 s de First Contentful Paint, 0,8 s de Largest Contentful Paint, 0 ms de Total Blocking Time, 0 de Cumulative Layout Shift.
Les routes publiques de pages, d'articles et de produits sont des React Server Components; les composants client sont réservés au panier, au passage à la caisse, aux formulaires et au tableau de bord du CMS.
0,3 s de First Contentful Paint, 0,8 s de Largest Contentful Paint, 0 ms de Total Blocking Time, 0 de Cumulative Layout Shift.
Pile technologique
Next.js 16
React 19 Server Components
TypeScript
Supabase (Postgres, GoTrue, Storage)
Tailwind CSS v4
Tiptap 3
Nx 23
Vitest
Zod 4
Vercel AI SDK
OpenRouter
Model Context Protocol
Stripe
Freemius
Cloudflare R2 / MinIO
Docker
Vercel
GitHub Actions
Chronologie
Oct. 2025
Première version de create-nextblock sur npm
Janv. 2026
Dépôt public sous nextblock-cms
Sept. 2026
v0.21.3 sur les huit paquets
Oct. 2026
Fiche du serveur MCP en ligne, flux de publication au registre en place
Ce que ce projet démontre
Architecture de bases de données
Migrations en avant seulement, base de référence condensée, RLS avec politiques validées par l'Advisor, tables de révisions et de brouillons, et stockage de blocs JSONB avec contraintes CHECK.
Ingénierie en IA appliquée
Un serveur MCP avec outils de mutation soumis à confirmation, appels d'outils typés, diffusion SSE, routage de modèles avec repli vers des modèles gratuits et stockage chiffré des clés.
Expérience produit et développeur
Un parcours de déploiement sans variables d'environnement, une CLI à 191 versions, une commande de mise à jour par fusion à trois voies et un bac à sable qui se réinitialise toutes les 15 minutes.
Paiements et surfaces de conformité
Passage à la caisse Stripe et Freemius, webhooks, arrondi multidevise, soldes planifiées, taxes et zones d'expédition.
Ingénierie de la performance
100 / 100 à Lighthouse sur le build de production, avec rendu côté serveur, optimisation des images et CSS critique par défaut.
Gouvernance de projet à code source ouvert
Noyau AGPL, fichiers CONTRIBUTING, SECURITY et code de conduite, guides pour agents dans .agent/skills, et huit paquets publiés de concert.
Des sites web et des boutiques en ligne depuis 2004.
Avant les modèles de fondation, il y avait des boutiques en ligne, des systèmes de contenu et des pages de campagne qui devaient fonctionner le jour du lancement. Une sélection, regroupée par usage. Le travail accompli en emploi est attribué à l'employeur; tout le reste est indépendant.
Travail en emploi
Réalisé comme développeur web principal chez New Roots Herbal Inc. Ces propriétés web appartiennent à l'entreprise.
Indépendant
Produits personnels, mandats clients et expérimentations. Les miens, du début à la fin.
PlateformeTravail en emploiLangues EN / FR
newrootsherbal.com: refonte complète de la plateforme
Reconstruction complète de la présence web d'un fabricant de produits de santé naturels établi depuis 40 ans, sur Laravel 13: un CMS PHP sur mesure et une boutique en ligne, tous deux écrits à partir de zéro pour remplacer des dépendances tierces héritées.
Système de gestion de contenu sur mesure pour les produits, les pages et les campagnes, conçu pour l'équipe marketing qui l'utilise chaque jour.
Boutique en ligne avec catalogue, panier et passage à la caisse, ainsi que les outils de gestion interne qui la font tourner.
Localisateur de magasins bâti sur l'API Google Maps et système d'inventaire en temps réel avec synchronisation de base de données sans aucune défaillance.
Migration sans interruption de service vers une infrastructure correctement dimensionnée, réduisant les coûts d'hébergement de plus de 40 %.
Dix-huit pages d'atterrissage pour les gammes de produits et les thèmes de santé de New Roots Herbal: des microsites Next.js autonomes sur leurs propres sous-domaines, plus des pages servies par la plateforme Laravel. Chacune est un entonnoir mesuré, conçu pour être lancé vite et convertir.
Produits personnels, mandats clients et expérimentations. Les miens, du début à la fin.
PersonnelIndépendant
Ryūgū: Dix nuits vers le palais du Dragon
Un compagnon de voyage par chapitres pour un périple de onze jours autour du Japon et de Jeju: l'itinéraire, les légendes de dragons derrière chaque port, un programme jour par jour, l'étiquette, des phrases et du vocabulaire. Conçu d'abord comme une expérience de lecture.
Le compagnon du roublard de D&D 5e: traduisez l'anglais ou le français en Thieves' Cant, avec un dictionnaire, des symboles de guilde et des signes de vagabonds. Prototypé avec v0, terminé à la main.
Un système de pointage à l'arrivée et au départ en temps réel pour les travailleurs de chantier: un portail pour les travailleurs et un tableau de bord superviseur qui montre qui est sur le chantier en ce moment. Un exercice technique, gardé en ligne pour la démonstration.
Une référence interactive pour chaque hook React, de useState à useImperativeHandle, avec des exemples en direct et un sélecteur de thème. Un bac à sable pédagogique, gardé en ligne pour la démonstration.
Site vitrine bilingue pour un studio d'enregistrement montréalais qui fait aussi de l'animation DJ et d'événements, de la location d'équipement et des cours de musique en ligne, avec un parcours de demande de soumission et une galerie.
Entreprise personnelleIndépendantLangues FR / ENFondée en 2012
PcSquad
Ma première entreprise : un atelier régional de réparation d'ordinateurs et de création de sites web que j'ai fondé et dirigé comme propriétaire et PDG de 2012 à 2018, au service des particuliers et des PME des environs des Coteaux. Le site est toujours en ligne, bilingue, tel quel.
Près de deux cents outils, et chacun a un rôle dans un système réel, des années de consultation en 2012 jusqu'au travail actuel en IA appliquée. Survolez ou touchez une tuile pour voir où elle est utilisée et jusqu'où va l'expérience.
Toutes les catégories, groupées par domaine.
195 outils
IA appliquée et orchestration de LLM
13
Modèles frontières et ouverts
9
Recherche, vecteurs et données
11
Langages et balisage
21
Frameworks et web moderne
23
Infrastructure et systèmes
31
LLMOps et évaluation
5
Outils de développement et codage IA
21
Design et médias
19
Marketing, analytique et paiements
11
Productivité et collaboration
15
Soutien TI et sécurité
16
Parcours et évolution de carrière
Huit ans de fiabilité en production, rehaussés par l'ingénierie de l'IA appliquée.
Le plus difficile en IA d'entreprise, ce n'est pas l'appel au modèle. C'est le pipeline de données qui l'alimente, le schéma qui le contraint, le repli qui le rattrape et la télémétrie qui prouve que ça a fonctionné. C'est le travail que je fais depuis 2018, désormais orienté vers les modèles de fondation.
Fondateur
Oct. 2025 à aujourd'huiGrand Montréal, QC
En poste
Créateur et développeur principal
NextBlock CMS (open source)
Conception et développement d'un CMS open source natif IA pour Next.js 16 et Supabase, organisé en monorepo Nx: schéma de base de données et sécurité au niveau des lignes, éditeur de blocs, commerce, serveur MCP, CLI et pipeline de publication de huit paquets npm.
Architecture du modèle de contenu: chaque bloc est une ligne JSONB dans PostgreSQL, les types de blocs personnalisés sont des données (champs typés et schéma de mise en page protégés par des contraintes CHECK), et les pages se publient sans reconstruction.
Livraison de Cortex AI: un serveur MCP sur Streamable HTTP avec jetons bearer à portée limitée et 56 outils, mutations soumises à confirmation, appels d'outils typés avec Zod et diffusion SSE, routage OpenRouter avec repli vers des modèles gratuits, et stockage chiffré en AES-256-GCM des clés fournies par l'utilisateur.
Mise en place du parcours de déploiement sans aucune variable d'environnement: l'intégration Supabase de Vercel provisionne la base de données, les migrations unidirectionnelles s'appliquent lors de la première compilation, et l'assistant de configuration offre un repli à l'exécution.
Maintenance de 8 paquets npm publiés sous une version unique (0.21.3), de 146 fichiers de tests Vitest et d'une GitHub Action de synchronisation quotidienne avec l'amont. La CLI compte 191 versions publiées et 11,5 k téléchargements dans les 30 jours précédant le 7 octobre 2026.
Score Lighthouse de 100/100 dans les quatre catégories sur la version de production: LCP de 0,8 s, Total Blocking Time de 0 ms, Cumulative Layout Shift de 0.
Next.js 16
React Server Components
TypeScript
Supabase
PostgreSQL
Tailwind CSS v4
Tiptap
Nx
Vitest
Vercel AI SDK
MCP
Stripe
Docker
Emploi
Nov. 2018 à aujourd'huiVaudreuil-Dorion, QC
En poste
Développeur web principal et intégration de l'IA appliquée
New Roots Herbal Inc.
Responsable de la fiabilité en production, de l'architecture des données et de l'infrastructure de l'ensemble du parc numérique de l'entreprise, et chef de file de l'intégration de l'IA générative dans les opérations quotidiennes.
Architecture et déploiement d'un pipeline interne d'actifs générés par IA multimodèle (Claude, OpenAI Codex et Gemini), ramenant le délai de production des actifs du catalogue de produits de plusieurs semaines à 40 minutes par SKU: un gain de 10x en débit de production.
Conception d'architectures d'ingestion de données à haute disponibilité, avec consolidation des bases de données relationnelles et déploiement d'une recherche hybride (indexation lexicale creuse et vectorielle dense) sous validation Pydantic stricte, éliminant des dépendances envers des fournisseurs tiers hérités et économisant plus de 90 000 $ en licences logicielles.
Direction de la modernisation de l'infrastructure de plus de 30 propriétés numériques en production, avec des migrations de serveurs sans interruption de service et une réduction de plus de 40 % des coûts d'infrastructure infonuagique.
Conception de la télémétrie, du suivi d'attribution et d'entonnoirs de déploiement automatisé rapide, générant plus de 300 000 $ de revenus additionnels en une seule campagne de 30 jours.
Développement de microservices d'affaires sur mesure, dont un localisateur de magasins interne et un système de gestion des stocks en temps réel avec synchronisation de bases de données sans défaillance.
Laravel
PHP
MySQL
PostgreSQL
Node.js
Angular
React
Linux VPS
cPanel/WHM
Claude
Codex
Gemini
Pydantic
Fondateur
2012 à 2018Les Coteaux, QC
Fondateur technique
PcSquad
Fondation et exploitation d'une firme-conseil régionale en solutions TI et en infrastructure web.
Gestion des livrables clients sur tout leur cycle de vie: cadrage, développement logiciel sur mesure, déploiement et soutien continu.
Administration de systèmes, configuration de réseaux et diagnostics matériels pour des petites et moyennes entreprises.
Responsable des volets financier, juridique et marketing de l'entreprise, y compris le référencement (SEO) et l'acquisition payante.
PHP
JavaScript
WordPress
Windows Server
Linux
Networking
Hardware Diagnostics
Service militaire
2013 à 2016BFC Valcartier, QC
Vétéran des Forces armées
Génie électrique et mécanique royal canadien (GEMRC)
Discipline militaire, diagnostics électromécaniques, maintenance de systèmes de précision et exécution posée dans des conditions critiques.
Diagnostic et réparation de systèmes d'armes, de pièces d'artillerie et d'équipement électromécanique selon des tolérances rigoureuses.
Formation en soudure, en systèmes électriques, en hydraulique et en premiers soins. C'est là que j'ai appris à suivre une liste de vérification quand ça compte le plus.
Pince-sans-rire, franc, les pieds sur terre
À propos de moi: la vraie couche humaine
Vraie photo. Pas générée. Légèrement compressée.
Je construis pour le web depuis 2004. En années techno, ça veut dire que j'ai survécu aux mises en page en tableaux, aux intros Flash, à la renaissance de PHP, aux guerres de frameworks JavaScript et maintenant à la ruée vers l'or de l'IA.
Je prends l'architecture, la validation de schémas et la fiabilité des bases de données très au sérieux. Moi-même? Pas tellement.
Je construis pour le web depuis 2004
En affaires depuis 2012
En production chez New Roots Herbal depuis 2018
La vérité sans fard
Ces chiffres sont présentés hors contexte pour que j'aie l'air bon. La transparence des données compte, alors voici la méthodologie derrière chacun.
020
Années d'études
Calculées de la maternelle à l'université, parce que la transparence des données compte.
En direct
Heures de soutien
Comptées en 24/7 depuis l'ouverture de PcSquad en 2012. Le compteur tourne en direct. Moi aussi, la plupart du temps.
0,00 %0,00 %
Tolérance aux hallucinations en production
Mesurée au moment de la fusion. Le pipeline CI s'en charge pour que je n'aie pas à le faire.
0,0 %68,6 %
des statistiques sur le web sont inventées
Y compris celle-ci. Tout ce qui précède a une source.
Tests en conditions réelles
Si un modèle d'IA n'arrive pas à lire une facture ou hallucine des calculs de taxes, il n'est pas fusionné. Point final.
En dehors des fenêtres de terminal
Stratège de table
D&D et Magic: The Gathering, format Commander. Je construis mes decks comme je construis mes systèmes: la redondance d'abord.
Fumeur de brisket au BBQ
Quatorze heures à 107 °C. À basse température, lentement, et consigné dans un tableur.
Tacticien aux échecs
Préfère les longues parties positionnelles aux feux d'artifice tactiques. Comme en production.
Passionné de matériel et de double démarrage
Debian pour le travail, Windows pour les jeux, et un tiroir plein de câbles SATA dont j'aurai certainement besoin un jour.
Contact
Vous recrutez, ou le travail s'accumule? Parlons-en.
Poste permanent, contrat ou placement par votre agence : tout est bienvenu. Si les factures, les documents ou les courriels de clients s'accumulent, décrivez le problème dans vos mots et je vous dirai ce qu'il faudrait.
Ouvert aux postes permanents, contrats et mandats d'agence · Montréal, hybride ou à distance (Canada et É.-U.)
Postes visés : développeur en IA appliquée, Forward Deployed Engineer (FDE), solutions IA et développeur full-stack senior axé sur l'IA.
Pour les équipes techniques : la validation de schéma, les budgets de latence et les modes de défaillance sont des exigences, pas des détails.