Sitemap

How to setup Cloudflare CDN in a remix.run app/website with fly.io

3 min readMay 14, 2023

Recently I tried setting up CDN on my remix.run website hosted on fly.io.

I couldn’t find a concise article on how to do this leading me to figure it out by trial and error, so here it is for your pleasure.

I would not go into deep on why you should use a CDN to cache your website, but in short it makes your website go brrrrr (really fast).

Things you will need*:

  • Custom domain
  • Remix app deployed to fly.io
  • Cloudflare account

Start by signing up for a Cloudflare account and add your domain to it.

Press enter or click to view image in full size
Cloudflare dashboard

Make sure that your domain name-servers are pointing to Cloudflare or it wont work.

I had to update my name-servers on Namecheap where I brought the domain from:

Press enter or click to view image in full size

Your website would not work just yet, you need to setup the custom domain from fly.io too, go to fly.io and setup redirect by following these steps: link to fly.io documentation

You will have to first generate the A and AAAA records and then add them to your dns list on Cloudflare:

Press enter or click to view image in full size

At this point you should be able to view your remix app by going to your custom domain.

Next lets setup a page rule so Cloudflare caches all of our assets, go to page rules:

Press enter or click to view image in full size

Add add a new rule with cache everything option selected (make note of the wildcard * selector to select all pages):

Press enter or click to view image in full size

Now the CDN should be caching all of your pages, if you want to define custom behaviour of your pages make sure to return cache-control headers from your pages or the root page.

I have setup my headers to use state-while-revalidate which make the page load almost instantaneous.

You can refer to my setup here: portfolio github

Mainly the blog list page, blog post page and root page.

Hope this helps!

--

--

Akash Agarwal
Akash Agarwal

Written by Akash Agarwal

Front-End Developer who loves all thing Javascript and React

No responses yet