June 18, 2026 · David Spatholt

Getting Started with This Blog

How the blog system works — write in VS Code, git push, it's live.

How It Works

This blog is just static HTML files in docs/blog/. Each post is a folder with an index.html. Metadata in <meta> tags drives the auto-indexer, which regenerates the blog landing page and a machine-readable JSON manifest on every git push.

Writing a New Post

  1. Copy the template:
    cp -r docs/blog/sample-post docs/blog/your-post-name
  2. Edit the metadata in the <head> — title, date, tags, excerpt:
    <meta name="blog:title" content="Your Title">
    <meta name="blog:date" content="2026-06-19">
    <meta name="blog:tags" content="research,python,automation">
    <meta name="blog:excerpt" content="Short summary shown on blog index">
  3. Write your content inside the .prose section. HTML only — no markdown.
  4. Commit and push:
    git add docs/blog/your-post-name/
    git commit -m "blog: add your-post-name"
    git push

GitHub Actions automatically runs the blog indexer and deploys. The post appears on the blog landing page within ~20 seconds.

Metadata Fields

Tag Required Fallback
blog:titleYesFirst <h1> or folder name
blog:dateRecommendedGit log date or today
blog:tagsNoOmitted
blog:excerptRecommendedFirst <p> text
blog:authorNo"David Spatholt"

Layout Tips

Use the .prose class for article body typography. It handles headings, lists, code blocks (<code>), and links with appropriate spacing. For images, use:

<figure>
  <img src="image.png" alt="Description" />
  <figcaption>Optional caption</figcaption>
</figure>

Local Preview

cd ~/workspace/dspacks-site
npx serve docs -l 4000
# Open http://localhost:4000/blog/your-post-name/