My blog is powered by a few hundred lines of Python code, turning a pile of json, markdown, and mustache templates into the static HTML that you’re looking at right now. In the source repository, each article is a folder containing at minimum a markdown file, plus any additional assets the article might need (images, videos, scripts, etc).