

You deploy your backend on Render. Free tier. You share the link with someone, they open the app, and then — nothing. Just a spinning loader. For 30, 40, sometimes 50 seconds. They think your app is broken. You know it's not. But they don't.
Here's what's actually happening, and the fix that costs you exactly $0.
Render's free tier spins down your web service after a period of inactivity. No traffic for a while? Your server sleeps. That's how they keep the free tier viable — idle servers cost money.
The problem is that when the next request comes in, Render has to boot the service back up. That cold start is where those painful seconds come from. It's not a bug. It's a feature you didn't pay to turn off.
The paid solution is obvious: upgrade to a plan that keeps your instance always on. But if you're a student, indie dev, or just building something that doesn't have revenue yet, that's not always realistic.
So here's the cheap fix.
UptimeRobot is a free uptime monitoring tool. It pings a URL at a set interval and alerts you when it goes down. That's its main job. But we're going to use it as a heartbeat for our server.
Here's the idea: if Render spins down on inactivity, and UptimeRobot pings your server every 5 minutes, your server never goes inactive. No cold starts.
Steps:
HTTP(s).my-api-keep-alive./health or /ping is ideal, but the base URL works too.5 minutes.That's it. UptimeRobot will hit your server every 5 minutes, Render registers that as traffic, and the service stays warm.
If you want to be clean about it, add a lightweight health route to your backend:
// Express example
app.(, {
res.().({ : });
});
No comments yet - start the discussion
# FastAPI example
@app.get("/health")
def health_check():
return {"status": "ok"}
No database calls. No heavy logic. Just a fast 200 OK. The goal is to
wake the server, not stress it.
To be straight with you — this is a workaround, not a production strategy.
But for side projects, portfolios, hackathon demos, or anything pre-revenue? This buys you a much better user experience for free.
A 50-second load time on first request isn't just annoying — it kills first impressions. You send a recruiter, client, or investor a link to your project and the first thing they experience is a dead-looking screen. Most people won't wait. They'll assume it's broken and move on.
Your code might be clean. Your UI might be sharp. None of that matters if they never get to see it.
Keep your server warm.