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.
Feedbin → Fetch → Categorize (AI) → Approve → Summarize (AI) → Insert into Post
- Fetch — Pull unread articles from Feedbin RSS feeds
- Categorize — AI classifies each article into newsletter categories with a 0-100 relevance score
- Approve — DataViews table with filtering, sorting, category grouping, and include toggles
- Summarize — AI generates 70-85 word summaries in the Gutenberg Times editorial style
- Insert — Block markup (headings + paragraphs) merged into a selected WordPress post, grouped by category
| 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) |
- WordPress 7.0+ (for WP AI Client)
- PHP 8.0+
- Node.js 18+
- Feedbin account
- AI provider configured in Settings > AI Credentials (Claude recommended)
- Clone into your
wp-content/plugins/directory - Install dependencies and build:
npm install npm run build
- Activate the plugin in WordPress
- Go to GT Curator > Settings and enter your Feedbin credentials
- Ensure an AI provider is configured in Settings > AI Credentials
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- 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
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
GPL-2.0-or-later