This documentation is also published as Markdown for efficient machine reading: the whole site is indexed at /llms.txt, and every page has a clean Markdown copy under /_llms/. These are generated from the same source and cost far fewer tokens to read than this rendered HTML.

Skip to main content

May 15, 2026

Your docs site can have a blog now

By Phil Scott

You're reading this on the feature it announces. This blog isn't a separate app — it's a DocSite that found a blog folder. The docs explain how Pennington works; the blog is where release notes like this one go.

A folder is the switch

A DocSite turns on a blog the moment its content project contains a blog folder with markdown posts in it. No flag, no Program.cs change, no service to register. AddDocSite checks for the folder at startup, and if it's there, you get:

  • a /blog index, posts listed newest first
  • a page per post
  • browse-by-tag pages
  • an RSS feed at /rss.xml
  • a "Blog" link in the site header

Remove the folder and all of it goes away — no dead link, no empty route.

A post is a markdown file with front matter — title, description, author, date, tags:

markdown
---
title: Your docs site can have a blog now
author: Phil Scott
date: 2026-05-15
tags:
  - announcements
  - blog
---

Convention over configuration

The presence of the folder is the configuration. You don't tell the engine you want a blog — you write posts, and it picks them up. The content says what you want, so there's no registration line to add.

If you have a DocSite, adding a blog is a folder away. The add-a-blog tutorial walks through it — first post, date ordering, tags, and the RSS feed.