When I set up this site, I had pretty clear requirements for it in mind. In addition to all the plans I had for the content, there were a couple of technical requirements also, namely that the site should…
- …respond quickly, preferably for readers anywhere in the world
- …be front-end only for simplicity, with all logic built in to pre-generated pages
- …be completely JavaScript-free
- …not use cookies (or otherwise track users)
- …work for a custom domain, naturally supporting SSL
So I took a look of the offering of static site generators and site hosting options, both of which there are plenty. It usually makes sense to start small, and as it's possible to migrate to something else later, I also preferred free tools and hosting options at this point.
The combination of Gatsby & Netlify seems to be all the rage now, but I still wanted to familiarize myself with other options also before landing on something.
Hosting
I started with (tentatively) choosing a hosting provider, as I thought that that choice might have implications for the site generation.
Even though there are plenty of options for this – with me having a shortlist including e.g. Cloudflare, Firebase, Render, Surge and Vercel – in the end I was mostly comparing Netlify and Github Pages; Netlify was the provider that my colleagues were mostly recommending (with an overwhelming margin over any others) and I'm already rather familiar and happy with Github.
Eventually I decided to go with Netlify based mostly on the recommendations I got from people who I very much value professionally, and the at least perceived performance because of their CDN network etc. Based on my own – perhaps superficial – research I also got very interested in Surge for its simplicity and developer-minded approach, though, and feel tempted to try it out.
Site generation
If there were lots of options for hosting, the selection for site generators was just mind-numbing and it was impossible to even do proper research on all of them. Luckily my requirements here were rather strict, limiting the viable options remarkably.
I wanted to use a language I'm already using quite a lot for the generation which dropped out the options running on e.g. Go or Ruby. While going through the options on the Jamstack page I realized that while I'd like to write my blog posts in Markdown, I'd prefer using my old favorite, Pug, over other templating alternatives for the layout, and didn't really want to use e.g. React for that. This narrowed down the options quite a lot, and I opted for Eleventy which seemed like a simple, yet flexible option. Hexo seems to be rather popular also but I was slightly put off by its promise of being a "blog framework". After all, I'm still not quite sure what direction this site will take, and thus I'd like to keep my options open when it comes to the flexibility of the generator.
Epilogue
Why did I write a post about these choices? I originally didn't intend to, but then realized that this would perhaps make a nice first post, and be open and transparent which is something I value greatly. But I also realized that documenting these choices was a way for me to process the choices in my own head and make sure I had given them enough thought. And that's why I wrote this post already when initially setting up the tools, not even having configured the custom domain to work for the site yet.
I think that's exactly the kind of personal learning and introspection I want this site to support.