Application monitoring that helps developers get it done.
Deploy apps to servers that you own and control.
When you choose to deploy your application to a single machine with a standard operating system and a full file system, you are inherently embracing vertical scaling over horizontal scaling.
It is common advice that when an application needs to scale, you simply add more machines. However, what is often under-discussed is the significant complexity that adding multiple machines brings to your system. The difference in operational complexity when moving from one machine to two machines is substantial, and it only increases as you expand from two to four, four to eight, and beyond.
There are real benefits to running everything on a single, powerful machine. As the demands of your application grow, you can increase the size of that machine instead of introducing additional servers. The largest machines available from cloud providers like Hetzner or Digital Ocean offer terabytes of storage, dozens of CPU cores, and gigabytes of RAM, making vertical scaling a viable long-term strategy.
If your application ever reaches the point where even the biggest machine isn’t enough, that’s a good problem to have—you’re running a highly successful business with the revenue to invest in solving that challenge. However, for most applications, starting with vertical scaling provides maximum efficiency with minimal complexity.
By prioritizing vertical scaling, we acknowledge that scheduled downtime is part of the trade-off. When upgrading to a larger machine, you will need to pause the application temporarily. However, this downtime is minimal—often 30 minutes or less—and can be scheduled overnight when few users are online.
The scaling process itself is straightforward:
By following this controlled, step-by-step approach, you avoid the stress and complexity of keeping everything running during the transition. Instead, you focus on ensuring a smooth upgrade without risking data loss or service disruption.
This philosophy aligns with the core principles of this course:
For early-stage applications, embracing vertical scaling offers the best combination of speed, reliability, and operational efficiency. Even though it requires occasional downtime, it dramatically simplifies the deployment process, reduces infrastructure overhead, and maximizes developer productivity.
This is why I strongly advocate for vertical scaling—even with its trade-offs—as the most effective strategy for keeping your application lean, scalable, and stress-free.