RSS Amplifier

BurgeonLab: Full-text · Aug 3, 2025

Leaving GitHub Pages for Bunny.net: My New Static Site Host

0
Sign in to vote or save

Naty S · BurgeonLab

I share my experience moving away from GitHub Pages to Bunny.net for static blog hosting, prioritizing privacy and budget. Comparing load speeds and using Bunny's FTP options. Codeberg and SourceHut are considered as alternatives to GitHub.

This post was last updated 1 year ago. The core ideas should still be useful, but tech moves fast; always check the latest docs for current best practices before applying what is mentioned.

Update: Migration Success

Update

Migration Successful!

Happy to share that I killed two (and possibly three) birds with one stone; my Hugo is now on sr.ht (SourceHut).

  • Subscribed to SourceHut’s Amateur Hacker tier to access builds.sr.ht, a CI/CD service similar to GitHub Action
  • Moved my Hugo source code from GitHub to SourceHut’s Git hosting service (hurray #GiveUpGitHub)
  • Wrote up a working build.yml (equivalent to GitHub pages.yml) that deploys Hugo static files in /public to Bunny.net’s Storage/hosting + CDN

I’ve been really impressed with Bunny’s performance upgrades (as you can read in the blog below). Their customer support was responsive and helpful. In fact, this Hugo blog is now running on Bunny.net Edge severs, and I’m still within their trial period using their free $20 credit!

If you want to test Bunny out for their CDN or hosting (which are the only two services I’ve tested so far), or their other services; you can use my affiliate link: Try Bunny.net. If you sign up and become a paying user, I will earn a commission, which helps support this blog.

To read more about my experience with setting up Bunny Storage with SourceHut, rclone, and SFTP, see GitHub Pages Alternative: SourceHut Builds + Bunny.net.

Preface

“When a product is free, it’s because you are the product.”

This long-standing quote I’ve read many years ago has been at the forefront of my mind lately. There are so many online services that are free outright, or have free tiers, but what price are we really paying? We are paying with our digital footprint, personal data, and also our time and attention. There’s more—but that’s for another post. I am more aware and conscious of the services I’m using nowadays and trying to slowly migrate away from “Big Tech”, especially those from the US. I’ve already worked on this ongoing “migration project” with email, cloud storage, etc, so I’m excited to tackle this area (code repositories, hosting, CDN) next.

Moving Away From Big Data

Currently, burgeonlab.com is hosted on GitHub Pages for free. In this post, I will be sharing my experience of moving away from Microsoft’s GitHub Pages free hosting. After leaving GitHub for hosting, I’ll be migrating repos to another Git versioning platform next (I’m leaning towards SourceHut). Switching to static site hosting is the first step for me in preparing to ditch GitHub in my main blogging workflow, for a better, more privacy-friendly alternative like Codeberg, SourceHut or self-hosting Forgejo, Gitea, etc.

Tip

If you want a guide on transferring your Hugo blog deployment from GitHub to an alternative like Codeberg, I highly recommend this post by @theaitch on his blog!

Static Blog Hosting

I have a multi-year WordPress starter deal on Hostinger with unused resources, which is why my Hugo photography blog (under construction) is hosted there along with my WordPress general blog. But I have already decided I won’t be paying the renewal prices when this plan expires next year. This is why I am looking for an alternative solution that is reliable, budget-friendly now in advance.

Note

I don’t have any bad experience with Hostinger, they’re actually really good for their introductory price (I bought a 48-month plan during Black Friday) and their customer support has always been really fast and extensive. For someone starting out, like me back in the day, I would highly recommend them. Their hPanel (dashboard interface) is really comprehensive and I felt at ease even though I was a first-timer.

I am changing hosts because I want a more budget solution for static site hosting only (no need for a dynamic WP plan because I want to swap out WordPress CMS in the future too).

Here’s a referral code if you do decide to try out Hostinger (affiliate link, 20% discount). I may earn a commission if you become a paid user which helps support this blog.

My hosting requirements:

  • Fast site performance and low latency/load times
  • EU-based
  • Has ability to change security headers like Content-Security-Policy and set cache durations with Cache-Control header
  • Budget friendly

I did consider going all manual by getting my first VPS/root server, but I still haven’t found one that suits me and doesn’t ask for a whole load of personal information.

Static site web hosting is plentiful but I heard of good things from Bunny.net with its CDN service (I already had them in my list to swap out another service—Cloudflare). What I didn’t know was they offer a product called Bunny Storage which is pay-as-you-go with a $1 minimum monthly payment. It sounds good on paper, so I’m currently on their 14-day trial to do some comparisons.

Speed Comparison

I’m using Pingdom to test the page load speed.

Hostinger + Cloudflare CDN vs Bunny.net

Screenshot comparing speed test of two different hosts.

A static Hugo blog loading times from Hostinger (with Cloudflare CDN) compared to Bunny Storage (with Bunny CDN)

Bunny.net seems to win out big time (76.7% quicker) on this comparison, but it could be the different CDNs used that is causing the load time discrepancy.

GitHub Pages vs Bunny.net

Screenshot comparing speed test of two different hosts.

This blog on GitHub Pages (built-in Fastly CDN) compared to hosting on Bunny.net with Storage and Bunny CDN

In terms of comparing between Bunny.net and the more limited GitHub Pages hosting, Bunny.net has also won this round by 31.5% reduction in load time.

Bunny.net Technicalities

Because I haven’t gotten round to moving my source repos from GitHub yet, I’m just testing Bunny.net Storage by dumping the contents of the Hugo /public folder with SSH File Transfer Protocol (SFTP) using Mountain Duck.1

The settings for SFTP on Mountain Duck (or other FTP clients) for Bunny.net Storage are:

FieldSetting
URLsftp://storage.bunnycdn.com
Server/hostnamestorage.bunnycdn.com2
Port22 (port 21 is for FTP only, not secure)
UsernameStorage Zone Name
PasswordPaste the generated password (not the read-only one) in Delivery > Storage > FTP & API access
SSH Private KeySelect None

The client will probably ask if you want to trust the destination server’s fingerprint. Bunny.net customer support confirmed its correctness.

Screenshot of Mountain Duck FTP client confirming connecting to a new fingerprint.

Remaining Tasks

I have to work out a few remaining jobs before the move is complete:

  • Set DNS and custom domain name settings
  • Update the CI/CD blog workflow with alternatives to GitHub Actions or Webhooks
  • Since my blogs are not under open licence, I don’t think I can use Codeberg. Will investigate SourceHut as I’m leaning towards it more (nice SourceHut overview post by Marcin and captainepoch’s vouch for Sourcehut; although both posts are from 2022).
  • Read about GZIP compression

Will update the post when this blog is officially hosted on Bunny.net and source code on SourceHut! Check the update at the top of the post.


  1. Mountain Duck is based on Cyberduck which is FOSS. (There is a CLI version called Duck.) Mountain Duck adds proprietary features to mount servers and cloud storage as local drives on macOS. I got this licence many years ago from one of those “bundle” deals but never got round to using it much! ↩︎

  2. Check your primary storage location and use the correct storage zone URL listed in the documentation↩︎

Read the original on burgeonlab.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.