It's just some html and css, how hard can it be?
April 26, 2026Well, first I suppose we should go around the room and introduce ourselves. I'll start...
My name is Ian McNaughton, I have been a software dev for a number of years now professionally, mostly in the webspace, with a good focus on back end tech. Someplace between the UI and the database is where I am most comfortable, but I can hold my own on either edge.
A fun fact about me is I can spend days researching how best to host a simple static site before creating any content for said site. So I'm forcing the matter and writing this while nothing else is in any kind of state to ship.
When in doubt, let the requirements guide you
What's my mvp here? I know this will be a static website, using the Zola build tool to compile Markdown files into HTML. A domain, sure, that's easy enough, whatever. I need something to serve these pages up. Ah, here we go, now we learn just how quickly a simple idea can fly off the rails.
Just a quick scan of the things, I see a number of different options.
- A public AWS S3 bucket.
- A private S3 bucket with CloudFront on top.
- AWS has its own product for this use case named Amplify.
- Brewing and managing everything myself by renting out an EC2 server.
- I could probably dockerize this entire site and host it in any number of container hosts.
- GitHub pages.
- Cloudflare.
- Netlify.
- The list goes on.
Wait wait wait, I just want to host some files. This should not be so hard. Well, I guess it does not have to be if I use a service, but that's just more accounts, more payments, more complexity. Ahh, wait; what's that quote I love so much?
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
Let's try to keep things simple.
Ok, Let's weigh the options
A Public S3 bucket Super simple, slap the code in a repo, set up a workflow to build the site, and replace the content in a bucket. Point a domain at the thing and you're golden. Right? You would think, but there is no HTTPS. Honesty, I don't even know if this is valid for this content. This site has no login, there's no dynamically generated content to hide. Everyone will be served the same bytes, but browsers will bully me if I skip out and just have HTTP, that S is doing a lot of work, and I cant bring myself to go without it. It goes against every fiber of my being. Encrypt your sites.
CloudFront gets me HTTPS, sure, but if there was ever an overengineered system, this might be it. A global CDN, for this? I'm yelling at clouds here digital clouds, but clouds nonetheless, not running a SaaS company.
AWS Amplify just feels like the previous option, only they set up the configs for CloudFront for you. Also, I'm sure they charge more for this, I'll learn the ecosystem to save a buck or two.
GCP & Azure is just more of the above.
Renting the smallest EC2 space I can get, rigging it up with nginx and letsencrypt.org has some real draw to it. I have done this in the past, I can do it again, It's probably the simplest solution of all these options. Maybe 20 bucks a year to run plus the cost of the domain. Ugh, this might be an option, but there has to be a better way, right? Do I really need a dedicated machine to host this?
Well, just containerize it and... No, let me stop you right there, just no. Not at this scale.
GitHub Pages sounds like a great option then, right? This makes sense, but as I edit this, there recovering from another incident1, not to mention this is meant more for documentation of a project and not some random blog. Eh, you could make the argument, but I feel like there should be a better option.
That leaves services like Netlify, and for whatever reason, I just can't. I don't know if it's the extra account I'll have to sign up or if it's the pride in knowing I could self-host this if I could talk my ISP into giving me a static IP. But I just can't.
So what's a dev to do?
Honestly, I'll probably go with GitHub pages2. Yeah, I could tell myself, "Oh, it will be a good experience to learn how to configure AWS correctly!" But at the end of the day, I should be spending more time making content than worrying about how to host it.
Wait what were we doing?
Hang on, let me close all these tabs and compose myself.
Hi, I'm Ian, I write code! And despite what you just read, I truly enjoy mucking around in these sorts of things. From the basics like static site hosting, to trying to implement the chain rule for a home-brewed Neural Network, this is where I love to spend my time.
Alright, who's next? Introduce yourself. Shoot me an Email, buy me a coffee, let's talk code!
It's to the point where they have put out a statement. https://github.blog/news-insights/company-news/an-update-on-github-availability/
I decided to use AWS Amplify and give that a shot.