Why I use Cloudflare for everything
Cloudflare's free tier is absurdly generous. That is really the whole thesis of this post. If you are a solo developer shipping side projects, Cloudflare gives you DNS, a CDN, static site hosting, edge functions, DDoS protection, and SSL certificates for zero dollars. I have been moving more and more of my infrastructure there over the past few months and it has simplified a lot of things.
DNS that just works
I moved my domains to Cloudflare's nameservers earlier this year and the difference was immediate. The dashboard is clean and fast. Adding or editing DNS records takes seconds. Propagation through their network is genuinely quick, often under a minute for changes to go live. Compare that to some registrars where you are waiting hours and refreshing DNS checkers.
The real win is that once your nameservers point to Cloudflare, everything else they offer is just a toggle away. Want their CDN? Flip the proxy switch on a DNS record. Want SSL? It is automatic. That integration between services is what makes the whole platform feel cohesive rather than stitched together.
CDN and caching on the free tier
Most CDN providers charge based on bandwidth. Cloudflare does not, at least not on the free tier. You get unlimited bandwidth through their global network with no cost. For static sites and projects with unpredictable traffic, this removes a whole category of worry.
Their caching is smart about static assets. CSS, JavaScript, images, and fonts get cached at edge locations automatically when you proxy traffic through Cloudflare. You can fine-tune cache rules if you need to, but the defaults are reasonable for most projects.
I ran a side project that got an unexpected spike of traffic from a Reddit post. On a traditional setup that would have either cost me money or taken the site down. With Cloudflare in front, the cached assets were served from edge nodes and my origin server barely noticed.
Cloudflare Pages for static hosting
Pages is their static site hosting product and it is exactly what I wanted. Connect a GitHub repo, set your build command and output directory, and every push to main triggers a deploy. Preview deployments for branches are automatic too.
The setup is minimal. For a simple site built with any static site generator:
Build command: npm run build
Output directory: dist
That is it. You get a .pages.dev subdomain immediately, and adding a custom domain takes one click if your DNS is already on Cloudflare.
What I appreciate about Pages is that it does not try to be more than it is. It builds your site and serves it on a fast global network. No server configuration, no scaling decisions, no container orchestration. Just files on a CDN.
Workers at the edge
Cloudflare Workers let you run JavaScript (and now Rust, C, and other languages via WASM) at the edge. The free tier gives you 100,000 requests per day, which is more than enough for side projects and experiments.
The interesting thing about Workers is the execution model. Your code runs in V8 isolates, not containers. Cold starts are almost nonexistent because there is no container to spin up. For API endpoints, redirects, or lightweight backend logic, the performance is impressive.
I have been using Workers for things like URL shorteners, simple API proxies, and webhook handlers. The KV storage that comes with Workers is useful for storing small amounts of data without setting up a database.
That said, Workers have real limitations. The CPU time limit on the free tier is 10ms per request. That sounds tiny and it is. Anything computationally heavy will not work. Debugging can be frustrating too. The local development experience with wrangler has improved but it is still not the same as running code on your own machine where you have full control over the environment.
Security you do not have to think about
Every domain proxied through Cloudflare gets DDoS protection and a free SSL certificate. The SSL part alone is valuable. Cloudflare handles certificate issuance and renewal automatically. No more dealing with Let's Encrypt cron jobs or expired certificates taking your site down at 2 AM.
Their WAF (Web Application Firewall) on the free tier is basic but still catches common attacks. For personal projects and small sites, it is more protection than most people bother to set up on their own.
The downsides, honestly
I would be lying if I said there were no concerns. The biggest one is vendor lock-in. When your DNS, CDN, hosting, and edge functions all run on Cloudflare, moving away becomes a project in itself. I am aware of this tradeoff and it does make me uncomfortable sometimes.
Workers are not a full backend replacement. The execution limits, the proprietary runtime quirks, and the debugging experience all remind you that this is not a general-purpose compute platform. It is great for what it is designed for, but you will hit walls if you try to push it too far.
There is also the philosophical concern of putting too much of the internet behind one company. Cloudflare already handles a significant percentage of web traffic. Every domain I add to their network makes that concentration a little worse. I do not have a good answer for this one. The practical benefits keep winning over the abstract concern.
Worth it for solo developers
If you are building things on your own or in a small team, Cloudflare removes a lot of the infrastructure overhead that used to eat up time and money. The free tier covers DNS, CDN, static hosting, edge functions, and security for an impressive number of use cases.
I started by just moving my DNS there. Then I tried Pages for a static site. Then I wrote my first Worker. Each step felt natural because the products integrate well with each other. That gradual adoption path is probably their best growth strategy, and it works because the individual products are genuinely good.
For my setup right now, Cloudflare handles DNS and hosting for most of my web projects. It is not the right choice for everything, but it has become my default starting point.
Sources
Related posts
Automating workflows with n8n
How I use n8n as a self-hosted alternative to Zapier for connecting services and automating repetitive tasks.
Self-hosting with Docker Compose: lessons learned
Practical patterns and mistakes from running self-hosted services with Docker Compose.
How Docker image layers actually work under the hood
A deep dive into Docker image layers, union filesystems, content-addressable storage, copy-on-write, and why understanding this stuff makes you better at writing Dockerfiles.
Enjoying the blog? Subscribe via RSS to get new posts in your reader.
Subscribe via RSS