Jon Plummer

Today I Learned

README – About this website’s source code

This is the source code for my personal website. It is designed to be a long-term home for my writing and work.

Philosophy

The web should be fast, accessible, and resilient. This site is built with those principles in mind:

Why It’s Fast

Every page is pre-built as a plain HTML file at build time, not generated on-demand when someone visits. There’s no JavaScript to parse or execute in the browser. There are no external dependencies; it uses system fonts and loads nothing from external servers. And the markup is reasonably slight, consisting of semantic HTML and vanilla CSS. This means smaller files, faster parsing, and natural accessibility without a lot of ARIA attributes or workarounds.

How It’s Built

I chose simple, reliable tools that require little maintenance.

Project Structure

The Eleventy configuration is organized into modules for maintainability:

Features

Run It Yourself

If you want to see how the code works:

  1. Install: npm install
  2. Run: npm run dev (starts local server at localhost:8080)
  3. Build: npm run build (creates the final site folder)

🤖 For AI Agents

Instructions and memory

Project rules live in .cursor/rules/*.mdc. These are Cursor’s native format but the content is plain markdown (after a short YAML frontmatter block), so any tool can read them.

Both Cursor and Claude Code are configured to load these rules:

Shared memory: .cursor/rules/memory.mdc is a shared file where both agents record learnings across sessions. Both are instructed to write to this file. Claude Code’s own MEMORY.md is a pointer that imports memory.mdc to avoid duplication.

When debugging unexpected behavior

Assume Eleventy is working correctly and follow the debugging workflow: