Projects
My project mostly centers on Metalsmith, a static site generator built on a simple idea: everything is a plugin. Each plugin performs one focused transformation on a set of files, and complex functionality emerges from combining these simple pieces.
Over the past two years, Claude has become my primary development partner. The pairing works because Metalsmith's patterns are explicit — when I describe a plugin's intended transformation, Claude grasps the files-in, files-out contract immediately. Most of the plugins and tools documented here emerged from this collaboration.
All projects are available on GitHub and NPM.
If you're a nonprofit organization looking for web development help, I'm available for pro-bono work.
MCP Server
Metalsmith Plugin MCP Server — An MCP server that gives AI assistants Metalsmith-specific knowledge. It provides automated plugin scaffolding, validation against ecosystem best practices, and maintenance tools that follow established patterns from core Metalsmith plugins.
Plugins
Metalsmith Bundled Components — Automates asset management for component-based architectures. Scans component directories for CSS and JavaScript, resolves dependencies with circular reference detection, and generates correctly-ordered bundles with scope isolation.
Metalsmith SEO — Comprehensive SEO optimization that generates meta tags, Open Graph tags, Twitter Cards, JSON-LD structured data, sitemaps, and robots.txt with automatic metadata derivation and content analysis.
Metalsmith Search — Creates a client-side search index from rendered HTML using Fuse.js for fuzzy matching and Cheerio for HTML parsing. Extracts content with automatic heading ID generation and scroll-to functionality.
Metalsmith MDN — Bridges structured templates and long-form content by enabling Nunjucks components within markdown files. Embed the same reusable components used in page templates directly into markdown content.
Metalsmith Markdown Partials — Enables content composition through reusable markdown fragments. Processes include markers in markdown files, replacing them with content from separate partial files during the build.
Metalsmith Optimize HTML — Optimizes HTML output through comprehensive minification without external dependencies. Removes unnecessary whitespace, comments, and redundant attributes while normalizing URLs and boolean attributes.
Nunjucks Components
Nunjucks Components — A library of reusable, self-contained components for building structured-content websites with Metalsmith. Each component manages its own styles, scripts, and templates, and declares dependencies through a manifest file. The companion site provides reference documentation, live examples, and downloadable component packages.
Starters
Metalsmith Structured Content Starter — A component-based starter demonstrating modern web development patterns without JavaScript frameworks. Uses structured content in frontmatter to define reusable page sections, with automatic CSS and JS bundling per component. See a demo.
Reference Projects
Ruhrpott — A proof-of-concept integrating Sanity.io as a CMS with Metalsmith for static site generation.
Minneapolis — A proof-of-concept using WordPress as a headless CMS with Metalsmith, pulling content via the WordPress REST API.