system onlinelast shipped 0 min agonumbers refreshed Jun 4, 2026, 21:09 ET
Accueil
programmes · code en production

Du code qui compose.

Agents vocaux, hubs sectoriels, backends sur mesure. Du logiciel qui mérite son frais mensuel.

$0K
CAD routés
0
contrats signés
0
msgs envoyés
live numbersISR · refreshed hourly

What our production system has handled

Aggregated across every tenant. Pulled live from Postgres at build time.

0
Leads in pipeline
across tenants
0
Outbound messages
SMS + email shipped
recent production eventsanonymized · last 7 days
  • Lead captured· QC windows installer
    3d ago
  • Devis sent· Quebec residential trades
    3d ago
  • Devis sent· Roofing operator
    3d ago
  • Lead captured· Quebec residential trades
    3d ago
  • Message dispatched· Trades multi-service
    3d ago
  • Message dispatched· QC windows installer
    3d ago
  • Lead captured· Roofing operator
    21d ago
  • Devis sent· Trades multi-service
    21d ago
last shipped to prod0 min ago

feat(storefront): tri-lingual /websites + /programmation split, retire /work chooser (clarity sprint)

904b6a3·BitMike1991main

stack de prod

Next.jsReactSupabasePostgresVerceln8nRetellTelnyxMailgunGmail OAuthOpenAIAnthropicStripeMeta AdsSlackTailwind

Les mêmes outils qu'on utilise pour les clients font rouler cette page.

01 / 05

Plateforme BlueWise

1 case

Le SaaS multi-tenant lui-même — la colonne dont tous les autres builds partent.

multi-tenant SaaS

BlueWise Platform

OS multi-tenant pour business de métier

CRM, réceptionniste IA, flow devis → contrat → paiement Interac automatisé, dashboard financier, monitoring uptime Sentinelle. Une seule install roule N tenants avec full isolation RLS.

what made it hard

Architecture multi-tenant avec row-level security sur chaque table, résolution de tenant pinned par host, branding par tenant via config JSON — ajouter le tenant N+1 demande zéro changement de code.

Next.jsReactSupabasePostgresVercelTailwind
/platform
$71K
pipeline
12
active jobs
0
missed calls
leadNew tenant onboarded · Quebec windows installer12d ago
quoteDevis routed · Roofing operator14m ago
signedContract signed · Trades multi-service47m ago
acceptedSentinelle alert ack · all systems green2h ago
02 / 05

Hubs en ligne

2 cases

Ouvre-les dans un autre onglet. Vrais, fonctionnels, aucun mur de signup.

live · public

Hub Fenêtre

Hub de soumissions de fenêtres sur mesure

Wizard de commande 6 étapes, catalogue de 200+ SKU, dispatch fournisseur automatique, génération BDC + devis + contrat, suivi des paiements Interac. Agent vocal en développement pour prendre les devis au téléphone.

what made it hard

Validation des dimensions au millimètre près, combinatoire épaisseur de cadre × thermos × egress, modèle de prix list-minus avec rabais par fournisseur, claim atomique de project_ref entre users concurrents.

Next.jsReactSupabaseVercelRetellTelnyx
hub-fenetre.bluewiseai.com/hub?embed=1
live
live · public

Hub Toiture

Calculateur de soumissions toiture + intégration CRM

Wizard de mesure 6 étapes avec variables pente / surface / type de bardeau, calcul de marge en temps réel, save-as-job crée lead + devis + record interne roof_quote en une transaction. Agent SMS en développement.

what made it hard

Math bidirectionnel coût vs revenu (modèles cost+ vs list−), gestion taxe sur taxe pour TPS+TVQ du Québec, préfixe par tenant sur les project refs, le record de marge interne ne leak jamais côté client.

Next.jsReactSupabaseVercelTelnyx
hub-toiture.bluewiseai.com/hub/toiture?embed=1
live
03 / 05

Études de cas Opérations

2 cases

Vrais clients anonymisés qui roulent CRM + agents IA en production.

in production

Installateur de fenêtres et toitures au Québec

anonymized · NDA

Lead → devis → contrat → Interac → facture — full automatisé

Remplacé 3 outils déconnectés (devis sur papier, pipeline Excel, facturation manuelle) par un seul CRM qui roule sur la Plateforme BlueWise. Le patron signe ses contrats sur son cell, les commandes fournisseur partent la même journée, les dépôts atterrissent dans Interac avant que le truck quitte.

what made it hard

Onboarding en plein vol — 13 projets in-flight devaient migrer sans perdre une seule signature client. Règles de prix hardcodées par fournisseur (Royalty / Novatech / Touchette) vivent en DB, pas dans le code.

SupabaseNext.jsMailgunTelnyxSlack
platform.bluewiseai.com
$71K
pipeline
12
active jobs
0
missed calls
leadNew lead · Quebec windows installer3m ago
quoteDevis sent · Roofing operator14m ago
acceptedDevis accepted · QC trades47m ago
signedContract signed · Window installer2h ago
paidInterac deposit received3h ago
in production

Opérateur de services résidentiels au Québec

anonymized · NDA

Réceptionniste IA + rescue d'appels manqués + stack ops complète

Agent vocal IA qualifie les appels entrants 24/7, le rescue SMS d'appel manqué se déclenche en moins de 30s, les leads qualifiés tombent dans le CRM avec l'intention + le budget + le timeline déjà capturés. Pipeline devis-au-paiement complet en arrière.

what made it hard

L'agent vocal devait gérer les accents québécois prononcés + le switch bilingue en plein appel + le transfert au patron seulement sur les prospects chauds. L'alerting Sentinelle attrape chaque silent failure avant que les clients s'en aperçoivent.

Appels gérés par IA
$71K+
Pipeline généré
0
Appels manqués
RetellTelnyxSupabaseNext.jsn8nOpenAI
platform.bluewiseai.com
$71K
pipeline
12
active jobs
0
missed calls
leadAI receptionist took call · transferred warm11m ago
quoteMissed-call SMS rescue dispatched34m ago
acceptedQualified lead landed in CRM1h ago
paidQuote-to-pay completed4h ago
04 / 05

Pipelines d'automatisation

3 cases

Pipelines n8n universels à travers les tenants — branche une fois, ça roule pour toujours.

cross-tenant

anonymized · NDA

Formulaire rempli à lead qualifié en moins de 30 secondes

Webhook Meta → normalisation des champs → dedup de lead par téléphone → routing par division → SMS de confirmation au client → alerte Slack au patron. Universel à travers les tenants — le même workflow roule pour n'importe quel tenant qui connecte sa page Meta.

what made it hard

Matching de champs case-insensitive, distinction n8n entre null-string et vrai null, alignment FK vers leads/customers, validation des digits de téléphone par locale.

n8nMeta AdsSupabaseTelnyxSlack
Meta Lead Ads
n8n normalize
CRM ingest
SMS confirm
Slack alert
latency
<30s
throughput
24/7
tenants
all
cross-tenant

anonymized · NDA

Email entrant → classification IA → event CRM → approbation du patron

Poll IMAP → dedup par message-id → l'IA classifie (lead / question / spam / facturation) → drafte une réponse → poste sur Slack pour approbation du patron → envoie via Gmail OAuth ou fallback Mailgun.

what made it hard

Dedup par message-id entre réponses et originaux, rotation de token OAuth qui survit à des envois concurrents, chaîne de fallback qui double-deliver pas en silence.

n8nGmail OAuthMailgunOpenAISlackSupabase
IMAP poll
AI classify
Slack approve
Send (Gmail / Mailgun)
latency
<60s
throughput
24/7
tenants
all
cross-tenant

anonymized · NDA

Appel entrant → qualification live → lien de devis par SMS avant que l'appel raccroche

L'agent vocal Retell qualifie le prospect (intention, budget, timeline, adresse), crée un job + un devis draft dans le CRM via tool-call, envoie au prospect un lien de devis personnalisé par SMS pendant qu'il est encore sur l'appel.

what made it hard

Budgets de latence sur les tool-call qui restent sous le seuil de pause conversationnelle, création de job idempotente si l'agent retry, triggers de transfert vers humain sur les prospects chauds seulement.

Retelln8nSupabaseTelnyxOpenAI
Inbound call
Retell qualify
Draft job + quote
SMS devis link
latency
live
throughput
pre-hangup
tenants
all
05 / 05

Apps custom sous le capot

4 cases

Apps internes custom qui font marcher la plateforme sous le capot.

200+ SKUs

anonymized · NDA

200+ SKU, dimensions au millimètre près, math de prix en temps réel

Catalogue configurable : cadres PVC, hybride, aluminium ; thermos double / triple ; mode egress ; moustiquaire ; 7 combinaisons collection-couleur ; règles de prix par fournisseur. Rend des sketchs SVG qui flow jusqu'au devis, contrat et BDC sans changer.

what made it hard

Gestion de la tolérance des dimensions (steps de 1/16" pour les portes patio), sanitization des specs à travers 4 formats de fournisseurs, renderer SVG qui dessine les fenêtres avec la géométrie correcte des meneaux depuis un code de config plat.

ReactSupabaseNext.js
window-catalog.spec
// 1/16" tolerance, 4 supplier formats, SVG mullion renderer
$ configureWindow({ type: "battant", w: 36.5, h: 60 })
frame: PVC | hybride | aluminum
thermos: double | triple
egress: auto-validated against QC building code
collection: 7 colors × 4 supplier rule sets
moustiquaire: optional · pivot or fixed
─────────────────────────
render: SVG sketch → flows to devis + contract + BDC
price: list-minus rebate model · per-supplier
✓ spec sanitized across 4 supplier formats
✓ atomic project_ref claim under concurrent users
bidirectional math

anonymized · NDA

Wizard 6 étapes → math bidirectionnel coût ↔ revenu

Mesure de surface (avec multiplicateur de pente), type de bardeau, accessoires (ventilation, gouttière, fascia), main d'œuvre + dispose. Calcule à la fois la marge cost-plus ET le modèle de rabais list-minus pour que l'entrepreneur choisisse le framing par job.

what made it hard

Composition de taxe sur taxe (TPS + TVQ du Québec), ligne unique côté client qui cache le breakdown fournisseur, record de marge interne persisté séparément pour qu'il leak jamais.

ReactNext.jsSupabase
roof-quote.calc
// 6-step measurement → cost-plus + list-minus
$ computeRoofQuote({ surface: 142, pitch: "8/12" })
shingles: IKO Cambridge · charcoal · $1,847.20
underlay: WIP w/r 24" eaves · $312.60
labor: 14h @ $52/h · $728.00
dispose: 1 conteneur 20yd · $295.00
─────────────────────────
subtotal: $3,182.80
TPS+TVQ: $475.99 (tax-on-tax)
list-minus rebate: −$418.00
✓ total client-facing: $3,240.79
✓ internal margin record: $612.04 (RLS-isolated)
quote-to-cash

anonymized · NDA

Devis-au-paiement end-to-end, brandé par tenant

Page de devis publique /q/[token] → le client clique accepter → le contrat se génère automatiquement avec les infos des deux parties → e-signature → instructions de dépôt Interac → page de succès. Le patron reçoit Slack + SMS à chaque étape.

what made it hard

Tokens de devis CSPRNG (16 hex = 64 bits d'entropie, aucune énumération possible), création de contrat idempotente avec double tentative + alerte ops sur échec, PDF de contrat signé stocké dans Supabase Storage avec RLS scopé par tenant.

Next.jsReactSupabaseMailgunTelnyxSlack
/q/[token] devis
Client accepts
Contract gen
E-sign
Interac deposit
latency
~2 min
throughput
idempotent
tenants
all
silent-failure detection

anonymized · NDA

Attrape les bugs que personne a remarqués encore

Monitoring poll-based à travers les workflows n8n, les endpoints API, l'uptime de l'agent vocal, la deliverability email et le status des fonctions Supabase. Alerte le patron par Slack + SMS dans les 60 secondes d'un silent failure.

what made it hard

Distinguer un « zéro attendu » d'un « pipeline brisé qui retourne zéro ». Une rotation de clé Mailgun passée inaperçue pendant 138 jours a déclenché le build — le système que tu bâtis pour monitorer ton monitoring.

n8nSupabaseSlackTelnyx
sentinelle.tail
// poll every 60s, alert ≤ 60s after divergence
[OK] 2026-05-07 06:42:01 retell-agent uptime 99.98%
[OK] 2026-05-07 06:42:02 meta-lead-webhook 24h count: 47
[OK] 2026-05-07 06:42:03 email-pipeline OAuth: rotated 4d ago
[OK] 2026-05-07 06:42:04 hub-fenetre p95: 184ms
[INFO] 2026-05-07 06:42:05 mailgun-key-rotation T-138d → T-0d (handled)
WARN: meta-pixel-missing · tenant=demo (allowlisted)
[OK] 2026-05-07 06:42:06 contract-pdf-storage checksum: stable
[OK] 2026-05-07 06:42:07 voice-tool-call latency p95: 612ms
// "Distinguishes expected zero from broken pipeline returning zero."