Blog
All articles. All pillars. All authors.
WhatsApp OTP and the African Authentication Problem
Email does not work. SMS is expensive. WhatsApp is universal. How we built authentication for Africa with WhatsApp OTP, Google OAuth, and student access codes.
Cron Jobs and Preview Environments: Two Features, Zero Downtime
How we built cron job scheduling with timeout enforcement and preview environments with PR webhook integration -- developed in parallel using git worktree isolation.
System Prompts That Teach: Anti-Cheating, Socratic Method, and Grade-Level Adaptation
Six-layer prompt assembly: root identity, school hours detection, grade overlays from CP to Terminale, subject expertise, and exam mode. How we taught the AI to teach.
14 Days, 105 Sessions, 1 AI CTO: The Complete Story of Building sh0.dev
The complete story of building sh0.dev -- a production-grade PaaS with 488 tests, 119 templates, 25 MCP tools, and an AI assistant -- in 14 days from Abidjan with zero human engineers.
SSE Streaming: Real-Time AI Responses in SvelteKit
20+ event types, inline quizzes, file downloads, credit deductions, and tool progress -- all streamed in real-time via Server-Sent Events.
Building an MCP Server: 25 Tools, 3-Tier Safety, OpenAPI-Driven
How we built sh0's MCP server with 25 tools, OpenAPI-driven auto-generation, scoped API keys, risk classification, and confirmation tokens for destructive operations.
Monitoring and Alerts: Email, Slack, Discord, Telegram, Webhooks
Building a monitoring system with periodic Docker stats collection, threshold-based alert evaluation, and multi-channel dispatch to Email, Slack, Discord, Telegram, and webhooks.
Interactive Quizzes With LaTeX: Testing Students Inside a Chat
Two-phase anti-cheat quizzes: the AI sends questions without answers, Redis stores the correct option, and the server validates. With full LaTeX math rendering.
Tasks, Goals, and Recurring Reminders
The AI creates tasks from conversation context. Recurrence engine, due-date notifications, org-scoped visibility, and threaded comments on homework assignments.
Observability: Tracking Every LLM Call in Production
AILog tracks every LLM call. SystemSetting enables config without redeploy. ExerciseResult measures learning. The admin dashboard behind the obscured route.
#018 -- 10 Sessions: From Zero to a Working Compiler
Building a programming language compiler in 10 sessions: lexer, parser, type checker, codegen, and VM in two days.
#019 -- Error Diagnostics That Actually Help
How FLIN's error diagnostics help developers: source locations, colored output, and human-readable messages.