Back to Blog
team@tinypod.app

Horizontal vs Vertical Scaling for Self-Hosted Apps

When your app needs more resources, should you get a bigger server or add more servers? Here's how to decide.

scalinginfrastructureperformance

The Scaling Question


Your application needs more resources. You have two options:

  • **Vertical scaling**: Get a bigger server (more CPU, more RAM)
  • **Horizontal scaling**: Add more servers (distribute the load)

  • Vertical Scaling (Scale Up)


    How It Works

    Upgrade your server to one with more resources. Move from 4 cores/8 GB to 8 cores/16 GB.


    Advantages

  • Simple — no architectural changes needed
  • No distributed system complexity
  • Single point of management
  • Applications work without modification

  • Disadvantages

  • Physical limits (servers max out)
  • Single point of failure
  • Downtime during upgrades (usually)
  • Diminishing returns at scale

  • Best For

  • Databases (hard to distribute)
  • Monolithic applications
  • Quick fixes for capacity issues
  • Small to medium workloads

  • Horizontal Scaling (Scale Out)


    How It Works

    Add more servers and distribute traffic across them with a load balancer.


    Advantages

  • Near-infinite scaling potential
  • High availability (no single point of failure)
  • Can use commodity hardware
  • Scale gradually

  • Disadvantages

  • Architectural complexity (distributed systems)
  • State management challenges
  • Network overhead
  • More moving parts to manage

  • Best For

  • Stateless web applications
  • Microservices
  • High-traffic websites
  • Services requiring high availability

  • The Self-Hosting Perspective


    For most self-hosted applications, vertical scaling is the right first step. A single server with 4 cores and 8 GB RAM handles surprising amounts of traffic.


    Consider horizontal scaling when:

  • You need 99.99%+ availability
  • A single server can't handle the load
  • You're running a public-facing service with unpredictable traffic

  • TinyPod's Approach


    TinyPod makes both easy:

  • Vertical: Allocate more resources to an app within your server
  • Horizontal: Add another server ($5/month) and distribute apps across servers

  • Start with one server. When you need more, add another. Simple.