Blog
All articles. All pillars. All authors.
Construire un moteur de planification cron en Rust
Le coeur de 0cron : sorted sets Redis pour la planification, verrous distribués pour empêcher la double exécution, et une boucle de polling par tick qui se déclenche chaque seconde.
"Tous les jours à 9 h" : parsing de planification en langage naturel
Comment nous avons construit un parseur NLP de 152 lignes à base de regex qui convertit de l'anglais courant comme "every Monday at 2pm" en expressions cron -- et pourquoi nous avons choisi regex plutôt qu'un LLM.
Notifications multi-canaux : e-mail, Slack, Discord, Telegram, webhooks
Comment nous avons construit un service de notification de 296 lignes supportant 5 canaux avec filtrage succès/échec par canal, Slack Block Kit, et dégradation SMTP gracieuse.
Intégration Stripe pour un SaaS à 1,99 $/mois
Sessions de checkout, vérification de signature webhook, essais de 60 jours, et le cycle de vie complet de facturation -- comment nous avons intégré Stripe pour un micro-SaaS à 1,99 $/mois.
Du HTML statique au tableau de bord SvelteKit en une nuit
Comment nous avons converti une page marketing statique en un tableau de bord SvelteKit 2 complet avec runes Svelte 5, store d'auth, client API, et wizard CronBuilder -- en une session.
Monitoring heartbeat : quand votre tâche devrait vous pinguer
L'inverse des tâches planifiées : donnez à votre cron une URL à pinguer, et 0cron vous alerte quand le ping s'arrête. Périodes de grâce, génération de tokens, et arithmétique d'intervalles PostgreSQL.
Secrets chiffrés, clés API, et sécurité
Chiffrement AES-256-GCM, interpolation ${secrets.KEY}, authentification JWT + clé API, vérification Google Sign-In, et signature HMAC des webhooks -- les couches de sécurité de 0cron.
D'Abidjan à la production : lancement de 0cron.dev
L'histoire complète de la construction de 0cron.dev : 3 sessions, 4 agents, 3 500+ lignes de Rust, un tableau de bord SvelteKit, facturation Stripe, et un système d'administration -- le tout depuis Abidjan avec zéro ingénieur humain.
Écrire un client Docker Engine from scratch en Rust
Pourquoi nous avons écrit un client Docker Engine API personnalisé avec hyper et des sockets Unix au lieu de passer par le CLI Docker, et le parsing de flux multiplexés qui a tout fait fonctionner.
Le bug de 16 Ko : comment un buffer de pipe a figé toute notre plateforme
Un buffer de pipe de 16 Ko causait le gel de Caddy toutes les 5 minutes. L'histoire du débogage d'un deadlock classique de pipe Unix qui nous a menés de la confusion à un correctif de 5 lignes.
SSL automatique : DNS, ACME et certificats personnalisés
Comment sh0 gère les certificats SSL automatiquement via l'intégration ACME de Caddy, supporte les uploads de certificats personnalisés avec chiffrement AES-256-GCM des clés privées, et configure le DNS pour les déploiements auto-hébergés.
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 $.