Heroku-Style Name Generator
Generate names the way Heroku, Docker, Kubernetes, and petname do, see how the word lists combine, and learn when the birthday problem makes random names collide.
Category: DevOps
What You Will Learn
- How Heroku builds app names from adjective-noun-number word lists
- Why Docker's names-generator.go pairs adjectives with famous scientists
- Why Kubernetes pod suffixes use a 27-character alphabet with no vowels
- The birthday problem: why name collisions appear near the square root of the pool size
- How to design DNS-safe, human-friendly identifiers for your own tools
Topics covered: fun, interactive, heroku, docker, kubernetes, naming, educational
// simulator
Heroku-Style Name Generator
Generate names the way Heroku, Docker, Kubernetes, and petname do, see how the word lists combine, and learn when the birthday problem makes random names collide.
Why tools generate silly names
Heroku apps, Docker containers, and Kubernetes pods all need unique identifiers, and humans are terrible at remembering hex strings. So platforms combine small word lists into names like misty-meadow-1247: easy to say in an incident call, easy to spot in logs, and unique enough for the job.
- Heroku pairs an adjective with a nature noun and a number for every app created without an explicit name.
- Docker pairs an adjective with a notable scientist or engineer (from
names-generator.goin the Moby repo). The code famously refuses to generateboring_wozniak. - Kubernetes goes the other way: pod suffixes use a 27-character alphabet with vowels and confusable characters removed, so a random suffix can never spell a rude word or mix up 0 and O.
The namespace-size panel shows the trade-off: word lists keep names memorable but make the pool small, and the birthday problem means collisions show up around the square root of the pool size. That is why Heroku appends a number and Kubernetes retries on conflict.
Building your own? Libraries like haikunator and petname implement these schemes in most languages, and the same rules apply: filter your word lists, plan for collisions, and keep the names DNS-safe (lowercase, digits, hyphens).
Try next
// simulator
How Docker Works Under the Hood
Watch what really happens when you run docker run -p 8080:80 nginx, one layer at a time. Step down the whole stack: the CLI, the daemon, the registry pull, containerd, the OCI runtime bundle, runc, the running container, and the shared Linux kernel. Every stage shows the real low-level command you can run yourself, so it doubles as a tour of the primitives that make a container: namespaces, cgroups, and runc. A container is not a small VM, and this shows you why.
// simulator
Webhook Delivery Simulator
Send a webhook through a production-style delivery flow. Change endpoint responses, watch retries and backoff, inspect real HMAC-SHA256 signatures, and redeliver the same message to see receiver-side deduplication.
// simulator
Agentic Loop Simulator
Watch a coding agent run an agentic loop, one step at a time. A planner, a builder, and a judge cycle through plan, build, verify, and repeat until the goal is met. Toggle the separate judge off to see why an agent grading its own work ships confident bugs. An animation-first, interactive explainer of loop engineering and how it maps to Claude Code.