CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

ActualPlay.Network is a static site generator project built with Eleventy (11ty) v2.0. It's a podcast/RPG blog converted from WordPress, featuring episodes organized by game systems with audio playback, RSS feeds, and metadata-driven navigation.

Development Commands

Core Commands

All commands automatically set ELEVENTY_ENV to either development or production. The dev server includes BrowserSync auto-reload with a custom 404 middleware.

Project Structure

actualplay.11ty/
├── _data/                  # Global data files
│   └── metadata.json       # Site-wide metadata (title, feeds, author)
├── _includes/              # Template partials and layouts
│   ├── layouts/            # Post, home, new-listener layouts
│   ├── components/         # Reusable components (audio-box, system-list, article-footer)
│   └── postslist.njk       # Posts collection template
├── posts/                  # Podcast episodes (markdown with YAML frontmatter)
├── pages/                  # Static pages (contact, resources, biographies)
├── feed/                   # Feed templates (RSS, JSON, Podcast)
├── css/                    # Stylesheets (passthrough copy)
├── js/                     # JavaScript assets (passthrough copy)
├── img/                    # Images (passthrough copy)
├── archive.njk             # Tags/archive page
├── categories.njk          # System categories page
└── _site/                  # Build output (ignored by git)

Key 11ty Configuration

Defined in .eleventy.js:

Content Authoring

Posts (Episodes)

Located in posts/ as .md files with YAML frontmatter:

---
title: Episode Name
description: Long description
date: YYYY-MM-DD
tags: [Tag1, Tag2, Podcast]
audio: https://...     # Audio file URL
duration: "H:MM:SS"
size: 66824611         # File size in bytes
type: audio/mpeg       # MIME type
image: https://...     # Cover image
permalink: slug/       # Custom URL slug
layout: layouts/post.njk
systems: [FATE, DeltaGreen]  # Game systems played
---

Content here...

Pages

Static pages in pages/ with frontmatter. Use layout: layouts/new-listener.njk or layouts/base.njk.

Important Metadata

metadata.json contains:

Update the author block and feed paths if needed; the podcast feed pulls from posts with audio or simplecastembedcodesrc fields.

Collections & Filtering

Tags in posts use tags: array in frontmatter.

Special Notes