1
0 Comments

How I solved the cold start problem without paying for always-on containers

Everyone building side projects hits this problem:

You share your app link. Someone clicks it. They stare at a blank screen for 30 seconds. They leave.

That's a cold start. Your container was asleep, and waking it up takes forever.

The obvious "solutions"

1. Ping services - Keep your container awake by pinging it every 14 minutes. Gaming the system. Burns through your free tier hours.

2. Pay more - Upgrade to always-on. $7-20/month per container. Overkill for a portfolio site that gets 10 visitors/month.

3. Accept it - Let users wait. They'll think your app is broken.

What I built instead

Used Cloudflare Workers as a "waiting room" at the edge.

When someone visits and the container is asleep:

  • Cloudflare instantly serves a "waking up" page (no delay)

  • Container starts in background

  • Page auto-refreshes when ready

The container still takes 15-20 seconds to wake. But users see activity immediately instead of a blank screen.

Psychology matters. People will wait for something they can see is loading. They won't wait for nothing.

The numbers

MetricBeforeAfterTime to first byte30+ seconds<100msPerceived waitInfinite (blank)15-20 sec with feedbackBounce rateHighMuch lower

Cost: $0/month

Cloudflare Workers free tier handles this easily. The container still sleeps, still saves money. Users just get a better experience.

Built this into SnapDeploy as a default feature. Every container gets it automatically - no setup required.


What UX problems have you solved with clever architecture instead of throwing money at it?

posted toAvatar for product SnapDeploy
SnapDeploy