Blog
All articles. All pillars. All authors.
Des listes plates aux Stacks : repenser toute notre UX
Nous avons jeté notre interface à listes plates et reconstruit autour de stacks par projet avec une double sidebar, une navigation contextuelle et des sections de style cPanel.
Le Deploy Hub : 183 options, une page
Comment nous avons construit un hub de déploiement de style Softaculous avec 183 options réparties en 5 catégories, 7 composants de formulaire et une UX en panneau partagé.
Terminal web et explorateur de fichiers dans un PaaS auto-hébergé
Comment nous avons construit un terminal dans le navigateur (xterm.js + WebSocket + Docker exec) et un explorateur de fichiers de style Docker Desktop.
Logs en temps réel : streaming WebSocket depuis les conteneurs Docker
Comment nous avons construit le streaming de logs en temps réel depuis les conteneurs Docker vers le navigateur via WebSocket, avec authentification JWT, reconnexion automatique et un visualiseur de style terminal.
i18n dès le premier jour : 5 langues sur 105 sessions
Pourquoi nous avons construit sh0 avec le support de 5 langues dès la toute première session de tableau de bord, et comment nous avons maintenu une orthographe correcte sur 105 sessions.
Prévention de l'injection de commandes dans un PaaS
Un PaaS exécute des commandes fournies par l'utilisateur par conception. Voici comment nous avons construit validate_command() pour empêcher l'injection shell dans les tâches cron, les hooks de déploiement et Docker exec.
Docker Compose sur un PaaS : parsing, validation, déploiement
Comment nous avons ajouté le support Docker Compose à sh0 -- parsing de Compose v3 YAML, validation des dépendances, détection de références circulaires, et déploiement de stacks multi-services.
Sandbox IA : donner à Claude un conteneur sûr pour déboguer vos applications
Nous avons construit un sandbox IA qui donne à Claude un accès root à un conteneur Alpine avec curl, git, node et python -- pour qu'il puisse réellement déboguer vos déploiements.
De cargo build à un serveur en production : le pipeline de release
Comment nous avons construit le pipeline de release de sh0 : builds Docker multi-étapes, défis de cross-compilation, CI/CD GitHub Actions et le premier déploiement en production.
Construire pour l'Afrique : Mobile Money, tarification locale, et pourquoi c'est important
Pourquoi nous avons construit sh0 depuis Abidjan avec les paiements Mobile Money, le support de 5 langues dont le kiswahili, et une tarification conçue pour les développeurs africains.
L'inférence de types Hindley-Milner dans un langage personnalisé
Comment FLIN utilise l'inférence de types Hindley-Milner pour déterminer les types sans annotations -- implémenté en Rust.
10 sessions : de zéro à un compilateur fonctionnel
Construire un compilateur de langage de programmation en 10 sessions : lexer, parser, vérificateur de types, codegen et VM en deux jours.