0%
Aymen
Retour aux projets
WebLivré2026

Closini

Plateforme de messagerie client omnicanale — WhatsApp, Instagram, Messenger, Telegram, SMS et chat web dans une boîte de réception assistée par IA, avec un éditeur de workflows visuel.

Mon rôle
Ingénieur Full Stack
Période
févr. 2026 — août 2026
Statut
Livré
Closini
Aperçu

Closini est un SaaS de messagerie client qui réunit sept canaux (WhatsApp, Instagram, Messenger, Telegram, SMS, e-mail et chat web) dans une seule boîte de réception d'équipe, complétée par un assistant IA pour les réponses et un canevas d'automatisation façon Make, afin qu'une équipe support puisse tout router et traiter depuis un même écran.

Le serveur suit le domain-driven design avec CQRS : chaque intégration de canal reste en périphérie et le trafic est normalisé vers un modèle de conversation commun. Le client web s'accompagne d'une application mobile React Native, et la facturation se fait par siège via Stripe (offres Starter et Pro).

Le défi

Le problème à résoudre

Chaque canal parle son propre dialecte : payloads de webhooks, flux d'authentification, limites de débit et processus de validation différents — Meta exige à elle seule un App Review formel avant qu'une application puisse envoyer des messages aux Pages à grande échelle. Le problème d'ingénierie consistait à absorber ces protocoles dans un modèle de conversation cohérent sans que les intégrations ne contaminent le cœur du système.

API développeurs
API développeurs
La solution

Comment cela a été construit

Le serveur s'organise autour du DDD et de CQRS : les intégrations de canaux jouent le rôle d'adaptateurs en périphérie et normalisent les événements entrants vers un modèle de conversation commun, tandis que commandes et requêtes séparent les chemins d'écriture et de lecture.

L'automatisation repose sur un canevas de nœuds @xyflow inspiré de Make, et la monétisation sur une facturation Stripe par siège (Starter et Pro).

Fonctionnalités clés

Ce que ça fait

💬

Boîte unifiée, sept canaux

WhatsApp, Instagram, Messenger, Telegram, SMS, e-mail et chat web convergent dans une seule boîte de réception d'équipe.

🧩

Constructeur visuel de workflows

Un canevas de nœuds façon Make, construit sur @xyflow, pour automatiser le routage et les réponses entre canaux.

🤖

Assistant IA de réponse

Un assistant IA qui aide les agents à rédiger leurs réponses directement dans la boîte de réception.

💳

Facturation Stripe par siège

Offres Starter et Pro facturées par siège via Stripe.

📱

Application mobile native

Une application mobile React Native pour traiter la boîte de réception partagée depuis un téléphone.

Cas clients
Cas clients
Technologies utilisées

Construit avec

Frontend

Next.js

Next.js structure le client web — un tableau de bord multi-écrans couvrant boîte de réception, canevas de workflows, paramètres et facturation — avec des conventions de routage et de rendu qui tiennent quand les écrans se multiplient.

TypeScript

TypeScript garde les frontières DDD/CQRS rigoureuses : commandes, requêtes et payloads des API de canaux deviennent des contrats typés plutôt que du JSON libre.

Mobile

React Native

React Native permet à l'application mobile de réutiliser les mêmes compétences React, avec un seul code pour iOS et Android.

Backend

Node.js

La charge est presque entièrement de l'I/O — rafales de webhooks venant de chaque canal et appels d'API sortants — soit exactement le profil de concurrence que la boucle d'événements de Node gère bien.

Données

PostgreSQL

Conversations, messages, sièges et abonnements sont des données fortement relationnelles ; PostgreSQL apporte l'intégrité transactionnelle dont dépendent la facturation et l'état de la boîte de réception.

Redis

Redis porte l'état éphémère à forte rotation que génère une boîte de réception temps réel multicanale — des données chaudes qu'il serait coûteux de faire passer par la base relationnelle.