?
Do these actually build, or are they templates I have to fill in first?
They build. Every stack ships a small sample app — a TypeScript HTTP service, a Next.js page, a FastAPI app, a Django project, a PHP front controller, a Go service, a Rust service, a static site — so you can `cd` into any folder and run `docker build .` immediately. All 8 were built before release and the image sizes in the README came from `docker images` afterwards. Then you delete the sample and point the Dockerfile at your own code; each README lists exactly what it assumes (entrypoint, health endpoint, dependency manifest).
?
Are the image sizes real?
Yes. Every size quoted — 16.0 MB for Go, 37.9 MB for Rust, 72.2 MB for the static nginx site, 196 MB for PHP, 224 MB for Node, 272 MB for Django, 276 MB for FastAPI, 311 MB for Next.js — is `docker images` output for linux/amd64, measured on the image the shipped files build. Nothing is estimated or copied from someone else's benchmark.
?
What Docker version do I need?
Docker 20.10 or newer for the Dockerfiles. The Compose stacks use `depends_on: condition: service_healthy`, which needs Compose v1.29+ — in practice, any current `docker compose` (v2). The Go and Rust Dockerfiles use buildx's TARGETOS/TARGETARCH args for free cross-compilation, which is standard in modern Docker but degrades gracefully to amd64 defaults if unset.
?
My stack isn't in the list. Is this still useful?
Probably, if it is close to one of the eight. The patterns transfer directly: Bun and Deno follow the Node file, Flask and Litestar follow FastAPI, Laravel and Symfony follow the PHP one (its README covers the changes), Vite/Astro/Hugo output goes into the static nginx stack. If your runtime is nothing like any of these, the Compose stacks are still stack-agnostic. If it turns out not to fit, there is a 14-day refund.
?
Why is the PHP image one container running two processes?
Because single-container hosts — Fly.io, Render, App Runner, a plain `docker run` — expect one image that serves HTTP, and splitting nginx from php-fpm requires an orchestrator plus a shared socket volume. supervisord is there so that if either process dies it restarts, and so both receive a clean SIGQUIT on `docker stop`. If you want them split, the compose stacks show that shape and the PHP README explains the trade-off. It is a deliberate choice, documented, not an oversight.
?
Does it cover Kubernetes?
No. This is Dockerfiles and Compose. It does make Kubernetes easier — the images declare numeric non-root uids so `runAsNonRoot` passes, and the health endpoints map straight onto liveness and readiness probes — but there are no manifests, Helm charts or kustomize overlays in the pack. If you need those, this is not the product.
?
Is there anything unsafe I should know about before deploying?
Two things, both documented inline. First, every `.env.example` ships placeholder credentials like `change-me-before-first-run`; the stacks will start with them and you must change them. Second, `opcache.validate_timestamps = 0` in the PHP image means edits to files inside a running container have no effect — correct for immutable images, surprising if you bind-mount source. Beyond that, review anything before it reaches production: the license explicitly puts that on you, as any honest one does.
?
Can I use these in client work?
Yes. The commercial license covers unlimited personal, internal and client projects, and you can publish the container images you build from them. The one thing you cannot do is resell the pack itself or repackage it into a competing template collection.