sh0
Self-hosted deployment. Single binary. Zero complexity.
A deployment platform in a single Rust binary (~2MB). Git push deployments, automatic SSL, built-in AI chat with 20 MCP tools, database management, browser terminal, and multi-server orchestration.
Building sh0
The Autoscaler That Compared a Space to a T: Two High Bugs, One Day, Before and After
An autoscaler that never decided because SQLite compared a space with a T, and a proxy that served 502s on every redeploy. Same box, same apps, before and after, one day, closed on dated observations rather than green tests.
The Proof Is the Key, Not Its Hash: Renewing a Signed Licence Without a Migration
A self-hosted server fetches its renewed licence by presenting the signed key itself as proof of possession. The hash-based design the prompt suggested would have failed at the exact moment of renewal. Then the live proof: a real billing cycle, a re-signed key, and a server log saying nobody had to do anything.
The Question the Audit Could Not Ask: Why Verification Has a Ceiling
Clippy clean, 291 tests green, an adversarial reviewer through eleven sections, and a full live proof on two distributions. Then the CEO looked at one column and asked why it said Perpetual, and found a revenue defect none of it could reach.
The Licence That Proved Nothing: Signing a Key Across Two Languages
A sh0 licence used to be a prefix: anyone who knew that Business keys start with sh0-biz- could write one. Replacing it with an Ed25519 document meant signing bytes across two languages, failing closed on a missing key, and a revocation rule where only an explicit revoked ever removes a plan.
The Audit That Found the Bug in the Fix: Nineteen Defects, Two Sub-Agents, One Read-Only Reviewer
Nineteen defect cards from three evenings of failed deploys, fixed across three repositories in one session. The regression that mattered most was introduced by one of the fixes, and only the adversarial reviewer saw it.
The Overflow That Wasn't a Layout Bug
A responsive checker reported 130px of horizontal overflow. The number was correct. The bug it pointed at did not exist, and the one it was actually reporting had broken 92 URLs in production.
The Branch That Could Never Fire
A ticket said Pipfile dependencies were landing in the wrong build stage. Fixing it uncovered something worse: the branch that handled them had never run, on any deploy, ever.
The Cap That Never Ran: A Memory Fix That Fixed Nothing
A build-log memory cap shipped, tests passed, RSS looked bounded — yet the database row still grew to 14 MB. The cap was guarding a value nobody kept.
870 Leaked Connections, 12 Weeks, One Root Cause: a Transport Per Request
A 12-day silent outage traced back to one Go anti-pattern: creating an http.Transport per request. How a live audit found it, plus 3 more production bugs.
Self-Host Your Apps: cPanel vs sh0.dev -- The Complete Comparison
cPanel vs sh0.dev: a feature-by-feature comparison for self-hosting web apps. SSL, Docker, AI, mobile management, pricing -- everything you need to decide.
How to Deploy PostgREST on a VPS in 10 Minutes
Deploy PostgREST on your own VPS with automatic SSL and zero configuration. sh0 turns any PostgreSQL database into a REST API in three clicks.
Coolify Alternative in 2026: The Self-Hosted PaaS with a Mobile Companion App
Looking for a Coolify alternative with mobile fleet management? sh0 is a self-hosted PaaS with a companion app, built-in AI, MCP server, and 184 deploy templates.