Creating Series, Lists, and Books
This guide explains how to create and maintain grouped content on the blog:
- Series (article sequences)
- Lists (apps, links, and other listable topics)
- Books (selective notes and opinions)
Shared Model
All three concepts use the same architecture:
- Metadata entry in
_data/*.yml - Detail page at
/concept/{slug}/ - Member posts in
_posts/...linked by front matter slug - Timeline shows one grouped card instead of individual member posts
Draftability is supported at two levels:
- Entity-level:
draft: truein data file (hides grouped cards and landing cards) - Post-level:
published: falsein post front matter
Series
1) Add metadata in _data/series.yml
- slug: async-await
title: "Async/Await in C#"
subtitle: "Practical patterns for writing calm, reliable asynchronous code."
description: "A reflective, hands-on journey through asynchronous programming in C#."
cover_color: "#5B4BFF"
link: "/series/async-await/"
draft: false
2) Create detail page
Create series/{slug}/index.md and set:
series_slug: your-series-slug
permalink: /series/your-series-slug/
3) Create posts
Place posts under _posts/series/{folder}/ and include:
series: your-series-slug
part: 1
published: true
Lists
Lists are for any listable content (apps, links, etc.).
1) Add metadata in _data/lists.yml
- slug: engineering-toolbox
title: "Engineering Toolbox"
subtitle: "Apps, tools, and links that help me think and ship faster."
description: "A curated list of tools and resources I rely on for focused engineering work."
cover_color: "#0D9488"
link: "/lists/"
draft: true
2) Create list posts
Place posts under _posts/lists/ and include:
list: engineering-toolbox
published: false
Cards and page listings use post front matter title/subtitle.
Books
Books are grouped as notes. Timeline cards show x notes.
1) Add metadata in _data/books.yml
- slug: clean-code
title: "Clean Code"
subtitle: "Notes and reflections while revisiting core software craftsmanship ideas."
description: "Selective notes and opinions on practical chapters and trade-offs from Clean Code."
cover_color: "#7C3AED"
link: "/books/clean-code/"
draft: true
2) Create detail page
Create books/{slug}/index.md and set:
book_slug: clean-code
permalink: /books/clean-code/
3) Create book notes
Place notes under _posts/books/{book-slug}/ and include:
book: clean-code
part: 1
published: false
part is optional but recommended for ordered notes.
Directory Examples
_data/
series.yml
lists.yml
books.yml
_pages/
series.md
lists.md
books.md
series/
your-series-slug/
index.md
lists/
your-list-slug/
index.md
books/
your-book-slug/
index.md
_posts/
series/
your-series-folder/
2026-01-01-series-post.md
lists/
2026-01-02-list-post.md
books/
your-book-slug/
2026-01-03-book-note.md
Timeline Behavior
- Normal posts render individually.
- Posts that belong to
series,list, orbookdo not render individually on timeline. - Instead, one grouped concept card is rendered per published, non-draft entity.
- Book grouped cards display note counts (
x notes).