HuubStory AI
Free AI-powered WordPress plugin to generate Google Web Stories from posts, create AMP visual stories, improve mobile storytelling, SEO content and editorial publishing workflows.
by HuubCorp Solutions · github.com/huubcorp/huubstoryai · 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/huubcorp/huubstoryai/archive/refs/heads/main.zipAI-powered WordPress plugin for Google Web Stories, AMP storytelling, SEO metadata, editorial publishing workflows, and Web Stories sitemaps.
HuubStory AI helps WordPress publishers transform intentionally selected posts into public AMP Web Stories. It connects to OpenAI, generates structured Story drafts, validates the output, publishes Stories as a dedicated custom post type, creates a /webstories discovery page, and exposes SEO-ready metadata for search engines and social platforms.
Overview
HuubStory AI is built for editorial teams, newsrooms, content sites, blogs, and publishers that want a controlled way to create Google Web Stories from existing WordPress content.
The plugin does not auto-generate Stories for every published post. Instead, an administrator chooses the source content intentionally, queues it, generates one Story at a time in the background, and publishes validated Web Stories with their own canonical URLs, AMP markup, metadata, schema, and sitemap entries.
Key Features
- Generate AMP Web Stories from selected WordPress posts using OpenAI.
- Choose source content by single post, batch, category, random eligible posts, or queue.
- Publish generated Stories as the
huubstoryai_webstorycustom post type. - Keep each Story associated with its original source post.
- Create a public
/webstoriespage that lists published Stories. - Generate a dedicated Web Stories sitemap at
/webstories-sitemap.xml. - Support paginated Web Stories sitemaps for larger archives.
- Add technical SEO metadata directly to Story URLs.
- Output Open Graph, Twitter Card, canonical, robots, and JSON-LD metadata.
- Use configurable schema type:
Article,NewsArticle, orBlogPosting. - Generate AMP-safe poster and publisher logo image variants when needed.
- Provide dynamic compatibility behavior for Yoast SEO, Rank Math SEO, and All in One SEO, loading only necessary filters to save memory.
- Process queued Stories reliably through the Action Scheduler (replacing WP-Cron for high scalability).
- Track scheduled, running, completed, failed, and stuck executions.
- Safely log AI failures into rotating isolated files instead of bloating the database.
- Store the OpenAI key without autoload and encrypt it when OpenSSL and WordPress salts are available.
Why Use HuubStory AI?
Google Web Stories can improve mobile storytelling, visual content discovery, and editorial distribution. Building them manually, however, is slow. HuubStory AI focuses on a practical publisher workflow:
- Select existing editorial content.
- Send only the needed source context to OpenAI.
- Receive a structured Story draft.
- Validate text length, images, and Story structure.
- Publish a public AMP Web Story.
- Expose the Story through SEO metadata and sitemap URLs.
The result is a more controlled alternative to fully automatic content generation.
SEO And Discover Readiness
HuubStory AI includes its own technical SEO layer for published Web Stories.
Each public Story can include:
- Canonical URL pointing to the Story URL.
- Meta description.
- Robots directive with large image preview support.
- Open Graph title, description, URL, locale, image, image type, width, and height.
- Twitter Card metadata.
- JSON-LD structured data.
- Publisher organization data.
- Publisher URL.
- Publisher logo as
ImageObject. - Main Story image as
ImageObject. - Published and modified dates.
- Author data when available.
The plugin has been tested against output from:
- Yoast SEO
- Rank Math SEO
- All in One SEO
The intended behavior is to preserve the Story-specific metadata and avoid duplicated or conflicting canonical, description, Open Graph, Twitter Card, and schema output.
Web Stories Sitemap
HuubStory AI creates a dedicated sitemap for published Web Stories.
Default sitemap URL:
/webstories-sitemap.xml
For larger sites, the plugin supports paginated sitemap files such as:
/webstories-sitemap1.xml
/webstories-sitemap2.xml
The sitemap cache is invalidated when Web Story posts are created, updated, deleted, or change publication status. When public indexing is allowed, the plugin can also expose the Web Stories sitemap through robots.txt.
Editorial Workflow
The Free workflow is intentionally focused:
- Web Stories are not generated automatically for all posts.
- The user chooses the source content intentionally.
- Only published source posts are used for public Stories.
- One queued item is processed per execution in the background via Action Scheduler.
- Failed generation and validation events are stored securely in rotating log files without exposing API keys or full prompts.
- The public
/webstoriespage lists published Web Stories, not regular posts.
OpenAI Integration
HuubStory AI connects to OpenAI only after an administrator provides an API key.
Service used:
https://api.openai.com
Data that may be sent for Story generation:
- Source post title.
- Source post excerpt or summary.
- Cleaned source post content.
- Source image URLs.
- Categories or editorial labels.
- Source post URL.
The data is sent to generate a structured Story draft in JSON format. The plugin validates the returned Story before publication.
Relevant OpenAI policies:
Requirements
- WordPress 6.0 or newer.
- PHP 7.4 or newer.
- OpenSSL recommended for encrypted API key storage.
- Valid OpenAI API key for Story generation.
- WP-Cron or a real cron trigger (used to trigger the Action Scheduler).
Installation
- Upload the plugin files to your WordPress plugins directory.
- The main plugin file must be available as
huubstoryai.php. - Activate HuubStory AI in
Plugins. - Open the HuubStory AI admin page in WordPress.
- Connect a valid OpenAI API key.
- Configure publisher identity and logo settings.
- Select source posts and generate Stories.
- Review published Stories at
/webstories. - Submit
/webstories-sitemap.xmlin Google Search Console.
Plugin Structure
assets/
css/
huubstoryai-admin.css
huubstoryai-public.css
js/
huubstoryai-admin.js
includes/
autoloader.php
class-huubstoryai-admin.php
class-huubstoryai-generator.php
class-huubstoryai-queue.php
class-huubstoryai-seo.php
class-huubstoryai-sitemap.php
...
templates/
admin/
render-admin-page.php
render-generation-queue.php
...
single-webstory.php
webstories-page.php
changelog.txt
readme.txt
README.md
huubstoryai.php
Public URLs
The plugin creates and manages these public surfaces:
/webstories
/webstories/{story-slug}/
/webstories-sitemap.xml
/webstories-sitemap1.xml
/webstories-sitemap2.xml
Actual permalinks depend on the site's WordPress permalink settings.
Image Handling
Google Web Stories require specific image proportions and usable raster assets. HuubStory AI includes safeguards for:
poster-portrait-srcimage generation.- Publisher logo image selection.
- Raster fallback variants when the original media does not match required proportions.
- Recommended publisher logo dimensions such as 96x96 or larger.
- Recommended vertical Story poster dimensions such as 640x853 or larger.
Version
Current plugin version:
1.0.0
Stable tag:
1.0.0
Recent Changelog
1.0.0
- Major Release: Complete architectural modernization and native PSR-4 autoloader.
- Feature: Replaced WP-Cron with the robust Action Scheduler library for resilient background processing.
- Feature: Implemented dynamic SEO provider abstractions (Yoast, Rank Math, AIOSEO) to dramatically improve memory usage.
- Feature: Extracted AI failure logs from the database into a secure, rotating file-based logging system to prevent
wp_optionsbloat. - Performance: Added native Object Cache support for complex database queries and sitemap rendering.
- Security: Full code audit compliance with WordPress.org Plugin Check (PCP) standards.
- Architecture: Separated HTML/XML templates into a dedicated
/templatesdirectory for clean separation of concerns.
0.8.78
Added a General Settings content type selector to control the Story JSON-LD @type for news, blog, or business/ecommerce sites.
See readme.txt for the longer release history.
Security And Privacy Notes
- API keys are entered by administrators only.
- The OpenAI key is stored with autoload disabled.
- When OpenSSL and WordPress salts are available, the key is encrypted before storage.
- Error logs are designed to avoid exposing tokens, headers, or full prompts.
- External generation requests only happen after the administrator connects an API key and triggers/queues generation.
Frequently Asked Questions
Does HuubStory AI automatically generate Stories for every post?
No. Stories are created only from intentionally selected posts.
Is an OpenAI API key required?
Yes. Story generation requires a valid OpenAI API key connected by an administrator.
Does the plugin create AMP Web Stories?
Yes. Published Story URLs render as AMP Web Stories using the official AMP runtime.
Does the plugin include SEO metadata?
Yes. HuubStory AI outputs canonical, description, robots, Open Graph, Twitter Card, and JSON-LD metadata for Story URLs.
Does it work with Yoast SEO, Rank Math, and AIOSEO?
The plugin intelligently detects and includes compatibility behavior for Yoast SEO, Rank Math SEO, and All in One SEO so Story metadata remains controlled and avoids duplicate/conflicting output without wasting memory.
Does the version include a manual Story Editor?
No. Advanced manual Story editing is outside the current scope.
License
HuubStory AI is licensed under the GPLv2 or later.
See LICENSE for the full license text.
Keywords
WordPress Web Stories, Google Web Stories plugin, AMP Web Stories, AI Web Stories generator, OpenAI WordPress plugin, WordPress SEO plugin, Web Stories sitemap, mobile storytelling, editorial publishing, visual stories, Discover SEO, structured data, JSON-LD, Open Graph, Twitter Card, Yoast SEO, Rank Math SEO, All in One SEO.