Initial CRM
Un CRM self-hosted, API-first, construit from scratch pour faire tourner le workflow commercial d'Initial Infrastructures. Single-tenant by design, single-binary à déployer, et conçu pour recevoir sa donnée depuis des systèmes amont (Crawlswarm notamment) plutôt que d'être un endroit où des humains la collent à la main.
Ce qu'il gère : sociétés, contacts, leads, deals, pipelines personnalisables avec étapes, journal d'activités, tags, et un dashboard avec Recharts. Boards de pipeline en drag-and-drop via dnd-kit pour que l'équipe commerciale déplace les opportunités au geste, pas au formulaire.
API-first : endpoints d'ingestion dédiés pour les imports batch
(sociétés, contacts, résultats de scraping) et une API d'intégration scopée
(crm.companies:read, crm.contacts:write, etc.) pour les flux
machine-to-machine. Crawlswarm pousse directement ses leads enrichis dans
le CRM via une clé API, sans étape d'export manuelle.
Stack : React 18 + TypeScript + Vite + Tailwind côté frontend (Recharts pour les graphes, dnd-kit pour le drag-and-drop, primitives Radix pour popovers et menus). Express 4 + TypeScript côté backend avec better-sqlite3 pour la persistance - SQLite choisi exprès pour la simplicité d'un fichier unique à sauvegarder et migrer.
Déploiement : un seul process Node derrière Caddy (HTTPS auto) ou Nginx, supervisé par systemd. Le backend sert aussi le frontend buildé en production, donc un VPS, un service, un reverse proxy, c'est tout ce qu'il faut.
Statut : en production, opère le pipeline commercial d'Initial Infrastructures. Accès derrière auth sur le domaine de la société.



