Skip to content

bph/gt-curator

Repository files navigation

Gutenberg Times Curator

A WordPress plugin that streamlines curation of the Gutenberg Times Weekend Edition newsletter. It pulls articles from Feedbin, uses AI to categorize and score them, lets the editor approve and generate summaries, and inserts the final block markup into a WordPress post.

Workflow

Feedbin  →  Fetch  →  Categorize (AI)  →  Approve  →  Summarize (AI)  →  Insert into Post
  1. Fetch — Pull unread articles from Feedbin RSS feeds
  2. Categorize — AI classifies each article into newsletter categories with a 0-100 relevance score
  3. Approve — DataViews table with filtering, sorting, category grouping, and include toggles
  4. Summarize — AI generates 70-85 word summaries in the Gutenberg Times editorial style
  5. Insert — Block markup (headings + paragraphs) merged into a selected WordPress post, grouped by category

Categories

Category Newsletter Section
Core Developing Gutenberg and WordPress
Nocode Plugins, Themes, and Tools for #nocode site builders and owners
Theme building Theme Development for Full Site Editing and Blocks
Blocks Building Blocks and Tools for the Block editor
AI AI and WordPress
Play What's new in Playground
Themes WordPress.org Themes (auto-classified by URL)
Plugins WordPress.org Plugins (auto-classified by URL)

Requirements

  • WordPress 7.0+ (for WP AI Client)
  • PHP 8.0+
  • Node.js 18+
  • Feedbin account
  • AI provider configured in Settings > AI Credentials (Claude recommended)

Setup

  1. Clone into your wp-content/plugins/ directory
  2. Install dependencies and build:
    npm install
    npm run build
  3. Activate the plugin in WordPress
  4. Go to GT Curator > Settings and enter your Feedbin credentials
  5. Ensure an AI provider is configured in Settings > AI Credentials

Development

npm run start    # Watch mode with hot reload
npm run build    # Production build
npm run lint:js  # Lint JavaScript
npm run lint:css # Lint CSS

Architecture

  • PHP REST API endpoints under gt-curator/v1/ for Feedbin proxy, AI calls, state persistence, and post insertion
  • React admin UI built with @wordpress/dataviews, @wordpress/components, and @wordpress/api-fetch
  • WP AI Client integration for provider-agnostic AI (categorization and summarization)
  • Anthropic custom skill support — when Claude is the configured provider, summarization uses the Gutenberg Times Summarizer skill for higher quality output
  • Bot user (gt-curator-bot) for post insertions, keeping revision history clean

Plugin Structure

gutenberg-times-curator/
├── gutenberg-times-curator.php    # Main plugin file
├── includes/
│   ├── class-admin.php            # Admin menu + asset enqueuing
│   ├── class-ai-prompts.php       # AI prompt builders (categorize + summarize)
│   ├── class-feedbin-client.php   # Feedbin API wrapper
│   ├── class-rest-api.php         # REST API endpoints + insert logic
│   └── class-settings.php         # Feedbin credentials settings
├── src/
│   ├── index.js                   # Entry point
│   ├── style.css                  # Plugin styles
│   └── components/
│       ├── CuratorApp.js          # Main app shell
│       ├── ArticleList.js         # DataViews article table
│       ├── SummaryReview.js       # Summary review + edit UI
│       └── PostSelector.js        # Target post picker
├── build/                         # Compiled assets (gitignored)
└── package.json

License

GPL-2.0-or-later

About

WordPress plugin for curating the Gutenberg Times Weekend Edition newsletter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors