Going to blog about my blog—my favorite topic.
A few months ago I wrote about The State of Blogs. I had been using Blot.im and Ghost.
After finding Pages CMS, I felt the need for tinkering and consolidation.
I wanted something more flexible than either Blot or Ghost so I could do pretty much whatever I want. I think static site generators are good for that. Get whatever data you want, however you want, and use it.
I started 2 concurrent prototypes using Eleventy and Astro.
Ultimately, I picked Eleventy.
Why not Astro?
In theory, I prefer Astro because I am a fan of TypeScript. It's structure makes sense to me too. But had a couple blockers for me:
-
I'm lazy and Astro requires a
slug
property if you want something different. Eleventy lets be dynamically create the slug/permalink. -
The RSS plugin was not flexible enough for me and I did not feel like figuring out a different option.
Why 11ty
-
I was able to shamelessly borrow extensively from Robb Knight's blog.
-
Ecosystem seems slightly more mature with plugins like eleventy-plugin-og-image.
-
It's what my site used to be on.
IMO, Eleventy has kinda a steep learning curve, but is quite flexible. I'm slow and am just getting a hang of the data cascade and collections.
Changing URLs
As part of this migration, I changed URLs for my posts from /YYYY/MM/title
to /blog/title
. I was nervous to make this change because I wanted to keep things consistent, but I like the look of /blog/title
better.
Needed to do it the right way. Step 1 was adding the old URL to the frontmatter of each markdown file. Maybe there was a smart way to do this, but I did it manually.
Using this data, I was able to set the GUID for each post to the old URL, but update the link to be the current URL. This way, all 2 people who subscribe to my RSS feed will not be bombarded with "new" posts.
Lastly, I also used the old URL data to generate a redirects file for Netlify. Eleventy made this quite simple.
What now?
I guess keep going until I feel like rebuilding from scratch again. I do have some ideas. Take a look at /todo for my current list and feel free to add a suggestion.
Check out the blog's code if you want.