Why I moved to Cloudflare Pages - and how you can too
Published on
If you are reading this, it means you are reading it from a live Cloudflare Pages environment. Hooray!
Cloudflare Pages is the new fun way to host static-page content within Cloudflare, and on top of that you can incorporate Cloudflare Workers to execute code and do pretty much whatever the heck you want. So far I'm only using Cloudflare Pages currently for my project, but I'm excited at the possibility of maybe doing more than just that.
For the most part, my website has lived in multiple places in the past: Heroku, GitLab Pages, and Github Pages.
My first site, which I started a repository for back as early as 2018, was initially a Python-managed Flask blog of some sort. As per my last post, I really don't want to use Python again for microblogging. So digging up this old repository I had on GitLab, I immediately deleted all of it. Begone, snake!
The second iteration of my site was a Jekyll-generated site, which lived on GitHub. At the time, that didn't offer me a whole lot of customization that I would have liked. I wasn't super familiar with Jekyll, nor did I feel great borrowing people's themes. I wanted to make my own. But also GitHub wasn't providing valid SSL certificates on my domain for whatever reason, so I hopped over to GitLab.
GitLab is where I managed to make my own static site generator inside Racket, but it didn't have valid Markdown parsing because Markdown is a problem I scratch my head at with in Racket. Maybe I can approach the problem again with new breath, but it was tricky and complicated. I wasn't that satisfied with the end result, but I went on to use Zola next, and this is currently where I am most satisfied.
Later on I did end up moving back to GitHub for a time, but now we're here. Was it all worth it? Sort of, actually.
Cloudflare manages my domain name, and Cloudflare gives me a ton of insight into analytics about requests and visitors, without having to do any kind of scary deep IP cookie tracking on users. No overhead JavaScript means I can clear my conscience and get performance using Cloudflare services. It's nice.
Do I like Cloudflare as a company? I actually feel like out of all the big-names out there, Cloudflare is the one I can really enjoy because it tends to go above and beyond in many ways. I don't like the idea of GitHub being owned by Microsoft, nor do I care for their new source-code scanning program Co-pilot, and slowly I am making my way back to GitLab, where I feel a little bit better about myself and my code storage.
Also, Cloudflare has a Discord server where I can interact with actual Cloudflare employees. That's absurd to me in some ways. I can't interact with any GitHub or GitLab employees on a casual level or see what new projects they might be working on, but Cloudflare is more than happy to have a community of people working with their services and interact with them. That in some ways is really cute to me, and I appreciate that it seems like Cloudflare employees are having fun.
Now that I have tested my own blog on Cloudflare, I am ready to recommend it in service to friends who are curious about web development tools. I also have an upcoming project I am (slowly) working on that will also be making use of Cloudflare Pages.
My upcoming project is going to make heavy use of a static site generator like Zola (may be something different, still unsure) to incorporate a series of online pages I need to have managed and generated in a certain way. Normally this would be ideal for a database like PostgreSQL, and originally I wanted to go the way of Heroku.
But, after this blog experiment, I think this project is more suitable to use static site generators and manage my data that way, as Markdown files instead. There's no way it can be hacked via database trickery, no way someone can access the data on the site (unless my GitLab/Cloudflare credentials are stolen, which is very low odds), and on top of that it's easier to design the project around plain text files, it's far easier to be expressive instead of worrying about how I can cram data into database records.
If I were to recommend any kind of web design tools in place, I am keen to recommend Cloudflare, as it seems like the best way to get started easily. You even get supplied your own subdomain on their root pages.dev domain (mine is sleibrock-xyz.pages.dev
).
So while it's not as complicated as deploying your own JAMstack on AWS, I find it to be a suitable and easy way to approach web development using plain old tooling. Static site generators are very detailed, and it's amazing what you can do now with them.
That's all I have to say. I can go into the process of how to make your own Cloudflare Pages site, but it's a very easy process.
/public
, so you know it's public-facingexit 0
, to imply "no build program needed"/public
folderThis is a setup without a static site generator. The idea is you generate your files into the /public
folder at the root of your project. But Cloudflare wants to go a step above and do the build process for you. Which it does work! They can do that. This is a very easy deploy step that they want to have available for people.
However, I use Zola 0.14.1
, and Cloudflare only supports 0.13.0
. It breaks my website entirely, and I do not feel like waiting for them to support the next stable release. It's easier if I just push my files on my own so I don't have to burden Cloudflare with extra work (I don't really like the idea of being a free user using CI/CA services, I rest easier knowing I do it myself). I'm previewing my files all the time locally, so I'm completely okay with doing the build stage myself.
Thank you Cloudflare for the great service, and I look forward to building out my sites even more now. ☁️