Resin
Privacy-first WordPress plugin for LLM discoverability through automatic markdown conversion
by Big Pine Marketing · github.com/chris-tutt/resin-wordpress-plugin · website
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.zipMaking 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
- Upload the
resinfolder to/wp-content/plugins/resin/ - Navigate to plugin directory:
cd /wp-content/plugins/resin/ - Install dependencies:
composer install - Activate plugin through WordPress admin
- 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
- league/html-to-markdown - HTML to Markdown conversion
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
- Create/update content in WordPress
- Check markdown file generation in uploads/resin/
- Verify public URL access
- Inspect JSON-LD in page source
- 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