Back to blog
This post is on the way.
Reading
The piece is being set. The cover and the first lines land here.
Back to blog
Reading
The piece is being set. The cover and the first lines land here.
Back to blog
Reading
The piece is being set. The cover and the first lines land here.
18 Jul 2025 · Luffy · docker · Containerization · DevOps

Over the years, I’ve advocated for DevOps best practices, microservices, Kubernetes, and other sophisticated deployment strategies. But here’s the twist: while working with high-performing teams, from solo indie hackers to large-scale enterprise engineers, I’ve witnessed something that challenges the conventional wisdom.
Small teams, running a handful of containers on a single VPS using Docker Compose, are generating hundreds of thousands of dollars in revenue every month.
No Kubernetes. No autoscaling groups. No fancy observability stacks.
Just one or few servers. A few containers. And pure business value.
Docker Compose is a fantastic tool, for local development. It simplifies multi-container setups with one YAML file, abstracting complexity and speeding up local workflows.
But many teams make the mistake of deploying the same development setup directly into production, leading to long-term issues that are difficult to unwind.
Many teams are generating serious revenue with Compose-based setups on single servers. The difference? They don’t use their dev Compose files in production.
docker-compose.prod.yml optimized for production use.systemd or similar to ensure auto-start after reboots.Your app may point to localhost for the DB, but in containers, localhost refers to itself not the host or another service. Docker Compose solves this by using internal service names for networking, avoiding the pitfalls of hardcoded hostnames.
systemd or similar to start containers after reboots.When you're ready to stop managing production YAMLs, consider a platform that does it all for you.Why dflow.sh?
Docker Compose isn’t broken. But using your dev config in production is.
If you're using Compose right, you're already ahead. But if you're not planning for the next stage of your app's lifecycle, you're borrowing technical debt you’ll have to repay, at a steep cost.
And if you'd rather skip the orchestration rabbit hole entirely? Let dflow.sh do the heavy lifting so you can focus on building features, not babysitting containers.
18 Jul 2025 · Luffy · docker · Containerization · DevOps

Over the years, I’ve advocated for DevOps best practices, microservices, Kubernetes, and other sophisticated deployment strategies. But here’s the twist: while working with high-performing teams, from solo indie hackers to large-scale enterprise engineers, I’ve witnessed something that challenges the conventional wisdom.
Small teams, running a handful of containers on a single VPS using Docker Compose, are generating hundreds of thousands of dollars in revenue every month.
No Kubernetes. No autoscaling groups. No fancy observability stacks.
Just one or few servers. A few containers. And pure business value.
Docker Compose is a fantastic tool, for local development. It simplifies multi-container setups with one YAML file, abstracting complexity and speeding up local workflows.
But many teams make the mistake of deploying the same development setup directly into production, leading to long-term issues that are difficult to unwind.
Many teams are generating serious revenue with Compose-based setups on single servers. The difference? They don’t use their dev Compose files in production.
docker-compose.prod.yml optimized for production use.systemd or similar to ensure auto-start after reboots.Your app may point to localhost for the DB, but in containers, localhost refers to itself not the host or another service. Docker Compose solves this by using internal service names for networking, avoiding the pitfalls of hardcoded hostnames.
systemd or similar to start containers after reboots.When you're ready to stop managing production YAMLs, consider a platform that does it all for you.Why dflow.sh?
Docker Compose isn’t broken. But using your dev config in production is.
If you're using Compose right, you're already ahead. But if you're not planning for the next stage of your app's lifecycle, you're borrowing technical debt you’ll have to repay, at a steep cost.
And if you'd rather skip the orchestration rabbit hole entirely? Let dflow.sh do the heavy lifting so you can focus on building features, not babysitting containers.