AGENTS.md - Project Documentation for AI Assistants #

Project Overview #

This is Si Jobling's personal website built with Eleventy (11ty), a static site generator. The site is based on the eleventy-high-performance-blog starter and is deployed on Netlify.

Site URL: https://sijobling.com
Primary Technologies: Eleventy 1.0, Node.js 18.x, Nunjucks templating, Markdown


Project Structure #

Core Configuration Files #

Directory Structure #

/posts/ - Content Directory #

The main content area organized by content type:

Each directory has a posts.11tydata.js file that sets default frontmatter for that section.

/_data/ - Global Data Files #

Data files accessible to all templates:

/_includes/ - Templates & Layouts #

Nunjucks templates for rendering pages:

/_11ty/ - Custom Plugins & Transforms #

Custom Eleventy plugins and HTML transformations:

/img/ - Image Assets #

Image storage organized by category:

/css/ & /js/ - Static Assets #

/feed/ - RSS/Atom Feeds #

Templates for various feed formats:

/api/ - API Endpoints #

/test/ - Tests #

Mocha test files for validating the build:

/third_party/ - Third-Party Code #


Key Features #

1. Multiple Content Types #

The site supports different content types with their own templates and collections:

2. Image Optimization #

3. Performance Optimizations #

4. SEO & Discoverability #

5. YouTube Integration #


Build Process #

Development Mode #

npm run watch

Production Build #

npm run build
  1. Cleans the _site/posts/* directory
  2. Bundles JavaScript with Rollup
  3. Runs Eleventy to generate static HTML
  4. Runs tests to validate the build

Output #

All generated files go to /_site/ directory (not tracked in repo).


Deployment #

The site is deployed on Netlify (based on the Netlify badge in README).

Configuration files:


Content Authoring #

Creating a New Post #

  1. Create a new .md file in the appropriate directory:

  2. Add frontmatter:

---
title: "Post Title"
date: 2025-01-03
tags:
- tag1
- tag2
---
  1. Write content in Markdown below the frontmatter

Frontmatter Fields #


Eleventy automatically creates collections:

These collections are used in:


Common Tasks for AI Agents #

Adding a New Blog Post #

  1. Create file: /posts/blog/2026/new-post-slug.md
  2. Add frontmatter with title, date, tags
  3. Write content in Markdown
  4. Run npm run build to test

Modifying Site Metadata #

Edit /_data/metadata.json to change:

Adding a New Plugin #

  1. Install via npm
  2. Require in .eleventy.js
  3. Register with eleventyConfig.addPlugin()

Creating a New Template #

  1. Create .njk file in /_includes/
  2. Use Nunjucks syntax
  3. Access data via ``
  4. Reference in frontmatter: layout: your-template.njk

Modifying CSS #

Edit /css/main.css - changes are automatically processed during build.

Adding JavaScript #

  1. Edit /src/main.js for bundled JS
  2. Or add standalone files in /js/
  3. Rollup will bundle /src/main.js to output

Important Notes #

  1. Node Version: Project requires Node.js 18.x
  2. Generated Files: Never edit files in /_site/ - they're auto-generated
  3. Image Processing: Large images should go in /img/ subdirectories
  4. Remote Images: Will be automatically cached to /img/remote/
  5. Testing: Always run tests before pushing: npm run test
  6. Clean Builds: Use npm run clean to clear old generated posts

Troubleshooting #

Build Fails #

Images Not Appearing #

Posts Not Showing #

Styling Issues #


Resources #


License #

MIT License (see LICENSE file)


Last Updated: January 2026