WP Manifestindependent plugin directory
manifest / ai / resin-wordpress-plugin

Resin

Privacy-first WordPress plugin for LLM discoverability through automatic markdown conversion

by Big Pine Marketing · github.com/chris-tutt/resin-wordpress-plugin · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/chris-tutt/resin-wordpress-plugin/archive/refs/heads/main.zip

Making WordPress content discoverable and citable by LLMs through automatic markdown conversion

Overview

Resin is a WordPress plugin that automatically converts your site's content (pages, posts, custom post types) into markdown format and makes it discoverable to Large Language Models (LLMs) through JSON-LD structured data and llm.txt files.

Why Resin?

LLMs can better understand, index, and cite content when it's available in markdown format with proper metadata. Resin automates this process, ensuring your WordPress content is always LLM-ready.

Key Features

  • Automatic Conversion: Converts posts, pages, and custom post types to markdown on save
  • Page Builder Support: Works with Gutenberg, Elementor, WPBakery, Divi, and more
  • Flexible Discovery: Generate or append to JSON-LD and llm.txt files
  • Public Access: Markdown files served at predictable URLs for LLM consumption
  • Smart Management: Bulk regeneration, selective post types, status dashboard
  • Privacy-First: No tracking, no data collection, no phone-home. Respects your privacy.
  • Clean Architecture: Well-structured, extensible, follows WordPress best practices

Project Status

Core Implementation Complete

See PLAN.md for implementation plan and ARCHITECTURE.md for technical architecture.

Features

Core Functionality

  • Automatic markdown generation on content save/update
  • Support for all public post types
  • Clean HTML-to-Markdown conversion
  • Frontmatter with metadata (title, date, URL, type)

LLM Discoverability

  • JSON-LD structured data in page <head>
  • Site-wide llm.txt file generation
  • Option to append to existing implementations
  • Proper schema.org metadata

Admin Interface

  • Settings page for configuration
  • Post type selection (which types to convert)
  • JSON-LD mode: append, generate, or disable
  • llm.txt mode: append, generate, or disable
  • Bulk regeneration tool
  • Status dashboard (files generated, storage used)

Technical

  • Composer dependency management
  • WordPress Filesystem API
  • Custom rewrite rules for file serving
  • Proper MIME types and headers
  • Security and performance optimizations

Installation

  1. Upload the resin folder to /wp-content/plugins/resin/
  2. Navigate to plugin directory: cd /wp-content/plugins/resin/
  3. Install dependencies: composer install
  4. Activate plugin through WordPress admin
  5. Configure settings at Settings > Resin

File Structure

resin/
├── resin.php                          # Main plugin file
├── composer.json                      # Dependencies
├── includes/
│   ├── class-resin.php               # Core plugin class
│   ├── class-resin-converter.php     # HTML to Markdown
│   ├── class-resin-file-manager.php  # File operations
│   ├── class-resin-metadata.php      # JSON-LD & llm.txt
│   ├── class-resin-admin.php         # Admin interface
│   └── class-resin-hooks.php         # WordPress hooks
├── admin/
│   ├── css/
│   └── js/
└── README.md

Markdown Storage

Generated markdown files are stored in:

/wp-content/uploads/resin/
  ├── pages/
  ├── posts/
  └── {custom-post-type}/

Each file is publicly accessible at:

https://yoursite.com/wp-content/uploads/resin/pages/about.md

JSON-LD Example

Resin adds structured data to each page's <head>:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "name": "About Us",
  "url": "https://yoursite.com/about",
  "associatedMedia": {
    "@type": "MediaObject",
    "contentUrl": "https://yoursite.com/wp-content/uploads/resin/pages/about.md",
    "encodingFormat": "text/markdown",
    "description": "Markdown version of this content"
  }
}

llm.txt Example

Site-wide index at /llm.txt:

# LLM-Friendly Content Index
# Generated by Resin Plugin

## Pages
- About Us: /wp-content/uploads/resin/pages/about.md
- Contact: /wp-content/uploads/resin/pages/contact.md

## Posts
- Post Title: /wp-content/uploads/resin/posts/post-slug.md

Requirements

  • PHP 7.4 or higher
  • WordPress 5.0 or higher
  • Composer (for dependency management)
  • Write permissions in wp-content/uploads/

Dependencies

Development

Setting Up Development Environment

# Clone repository
git clone https://github.com/yourusername/resin.git

# Navigate to plugin directory
cd resin

# Install dependencies
composer install

# Link to WordPress plugins directory (or upload)
ln -s $(pwd) /path/to/wordpress/wp-content/plugins/resin

Development Workflow

See PLAN.md for step-by-step development workflow.

Architecture

See ARCHITECTURE.md for detailed technical architecture.

Testing

Manual Testing

  1. Create/update content in WordPress
  2. Check markdown file generation in uploads/resin/
  3. Verify public URL access
  4. Inspect JSON-LD in page source
  5. Check llm.txt file

Automated Testing (Future)

  • PHPUnit tests for converter
  • Integration tests for WordPress hooks
  • WP-CLI commands for testing

Future Enhancements

  • WP-CLI commands for bulk operations
  • Custom markdown templates
  • Analytics (LLM fetch tracking)
  • Sitemap.xml integration
  • Multi-language support
  • Custom frontmatter configuration
  • Image optimization for markdown
  • Support for markdown flavors (GFM, CommonMark)

Contributing

(Add contribution guidelines when ready)

License

(Add license information)

Credits

Created by Big Pine Marketing

Support

(Add support information)


Built with care by Big Pine Marketing