This site - starting out
Picking a static site generator
There are a lot. A whole lot.
My first idea was Hugo. I spent a lot of time reading documentation about Hugo, but someone I couldn't start to envison myself using it with the kind of content I have. I still don't know why this is the case. As far as I can tell it's a pefectly cromulent SSG; it just felt wrong for me.
Next a waded through some of the different online aggregators of static site generators. (There are multiples of those too!) I looked into several different ones, including Metalsmith, Wintersmith, Pelican, and Hakyll. I like Haskell even though I'm only a beginner, and I looked through several sites written in Hakyll before deciding it was too much of a leap for me right now. It was really cool though, and I may come back around to it!
I found Eleventy this week and immediately clicked through to the website just based on the name. I really like the name because it reminds me of Hobbits. As I read through its documentation, I felt like I understood the way Eleventy organized things, and I liked how the configuration complexity scaled (i.e., you can start without a single line of configuration, then end up adding as much Javascript as you can stand).
Choosing CSS
All I knew was there are a lot of CSS frameworks and I didn't want to write my own from scratch. Having a backward-compatible grid system and sane defaults is nice because I'm not proficient at CSS, so things like Skeleton and Normalize are godsends. A few other constraints:
- No bootstrap
- "micro" framework if possible
- It's not like a need a bunch of form elements and accordions and stuff
I looked into Milligram, Bulma, Furtive, and Skeleton. I like and eventually settled on Skeleton because
- It's small - one file, 50-something rules
- It's simple - I can read and understand the rules it defines, even with my limited experience
- It's CSS - I do like SASS, but I didn't want to include a pre-processor in my toolchain right from the start
It is getting a little long in the tooth, but I can always change in the future!
Hosting
I was just going to use GitLab pages or Github pages (or both) for hosting my personal site - since it is, after all, static. Both support HTTPS and both support using a custom domain name.
Through Eleventy's website I found Netlify. I can hardly believe the free tier on Netlify is a real thing, but apparently it is... and it's so easy to use that I had a "hello world" site building through Eleventy and deploying automatically to both GitLab Pages and Netlify in under an afternoon. I set up my existing domain next. I've had the domain for a while but am far from a DNS expert. Between Netlify's docs and those of EasyDNS though, that wasn't hard either - the hardest part was waiting for it to propogate to see if I'd set things correctly.
Content
I don't have a good way of organizing the content I think I can put on here. Some of it is little demos, some write ups of projects, some guides, some personal information like an "About Me" blergh and my resume. I can think of some different kinds of "posts," but I don't know how much they overlap or how much I'll have to change them. Some ideas...
- Guides (mutiple pages that know about each other and connect together explicitly)
- Projects (write up w/ snippets and links to hosted source; screenshots/gifs or analysis if relevant)
- Demos (Project that runs in a web page?)
- Logs (like this one - series of reltively independent posts connected by the fact that they're about learning the same thing, e.g. Haskell, Eleventy, PowerShell, what have you)
Guides and projects may change in place over time but there's no preserving old versions except in the git repository. Logs are more like blog entries, more amenable to tagging, and the point is to document the learning experience over time, so new ones are added rather than changing old ones.