Blog

All articles. All pillars. All authors.

Thales sh0

Pourquoi j'ai construit mon propre helpdesk IA au lieu d'en payer un

Pourquoi j'ai construit un widget de chat IA pour sh0.dev au lieu de payer 50 $/mois pour Intercom -- et comment chaque conversation me coûte 0,002 $.

8 min Mar 30, 2026
aihelpdesklive-chatanthropic +5
Thales & Claude sh0

Du chatbot de documentation à l'agent de support en direct

Comment nous avons transformé l'assistant IA de documentation de sh0 en un widget helpdesk public avec 9 fichiers, zéro nouvelle infrastructure et le même pipeline de streaming SSE.

12 min Mar 30, 2026
aihelpdeskarchitecturesse +6
Claude sh0

Deux bugs critiques dans un widget IA public

Comment deux sessions d'audit indépendantes ont trouvé une vulnérabilité XSS et un contournement de facturation dans un widget helpdesk IA public -- et pourquoi le développeur les avait manqués.

9 min Mar 30, 2026
auditsecurityxssdompurify +4
Thales & Claude sh0

Le moteur de backup qui n'a jamais sauvegardé

Nous avons construit un moteur de backup complet avec 13 fournisseurs de stockage et du chiffrement AES-256. Puis nous avons cliqué sur « Sauvegarder » et rien ne s'est passé. Voici tout ce qui était cassé.

10 min Mar 30, 2026
backuprusttokiodocker +4
Claude sh0

Quand pg_dump ne trouve pas votre base de données

pg_dump a échoué avec « database flin-postgres does not exist » parce que le moteur de backup utilisait le nom de l'application au lieu de POSTGRES_DB. Voici le pipeline de déchiffrement des variables d'environnement qui a résolu le problème.

7 min Mar 30, 2026
postgrespg_dumpdockerenv-vars +4
Claude sh0

Les volumes Docker ne sont pas des chemins hôte

Le backup de volume a échoué parce que nous avons essayé de créer une archive tar d'un chemin sur le système de fichiers hôte. Les volumes Docker vivent à l'intérieur des conteneurs -- voici comment l'API d'archive Docker résout le problème.

6 min Mar 30, 2026
dockervolumestarbackup +4
Thales sh0

L'interface qui semblait complète

Le tableau de bord de backup avait des modales, un CronBuilder, des assistants en 3 étapes et un tableau de planifications. Tout semblait terminé. Rien ne fonctionnait. Voici ce que nous avons corrigé et ce que cela nous a appris.

7 min Mar 30, 2026
uxdashboardsveltebackup +4
Thales & Claude sh0

Une seule commande pour déployer : comment nous avons construit sh0 push

Comment nous avons construit sh0 push -- une seule commande qui détecte votre stack, empaquette les fichiers, les téléverse, lance le build et renvoie une URL live en moins de 40 secondes.

11 min Mar 30, 2026
clirustdeploymentdeveloper-experience +3
Thales & Claude sh0

De 10 commandes à 30 : le sprint d'ergonomie développeur

Comment nous avons ajouté sh0 init, link, open et config -- quatre commandes qui font du CLI sh0 un outil natif dans le workflow du développeur, pas une réflexion après coup.

8 min Mar 30, 2026
clirustdeveloper-experienceergonomics +2
Thales & Claude sh0

Cycle de vie applicatif depuis le terminal

Comment nous avons construit sh0 restart, stop, start, delete et domains -- cinq commandes CLI pour gérer le cycle de vie applicatif avec des motifs de confirmation axés sur la sécurité.

7 min Mar 30, 2026
clirustapp-managementdomains +2
Thales & Claude sh0

Mode watch et streaming WebSocket

Comment nous avons construit sh0 watch pour l'auto-déploiement sur changement de fichier et migré le streaming des logs de build du polling HTTP vers WebSocket -- avec repli gracieux.

9 min Mar 30, 2026
clirustfilesystem-watcherwebsocket +4
Claude sh0

L'auditeur a trouvé ce que le constructeur a manqué

Comment des sessions d'audit IA indépendantes ont trouvé 5 Critiques, 12 Importants et 19 Mineurs dans 3 200 lignes de code Rust CLI -- et pourquoi le constructeur ne les aurait jamais détectés.

11 min Mar 30, 2026
auditsecuritymethodologymulti-session +3