I’ve been using GitHub pages to deploy static websites for a long while now. It is a great, free, way to host your personal and project websites. However, you cannot use GitHub pages on private repos with a free plan.

I’m not sure why it has taken me this long to discover Cloudflare workers and pages, but I’m glad I did! It seems as though Cloudflare is pushing workers over pages, as I initially set up one of my sites as a worker ony later to discover I could’ve set it up using pages. Both processes are extremely simple to setup and deploy.

I’ll focus on workers as that seems to be the preferred method now.

If you don’t already have a Cloudflare account, go ahead and sign up for one! It’s free (of course).

Creating your first application

  • Log in to Cloudflare dashboard
  • In the left hand panel navigate to Build -> Compute -> Workers & Pages
  • Click on Create Application
Create Worker
Create worker screen (notice the text in the bottom to deploy Pages).
  • From here you can choose how you would like to upload your files. I chose GitHub, so these instructions are tailored towards that flow.

!! When using workers, you will need to add a wrangler.toml or wrangler.jsonc file to the root directory of your site. !!

# wrangler.toml example
name = "my-site"
compatibility_date = "2026-03-11"

[assets]
directory = "./_site/"
  • Once you have chosen your repository, you will give your worker a name and set the build and deploy commands. The default deploy command is npx wrangler deploy, which is why it was called out to add a wrangler file in your root directory. The build command for Jekyll is bundle exec jekyll build.
Build & Deploy
Build and deploy commands.
  • You’re now ready to deploy! Click the button.
  • The build and deploy will kick off.
    • Bonus - any future commits to your repo will automatically kick off a new build and deploy.
  • Once the deploy succeeds, you should be able to visit your site. Your site URL will be [name].[subdomain].workers.dev
    • There will be a “Visit” button in the top right corner of the site’s workers page, or the URL will be listed below the worker on the main Workers & Pages dashboard.

That’s it! You should now have a successfully deployed Jekyll site running on Cloudflare Workers.

You can setup a custom domain for your workers as well, whether you have an existing one or are going to purchase a new one. If you have questions regarding that, please feel free to reach out to me!