Seredyna, a New Jekyll Template
TLDR: I’ve turned the design of this site into a reusable template. Here’s the code on GitHub.
I’ve been surprised by the number of people who have asked if they could use the template my blog runs on. The answer is a bit embarrassing, because I don’t have a template.
The design, layout and code running this site is a collection that’s been hacked together over the years with tons of quick fixes, unused CSS and seemed-like-a-good-idea-at-the-time experiments. And so I would just give a link to the GitHub repo and wish the asker good luck.
The current version of the site has been relatively stable for awhile, and I’m not planning any major changes. So this is as good a time as ever to abstract out the design into a reusable template.
I’ve given it the name, seredyna, which is a rather boring Ukrainian word meaning middle. This isn’t a minimalist design, but it’s also not over the top. It’s middle of the road. Hence seredyna.
Dark and light mode are built into the CSS and work automatically based on the reader’s system settings.
The typeface is IBM Plex.
There are some idiosyncratic design choices:
- Regular blog posts need to contain the category
essays. They’ll appear in the blog feed at
/blogand in the RSS feed as expected.
- There’s another category of posts called
notesthat are meant to be short, fleeting thoughts. By default they are blocked from search engines and only the 10 most recent notes are accessible from the
/notespage. Older notes remain at their respective permalinks so that you don’t create broken links for other bloggers, and it’s still easy to search all of your own past content. These limitations free me to be more creative, take some risks and try out ideas that I otherwise might not want to have out there forever. The idea is that if I want to refine something and make it into evergreen content, then I’ll write a full post and categorize it as
essays. Notes are something between public drafts and a microblog.
- Now updates are inspired by the now page movement with a bit of a twist. I want to see my older now updates, not just the most recent one. Thus add the category
nowand the most recent now post appears at
/nowwith a listing of older now posts at the bottom. Here’s a full explanation: adding a dynamic now page.
- Lastly, there’s RSS club inspired by Dave Rupert. These posts appear only on the RSS feed and are blocked from search engines. This is a nice way to write for only a relatively small and human audience. These posts work by adding the category
With all the notes and other posts, the regular feed can get busy. There’s a single feed for everything, plus an essays feed for only the long-form posts. If you want to include
now posts in the essay feed this won’t affect how they’re displayed on the site. Add a second category to the YAML front matter. Make sure you use
categories: rss-club essays and not
category: rss-club essays as the latter only reads the first category.
A template not a theme
I decided to make a template instead a theme that will work out of the box on Jekyll. This makes it easier to go in and tweak it yourself. The downside is that this requires some programming skills.
This also keeps the template more technology agnostic. Yes, I’ve built it with Jekyll, but it should be pretty easy to port it to Eleventy, Hugo and even WordPress. If anybody does do that, it would be great if you let me know so I can add a link to it the original repo.
You can find the source code on GitHub, and view a demo site here.
Closing off my main repo
Another reason I decided to do this was that I’ve grown less comfortable with my main repo being public. When people copy that code it comes with a bunch of pictures, personal essays and other stuff that I don’t really want to share.
This is the best of both worlds, even if it’s a bit more work to maintain.
I’m about 90% done with everything.
- I don’t entirely like how the page navigation works, so want to tighten that up a bit.
- The documentation and example content can be improved.
- The social sharing images can be optimized.
But those are polish that can wait until another rainy weekend devoted to indoor projects.