Back to Writing
· 5 min read prototyping hosting cloudflare side-projects

Rapid Prototyping While Keeping It Cheap

If you’re like me, you get an idea while you’re working on something else. You start drafting out a spec. You kick off an AI agent and nudge it along over the next few days. And then you’ve got a working prototype. That’s where we are now. Building is the easy part.

The hard part is what comes next. Every prototype needs a home. And if you keep doing this — and I do — you end up with a lot of side projects sitting around. The real cost isn’t building the thing. It’s keeping it alive long enough to find out if anyone cares. Or long enough to find out if I still care in a month.

The Hosting Bill Problem

I’m a PHP and Laravel guy. Have been for years. I love Laravel. I’ve built production systems on it that serve real customers with real constraints. But hosting a Laravel app in the cloud costs money. A basic setup runs about $50/month. Unless you want to manage the infrastructure yourself — and then it costs a bunch in time and still ends up costing you money. Now multiply that by 5 or 10 side projects. You’re burning through cash on apps with zero customers, zero revenue, and a slim chance of going anywhere.

For a company with revenue, that’s nothing. For me? It’s a bill I start to resent. And then I start killing projects before they’ve had a fair shot. The hosting cost becomes this quiet pressure that makes me clean house too early.

What I Actually Use Now

I landed on Cloudflare Workers and Cloudflare Pages. Together they’re free for what I need.

Workers runs serverless functions. Pages handles frontend hosting. The free tier gives you 100,000 Worker requests a day and unlimited Pages deployments. For a side project that gets 50 visits a month? I’ll never touch those limits.

If I need a database, Cloudflare has D1 — a SQLite database that runs alongside Workers. It won’t replace Postgres for a production app. But for basic data and simple CRUD? It works. And it’s free.

It’s not perfect. The Worker runtime has quirks. SQLite won’t handle everything a full database engine will. You’re locked into Cloudflare’s world. But I’m not building for perfection. I’m building to find out if an idea has legs.

When Cloudflare’s Environment Isn’t Enough

Sometimes I outgrow what Cloudflare gives me. Maybe the prototype needs relational joins, or I want the comfort of Postgres. For that, I run a single managed Postgres instance on DigitalOcean. About $15/month, shared across all my projects. Each app gets its own database on the same server.

It’s not the most secure or scalable setup. A vulnerability in one app could touch the others. But I’m not building for scale. I’m building to ship something and see what happens. Security and scaling become real problems when I have real users — and that’s a problem I’d love to have.

And sometimes it’s not the database — it’s the runtime. Maybe I need to run Python packages or call APIs that don’t play nice with Workers. Pipedream is a great option for that. It lets you run HTTP endpoints like lightweight microservices, with full Python support. Still cheap. Still practical for prototypes that need a little more muscle than Cloudflare’s sandbox gives you.

The Escape Hatch

Here’s what makes this work: rewriting stuff is cheap now too.

A few years ago, picking the “wrong” stack was a real risk. Moving from prototype to production could take weeks. That fear pushed people toward over-engineering from day one — heavy stacks, expensive hosting, all for apps that might never get a single user.

That math has changed. If a Cloudflare prototype takes off and needs to become a proper Laravel app — I can have AI rewrite the core logic in a couple of afternoons while I’m doing other things. The prototype did its job. It proved the idea had value.

A Few Other Options

My stack isn’t the only way to solve this. I’ve heard good things about Vercel, especially in the Next.js or React world. Railway, Fly.io, and Render all have free or near-free tiers too.

So What Does This Actually Cost Me?

About $60/month for 5–10 side projects. And I expect to drop that by $40–50 over the next month or two as I migrate a Laravel prototype to a Cloudflare Worker. Most of those projects will never go anywhere. That’s fine. I don’t need all of them to work. I need to give the good ones time to breathe.

If you’re a founder or small business owner with ideas to test, this is the competitive advantage most people overlook. You don’t need to spend hundreds a month to find out if something works. Build cheap. Ship it. Let it live. See what happens.

What’s your go-to stack for keeping side projects alive without draining your wallet? Let me know what’s working for you.