This project has a clear split between _drafts/ and _posts/. These rules turn that into an explicit workflow so content changes are predictable and safe.
A draft is an article that lives in _drafts/.
Use draft status when one or more of these are true:
TODO, placeholder text, rough notes, or sections that obviously need another pass.Important:
draft: false or draft: true flag in front matter. In this repo, the folder is the source of truth.Publishing means moving an article from draft state to reader-ready state.
In practice that means:
_drafts/ to _posts/.YYYY-MM-DD-title.md.TODO notes, and unfinished sections are removed.For this repo, “published” should mean “I am comfortable with this being on the public Journal today”, not “I might finish this later”.
Before moving a file into _posts/, the article should meet this bar:
subtitle, category, category_color, reading_time, and excerpt are set — these drive the Journal grid, filters, and card display.TODO:, needs to be written, or reminders to come back later.For new published posts, prefer these front matter fields:
---
layout: post
title: "Your Post Title"
subtitle: "Optional"
author: "Michael Voorhaen"
category: "Roadmap Mastery" # also: Org Design, Conference Notes, Talks & Recordings
category_color: lime # teal | lime | orange | purple — keep one color per category
reading_time: "6 min"
excerpt: "One or two sentences shown on Journal cards and previews."
featured: false # true shows it as the big featured card on /journal/
cover: /assets/images/YYYY-MM-DD-post-title/cover.jpg # optional; omit for a plain color placeholder
---
The filename date is the canonical publish date. Only add an explicit date: field when you need time-of-day control beyond the filename.
Once a file is in _posts/, treat it as public content under change control.
TODO, placeholder copy, or unfinished sections in _posts/.assets/images/YYYY-MM-DD-post-title/.changelog entry (see below) instead of silently rewriting it.category_color consistent for a given category across all posts (this is what keeps the Journal’s colour-coding meaningful).Automatic commits are allowed for low-risk work that does not change what readers see on the public site.
Allowed without extra approval:
_drafts/.Automatic commits should not be used for:
_drafts/ to _posts/._posts/, even if it looks small.Rule of thumb: if the change alters public editorial intent, publishing state, or URL structure, require explicit approval first.
These are good defaults for future work:
_drafts/ as the only draft mechanism.title and author front matter, even if Jekyll could infer a title from the filename.README.md as setup documentation and this file as the editorial source of truth.WRITING_STYLE_GUIDE.md for voice and style, and this file for workflow and release decisions.Images are part of the article, not decoration added at the end. Treat them with the same care as the prose.
assets/images/YYYY-MM-DD-post-title/.png, jpg, jpeg, or webp.assets/resources/YYYY-MM-DD-post-title/.Use a normal Markdown image when one image supports one point in the article.

Use raw <img> only when layout control is genuinely needed, for example:
class="no-lightbox"If raw HTML is not buying anything, prefer normal Markdown.
Use a carousel when multiple images belong to the same moment, comparison, or subsection and should be browsed together.
Good uses in this repo:
Avoid using a carousel as a dumping ground for every image you have. If the images do not belong together, split them up.
Define carousels in front matter and place them in the article with `
`.
Example:
carousels:
- images:
- image: /assets/images/YYYY-MM-DD-post-title/example-1.jpg
url: /assets/images/YYYY-MM-DD-post-title/example-1.jpg
title: "What readers see under the image"
alt: "What the image shows"
position: center
- image: /assets/images/YYYY-MM-DD-post-title/example-2.jpg
url: /assets/images/YYYY-MM-DD-post-title/example-2.jpg
title: "Second image caption"
alt: "Second image description"
position: top
<div class="image-gallery-index">
</div>
Rules:
image and url should normally point to the same file.title is the visible caption under the image. Use it when the image benefits from context.alt describes the image itself and should not just repeat the filename.position may be top, center, or bottom when cropping needs control.alt for description and title for the visible caption when needed.Before publishing:
If a published post gets a meaningful update later, add a changelog entry rather than silently rewriting it:
changelog:
- date: "2026-04-05"
changes:
- "Expanded the X section with a concrete example."
- "Added an illustration for Y."
Entries render automatically at the end of the article via `
` (already wired into the post layout).