
Bunny CDN - Migrating from Cloudflare
Bunny CDN - Migrating from Cloudflare êŽë š
Bunny provide CDN services, edge storage, DNS, JavaScript; you know, the usual suspects. More importantly, Bunny are whatâs become known as a European alternative. Something that non-US web folk are starting to pay more attention to.
I moved from Netlify to Cloudflare back in 2023 and have become increasingly more reliant on the giant. I figured it was time to hop ship before I get locked-in forever.
This weekend I moved from Cloudflare to Bunny.
Bunny as a Static Host
I was up far too late Friday night and far too early Saturday morning going down the rabbit hole. As is evident from my inbox and notes:

Bunny doesnât have a neatly packaged Cloudflare Pages like service but you can combine their CDN and Edge Storage to achieve the same deal. Bunny CDN acts as a proxy and cache for an âoriginâ server. That origin can be either a 3rd-party web server or one of Bunnyâs storage zones. Upload to a storage zone, set that as the origin for a CDN âpull zoneâ, and then link a domain name. Ta-da; static hosting on the edge.
Bunny has an optional Shield that presumably does similar magic to Cloudflareâs firewall. Shrug. I enabled it.
Whilst migrating over I jotted down any problems I ran into.
Points of Pain
Bunny does not allow two-factor auth to be configured prior to confirming your email address. This would be fine except it throws an âAPI Errorâ without explanation.
The front-end dashboard is quite keen to surface âAPI Errorâ and refuses to elaborate half the time. Opening the console reveals Posthog errors, so thatâs working as expected.

API documentation has a nice demo feature. You can enter an API key and test right in the browser or copy a curl command. Except the storage.bunnycdn.com endpoint is fixed so all tests result in 401 Unauthorized. In my case I needed the uk.storage regional subdomain. This is explained elsewhere, but having a âTry Itâ that is guaranteed to fail for most users is poor design. Hence the 5am support tickets.
API limits are not clearly documented. Numbers I found did not match my experience. 429 Too Many Requests was my friend until I dialled it in (lower than Iâd like). I gave up asking support. I havenât entirely ruled out my jury-rigged deploy script being to blame. Browser upload or FTP is available if youâre not into APIs.
Bunny requires you to manually add a DNS CNAME record to link a custom domain to your CDN zone. If you already have that domain in Bunny DNS without a record it should do this automatically, in my opinion (or at least offer to).
Bunny has âMagic Containersâ. If you can figure out from their marketing word soup what that means, youâre smarter than me!
Sparks of Joy
The Bunny dashboard is easy to navigate. Cloudflare has gotten so bloated I just click around blindly until the right menu appears.
Bunny support tickets are answered immediately. At least they were this weekend. Iâve found the guides and documentation to be decent overall despite the issues above.

Bunny has âEdge Rulesâ. Iâm using those to set headers, handle redirects, etc. Theyâre easy to create but fiddly to organise if have more than a handful (I have 14 and counting). I always found Cloudflare Rules to be a nightmare so Iâll take any improvement. Bunny doesnât care bout trailing slashes in URLs /page, /page/, /page/index.html all show the same page. I found Gabriel Garridoâs guide to create a redirect rule.
All in all, Bunny has been pleasant to work with so far. I flipped the DNS switch and migrated from Cloudflare sooner than expected.
Trial Run
Iâll be using Bunny beyond the 15 day free trial because I want to see how actual costs tally up. I will be monitoring performance closely too. I reckon itâll be hard to beat Cloudflareâs network. Iâll accept a small hit so long as it doesnât plummet. Who knows? There might even be an improvement.
If Bunny does prove worthy I have more work to do. Bunny lets you deploy JavaScript Request â Response workers. Theyâre using Deno which is neat I guess. Hopefully their own architecture, Deno Deploy is slow. My contact form is still currently handled by a Cloudflare Worker to send PGP encrypted emails. Iâll migrate that next.
My Cloudflare Pages site is still building in the background so I can flip the switch back if something goes wrong. I plan not to.
đ°