v3.8.0
MINORAugust 12, 2026The Content page loads a page at a time instead of every article you have ever written, paid plans get the connection and article allowances they paid for, and the Labs now tell you which findings a fix cannot move instead of offering one that changes nothing.
✨ New Features
📄The Content page is paginated
Content now loads one page of articles at a time, with Previous and Next, and the heading still shows your real total rather than the number of cards on screen.
- •Measured before the change: 32 articles came to 920 kB on every visit, which projects to 28 MB at a thousand articles
- •The grid reads ten fields and never the article body, so most of that was fetched and thrown away
- •Each profile group shows how many articles that profile has, not how many are on the current page — so the number does not shrink as you page forward
- •Changing a filter returns you to page one, instead of leaving you past the end of a shorter list
🎯The Labs say which findings a fix cannot move, and why
When a tool reports five issues and offers two fixes, it now lists the other three with the reason each was withheld.
- •Q&A format coverage is mostly the share of headings phrased as questions, and fixes never rewrite a heading — your table-of-contents links are built from them
- •Structured data awards five of its fifteen points for JSON-LD, which belongs in the page head rather than in the article, so ten is its real ceiling from the text — an article at 10/15 is finished, not failing
- •A GEO issue the analyzer itself classified as needing a human is no longer sent to a model
- •This is the answer to "I approved the fixes and the score did not move": the points you are missing may be in a dimension a rewrite cannot reach, and now the screen tells you
📚Documentation for the features that had none
Thirteen new articles, covering every screen in the product. The AEO Lab, the GEO Lab, Content Audit, Content Refresh, Competitor Gap, the Bulk Queue, Repurpose, My Sites, SEO Performance and the Research Library had no documentation at all.
- •Every one of the 67 screens in the dashboard is now described in at least one article, and a check in the build keeps it that way
- •New: how a Lab finding becomes an approved section rewrite, and what happens to an article that is already published
- •New: why a Lab tool says it is not enabled for your workspace, and how to turn it on
- •The AEO Visibility Score article lists all six dimensions, what each one actually counts, and the two that a rewrite cannot move
🐛 Bug Fixes
Paid plans were being enforced at the Starter allowance
The Integrations page showed an Enterprise account a two-site limit with the Add button disabled, automation offered every package one article a day, and the dashboard told everyone their content limit was ten. All three read the plan from a snapshot written once at signup and never updated.
Ranking keywords failed for any workspace with keyword research
The Ranking Keywords list and the profile analytics that includes it were failing outright. A keyword record is stored as an object and was being read as a string.
Profile analytics no longer reads your whole library to count it
The content and publishing figures on a profile analysis are computed in the database now. Same numbers, verified against the old calculation on real data, without loading every article to add them up.
The workflow results page stopped sending every version of every article
It attached a full snapshot of each article for every revision ever made, and used only the count.
⚡ Improvements
A build check for reads with no ceiling
Any new customer-facing query that grows with your usage and has no limit now fails the build, with an escape hatch that requires a written reason at the call site.
A build check for documentation coverage
A new screen with no documentation, or an article missing from its section index, is now visible rather than discovered months later.
v3.7.0
MINORAugust 11, 2026The Labs used to report a score and leave you to act on it. Thirteen tabs across SEO, AEO and GEO can now propose a surgical fix for the section a finding belongs to, for you to approve — and the panel tells you which site the article is on and whether the live copy is behind.
✨ New Features
🔧Propose and approve, on thirteen tabs instead of two
Every tab that reports on one of your stored articles can now fix what it found. Proposing writes nothing; you read the before-and-after for each suggestion and approve the ones you want.
- •SEO Lab: Validation
- •AEO Lab: Content Optimizer, Query Alignment, Fact Density, Visibility Score, Simulation
- •GEO Lab: Citability, Authority, Snippets, Entity Alignment, Readability, Structured Data, Competitive
- •Each fix rewrites ONE section, which is what makes it safe on an article that is already published
- •Tabs that take a competitor domain, a URL or a keyword rather than your article say so, instead of offering a control that cannot act
📤The panel answers "if I approve this, what happens?"
It names the site the article is published to, links the live post, says whether publishing will update that post or create a new one, and says whether the live copy is behind your edits.
- •Approving updates the article here. Your live page is unchanged until you push it
- •The push updates the existing post in place — same post, same URL, no duplicate
- •It sends the status the post is already in, so an article you had deliberately unpublished is not put back online because you fixed a sentence
- •Where the status cannot be determined safely, no one-press push is offered and you are sent to the article's own publish dialog
📋The SEO Lab has an article picker
Content Validation and Similarity Check now let you pick one of your articles instead of pasting text, which is what the AEO and GEO tabs already did.
- •One picker shared by all three Labs, so they cannot drift apart
- •Similarity Check has one on each side — comparing two of your own articles is how you find them competing with each other
- •Editing the text box after picking clears the selection, so a fix can never rewrite one article using findings from another
📊Generated articles get tables, lists and quotes where the topic supports them
Articles were pure prose. They now include a comparison table, a data table, an ordered sequence or a pull quote when the material genuinely calls for one.
- •Every structure has a threshold and a refusal: two columns of sentences is not a table, and a continuous explanation is not fragmented into bullets
- •Zero structures is a legitimate outcome for a conceptual topic
- •Cell values are never invented — an unknown figure reads "Not stated"
- •Charts are deliberately not attempted: the publishing path has no chart primitive, so a data table is asked for instead — which is also the form search and answer engines extract
🐛 Bug Fixes
Competitor Gap Analysis answered "Failed to analyze" for every domain
It always had. The keyword endpoint it called does not exist; only the path was wrong.
Switching between repurposed versions showed the wrong body
The version list changed but the text underneath kept the first version you had opened.
Pushing an imported article back could re-upload its cover image every time
And it lost the record of what had already been sent, so "is the live copy behind?" was permanently unanswerable for imported articles.
⚡ Improvements
A bigger navigation with icons, grouped into sections
Twenty-six flat links became six collapsible sections. The Labs' tab bars now wrap instead of clipping the twelfth tool off the edge.
Reddit as a second publishing target
Connect an account, publish, and push updates — Reddit supports editing a post, so a corrected article can be corrected there too. Scoped to your own profile and subreddits you moderate.
v3.6.0
MINORAugust 10, 2026Dark mode, on by default, with a toggle in the navigation and a follow-my-device option in Settings. Building it surfaced four contrast defects that had been in the light theme all along, including a chart series nobody could see.
✨ New Features
🌙Dark mode
The whole application, dark by default. Toggle it from the landing navigation or the dashboard header.
- •Settings → General → Appearance has Light, Dark and Follow my device
- •Follow my device changes with your operating system, live, without reloading the page
- •The theme is applied before the page paints, so there is no flash of the wrong theme
- •Verified by rendering nineteen screens in both themes and measuring the contrast of every element that carries text
🐛 Bug Fixes
Error and warning text was unreadable in the light theme
Two colours used on 162 places between them had no readable variant. They had always been below the accessibility threshold on the cream background.
The primary chart series was invisible
The default line and bar colour was a near-white acid green on a light background, used in 41 places.
The legal pages were dark text on a dark page
Terms, Privacy and the rest never received the redesign, so they rendered with the old dark styling on the light site.
Re-publishing an article created a second post instead of updating the first
Publishing the same article twice left two posts on your site. It now updates the post it created.
Cover images sometimes drew a camera
The image prompt named a photographer, which the image model read as a subject.
⚡ Improvements
Billing is reachable from the navigation
It had no entry point of its own — the only way in was a link inside the Integrations page. Settings now has one tab bar covering General, Integrations, Billing & Plan, API and Team.
The account menu works
Profile and Settings in the account menu did nothing at all.
The pricing buttons on the landing page work
They had no handler. Signed in they take you to your plan; signed out, to registration with the plan preselected.
v3.5.1
MINORAugust 9, 2026Import an article from WordPress, improve it here, and push it back to the same post. The whole cycle now works end to end, and the Sections editor works on imported and generated articles.
✨ New Features
📄Read the article before you import it
Opening an article in My Sites now shows the full article — headings, paragraphs, lists and images — instead of an empty preview.
- •The body is fetched from your site on demand, so what you preview is exactly what gets imported
- •Categories, tags, author and featured image come with it
- •An article you have already imported offers "View imported content" rather than importing it twice
🔄Push your improvements back to the same post
Publishing an imported article updates the original post on your site instead of creating a second copy, and the update is now recorded.
- •Works from the article page and from the end of the Improvement Wizard
- •Shopify articles update in place too — they used to be duplicated on every publish
- •The published URL and the publish history now appear on the article, so you can see and re-open what went live
- •If your site refuses the update, you are told — the wizard used to close on its success screen
🧩Imported articles behave like the ones you generate here
Everything that reads an article now reads an imported one correctly: the Improvement Wizard, SEO scoring, export, repurposing, social snippets and link suggestions.
- •The Improvement Wizard analyses the article text — it was reading the page markup, so it found no headings
- •Scheduled publishing sends the full article body
- •An article that is live on your site is shown as published in your library, not as a draft
- •Re-importing an article to pick up changes made on your site keeps the article intact
📝The Sections editor works on every article
Adding, deleting and reordering sections now works on imported and generated articles, and the article body updates with them.
- •Adding a section used to report success and then not appear
- •Deleting or reordering used to fail with "section not found"
- •Editing a section now updates the article everywhere, not only when publishing
🐛 Bug Fixes
Competitor Gap Analysis works
It answered "Failed to analyze competitor" for every domain because it called an SEO data endpoint that does not exist. It now returns the keyword gaps, and says specifically when the data provider is the problem.
Drafts and private posts appear in My Sites
Requests to your site were not being authenticated, so only publicly visible posts were listed and the article count was wrong.
A wizard fix is no longer applied and then ignored
On imported articles the improvement was saved in one place and read from another, so the article did not change.
Whether your local edits are ahead of your site is now accurate
The indicator always said "no local changes", even straight after rewriting an article.
⚡ Improvements
Bigger, clearer navigation
The sidebar section headings are larger and each carries an icon, and the links themselves are a size up.
Repurpose shows the version you clicked
Selecting a different version now changes the content, not just the heading above it.
Publishing sends HTML, never raw markdown
Some publish paths could send the article as markdown, which showed as literal ## and ** on the live page.
v3.5.0
PATCHAugust 9, 2026A grouped, collapsible sidebar; clear error messages in place of "[object Object]"; and fixes to Content Audit, Repurpose, SEO Performance and My Sites.
✨ New Features
🧭Grouped navigation
The sidebar's 26 links are now organised into six collapsible sections, with only the one you are working in expanded.
- •Create, Optimise, Library, Publish, Measure and Manage, with Dashboard pinned at the top
- •The section containing the page you are on opens automatically
- •A marker shows which collapsed section holds your current page
- •Every section is keyboard operable and announced to screen readers
♻️Repurpose: open any version you have generated
Previously generated versions are now clickable and open in the preview, and the preview names the platform it was written for.
- •Opening an article you have already repurposed shows the newest version straight away
- •The version you are reading is marked in the list
- •The preview heading names the platform — LinkedIn, Medium, Email or Twitter
📈SEO Performance explains itself
When the table is empty it now tells you which Search Console property was read, how many rows Google returned and how many matched your articles.
- •Distinguishes "nothing indexed yet" from "traffic that does not match your articles"
- •States that the data is read live from Search Console each time, not stored
🐛 Bug Fixes
Error messages no longer read "[object Object]"
Across the app, a failed request now shows the reason the server gave. Competitor Gap Analysis was the most visible case.
Content Audit no longer reports a score it could not measure
Auditing a single article URL used to produce a Site Health Score of 0 from zero crawled pages. The audit now looks at the whole site that URL belongs to, falls back to auditing that one page, and tells you when it could not read anything at all instead of scoring nothing.
My Sites lists your articles again
The article list asked WordPress for a post status it does not accept, so every site showed "0 articles" and a WordPress API error. It now loads your published posts, and drafts and pending posts can be selected explicitly.
SEO Performance page title
The page heading showed an internal label instead of its name.
⚡ Improvements
AEO Lab and GEO Lab tab bars
The twelve tools in each lab were in a single row that clipped the last entry with no indication more existed. The bar now wraps so every tool is visible, and the selected tool is readable and announced rather than shown by colour alone.
Keyboard and screen-reader access
Navigation sections, lab tabs and the repurpose version list are all operable by keyboard and announce which item is current.
v3.4.0
MINORAugust 7, 2026Automation was inventing article topics from a keyword with no date and no search behind it, which is how a post about a two-generation-old phone reached a live site. Articles gained a working table of contents. The plans were repriced against measured cost.
✨ New Features
🔗Every article has a table of contents, and its links work
Automation-published articles had none at all, and the ones the wizard produced had links that pointed at headings that did not exist.
- •One implementation builds both the links and the heading anchors in a single pass, so they cannot disagree
- •Duplicate headings get distinct anchors — two "FAQ" sections used to send every link to the first
- •Nothing is added to an article with fewer than two headings
🐛 Bug Fixes
Automation wrote about the wrong year, and about products two generations old
The topic was invented from a bare trending keyword using the model's training data — no date, no search — and the research step then confirmed the wrong premise it had been handed. Topic creation is now grounded in a dated, recency-filtered search before the title exists, and an ungrounded run is forced to an evergreen topic rather than guessing at news.
The writer never received the research
Research reached the keyword and outline steps and stopped there, so the article itself was written from training data filtered through an outline. Both the wizard and automation were affected.
Every source URL from the research step was being discarded
Citations came back in a shape the parser did not read, so the sources rendered as empty links.
Literal ### appeared in published articles
Headings inside a quote block were shipped as raw text. Measured on ten live posts: every one of them had two or three.
Published articles showed their title twice
The article's own heading was included in the body as well as the post title.
Twelve images were generated per article against a budget of two
Images are the most expensive part of an article and the section-image loop had no limit, so every plan was six times over the allowance it was priced on.
⚡ Improvements
Pricing that matches what the plans cost to serve
Every tier was repriced against measured cost — API, infrastructure, storage and payment fees — in the product and in Stripe together. Anyone on an old price keeps it.
The pricing on the landing page is the pricing you are charged
The public page described plans that no longer existed, promised one tier as unlimited when it is capped, and hid the real top tier entirely. A check now fails the build if the page and the plans disagree.
Cover images look like photographs
The image instruction asked for a concept and got stock-art; it now asks for a concrete scene in photographic language.
v3.3.0
MINORAugust 6, 2026The product could not send email at all — password recovery and team invitations answered success and sent nothing. Your WordPress and Shopify credentials were stored unencrypted. Screens that could not load their data were claiming there was none.
✨ New Features
✉️Email works
Password recovery, team invitations, payment-failure notices and usage warnings are delivered. The blocker was a hard dependency on a single vendor, so the transport is now provider-agnostic.
- •Password recovery completes end to end: request, email, reset, and every other session revoked
- •A team invitation now reports truthfully whether the email was sent, and creates the invitation either way
- •With no transport configured, the request is refused with an explanation instead of claiming success
🔒A security page that only claims what the product does
Every statement on it is verifiable against the product, and it says plainly what is NOT claimed.
🐛 Bug Fixes
WordPress and Shopify credentials were stored in plaintext
An application password is a real credential for your own site. They are encrypted at rest now, with the existing ones migrated.
Six screens told connected customers they were not connected
A failed check was drawn as "not connected" rather than as a failed check — so a Search Console outage looked like a disconnected account.
Fourteen dashboard actions failed silently
A write the server refused left the screen looking as though it had worked.
Four dashboard controls called endpoints that had never been built
Retrying a failed publish, cancelling an invitation, the member picker and the Shopify blog selector.
Changing an article's status from the article page did nothing
The dropdown reported success and the status did not change.
Every date boundary was computed in the server's timezone
Daily usage could be recorded against the previous day, and a billing period could start an hour before the month.
Both inbound publishing webhooks had a guard that could never fire
Not a live bypass — the routes in front of them refuse first — but the check itself was inert.
⚡ Improvements
Recording usage no longer scales with the amount reported
It made one database round trip per unit. Reporting 200 units took 2.8 seconds inside a single request; it is now flat.
Spreadsheet-safe exports, everywhere
Every CSV this product emits neutralises formula injection, and download filenames no longer break on non-Latin titles.
v3.2.0
MINORAugust 3, 2026A full security pass. Cross-tenant access was possible on articles, platform connections, keyword lists and collections; password-reset tokens were stored in plaintext; there was no request size limit. All closed, and the type gate that would have caught several of them is back on.
✨ New Features
🛡️Error boundaries on every page
A render error used to produce a blank white page. Every area of the application now has a boundary that keeps the navigation usable and offers a way back.
🐛 Bug Fixes
Cross-tenant access on articles, connections, keyword lists and collections
Requests carrying another workspace's identifier could read or change data that was not theirs — including a platform connection's stored credentials. Every by-identifier route is now scoped to the caller's own organisation, centrally rather than route by route, and a request naming a workspace outside your organisation is refused before a handler runs.
Paying customers were enforced at the free tier
Two separate plan definitions existed and the one being enforced defaulted to free, so a paid account could be hard-blocked at two articles a month with an upgrade prompt.
A failed card never marked a subscription past due
Three fields moved in the payment provider's API and the code could not see the change, so a failed payment left full access in place.
Cancelling a subscription ended access immediately
Instead of at the end of the period already paid for — up to two months lost. The same bad date then produced a "$0.00, 0 days remaining" figure on the upgrade screen.
Password-reset tokens were stored in plaintext
Only a hash is stored now, single-use, and issuing a new link invalidates the outstanding one.
No request body size limit anywhere
A 24 MB body was buffered and parsed without authentication.
A customer keyword could be used as a regular expression
Which blocked the server for 73 seconds and then crashed it.
Restoring an article version did not work, for anyone
And the same route had no tenancy check at all — both fixed together, because fixing only the first would have opened a cross-tenant write.
The API keys screen was handing out keys that never existed
One settings panel generated a plausible-looking key in the browser, showed it as live, and reported success on revoking it.
The AI stream endpoint returned fabricated content
It served hardcoded prose one word at a time to imitate a model, on a live authenticated endpoint. It now refuses instead.
Inbound publishing webhooks had never worked
Nothing could create an endpoint, so every delivery was rejected. They are persisted and signature-verified now.
Deleting a keyword cluster reported success and deleted nothing
⚡ Improvements
Native browser dialogs replaced throughout
Eight alerts and thirteen confirmations used the browser's own dialogs, which take their buttons from the operating system language — so a customer reading the product in Arabic got an English left-to-right dialog on the destructive actions specifically.
The shared dropdown works from the keyboard
Including the organisation switcher and the account menu, which appear on every page.
Right-to-left layout works
It never had: the direction was being applied and then removed as the page loaded, so Arabic rendered inside a left-to-right document. 417 hard-coded directional styles were converted.
Automation runs outside the web request
A run takes minutes and used to execute inside an HTTP request, capped at roughly one run a minute. Each run is now claimed atomically, so two workers can never charge the same run twice.
Images are stored as files rather than inside the database
Rate limiting on every endpoint
Four of about 350 routes had any limit. The default now applies everywhere, per customer and per endpoint.
Faster lists everywhere
Publishing history, the publishing queue, automation statistics, keywords and the dashboard were reading every row a workspace had ever produced. They are bounded or aggregated now — and the per-site breakdown on the automation analytics card, which had always been empty, reads the right table at last.
The whole product in seven languages, including right-to-left, with a switcher in the dashboard header and on the public site. Plus a Free allowance that resets every month instead of expiring once.
✨ New Features
🌍Seven languages
English, German, French, Italian, Spanish, Swedish and Arabic, across the dashboard, the Labs, the documentation and the public pages.
- •A switcher in the dashboard header and in the landing navigation
- •Arabic includes right-to-left layout
- •Around 15,000 strings that were still English placeholders were translated
- •Every area is covered: workflow, automation, keywords, profiles, analysis, settings, team, billing and the public pages
🎁A Free allowance that resets every month
The free tier was a one-time pool that expired. It is now a monthly allowance, so an account that has been idle is usable again next month.
🐛 Bug Fixes
Live progress stopped updating behind some networks
The generation log appeared frozen while the work was proceeding normally. A keep-alive now keeps the connection open.
The five-step workflow could produce duplicate articles
And the finished article was hard to read on the light theme.
Research fell over when the direct provider had no credit
It now falls back to a second provider instead of failing the step.
Twenty-two Lab and documentation screens crashed on load
A missing import during the language work meant the page threw instead of rendering.
⚡ Improvements
Contact details, one support channel
A support email and a ticketing system, and the phone number, WhatsApp link and street address removed from every page.
AI endpoints check your allowance before spending it
59 endpoints could be reached without one.
v3.0.0
MAJORApril 11, 2026GEO Lab (Generative Engine Optimization Laboratory) — a full-featured module with 9 sub-modules for optimizing content for AI engines like ChatGPT, Perplexity, Gemini, and AI Overviews.
✨ New Features
🌍GEO Lab Module
Comprehensive Generative Engine Optimization laboratory with 9 analyzers, per-workspace feature flags, and a research library.
- •Citability Analyzer: passage-level scoring for AI citation potential across 5 dimensions
- •Source Authority Scorer: E-E-A-T marker detection with citation quality and author credential evaluation
- •Snippet Optimizer: answer-first formatting analysis with meta description suggestions
- •Entity Alignment Engine: named entity extraction, consistency, disambiguation, and relationship clarity
- •Structured Data Validator: JSON-LD, Microdata, RDFa detection with Schema.org validation and Speakable markup
- •AI Readability Scorer: heading hierarchy, content segmentation, semantic markup, sentence complexity, keyword density
- •Competitive GEO Analyzer: side-by-side comparison across all 6 GEO dimensions with prioritized recommendations
- •Evolution Dashboard: 7d/30d/90d trend tracking with decay alerts and composite health score
- •Research Library: paginated records with search, filter, favorite, and tag management
🎛️GEO Lab Feature Flags
Per-workspace toggle control for each of the 9 GEO Lab sub-modules with activity logging.
- •9 independent feature flags for granular control
- •Toggle UI on dedicated feature flags page
- •Activity logging for flag changes
- •Getting-started prompt when all flags disabled
📊GEO Lab Dashboard & Navigation
Full dashboard with overview stats, sub-navigation, content selector, and score displays.
- •Overview page with total analyses, average GEO score, content scored, enabled modules
- •Horizontal sub-navigation bar across all 11 GEO Lab pages
- •Content selector component for workspace content analysis
- •Color-coded score displays: red (0-39), yellow (40-69), green (70-100)
- •Sidebar navigation entry after AEO Lab
- •Landing page and pricing integration with Pro and Enterprise plans
⚡ Improvements
Consolidated GEO Code
Scattered GEO analysis code (GEO Analyzer, GEO Optimizer, Geopolitical Context Engine) consolidated into a cohesive laboratory module.
AEO Lab Architecture Mirror
GEO Lab follows the same proven architecture as AEO Lab for consistency and maintainability.
Automation pipeline wired to real AI services with quality gates, plus AI Content Audit, Social Media Snippets, Collaboration Workflow, White-label Reports, and Public REST API.
✨ New Features
⚡Production Automation Pipeline
Automation pipeline steps wired to real Gemini AI, quality gates, brand voice, image generation, and cost tracking.
- •Topic creation wired to Gemini AI with structured JSON output
- •Content generation using real EnhancedContentEngineService
- •Publishing step sends actual article content to WordPress/Shopify
- •Quality gate enforcement before publishing
- •Brand voice injection from business profiles
- •AI image generation for cover and section images
- •SEO analysis auto-run on generated content
- •Social snippet generation for Twitter, LinkedIn
- •Per-run cost tracking with estimated USD
- •Webhook notifications on pipeline completion
- •Rate limiting and graceful degradation
🔍AI Content Audit
Crawl any website and score every page for SEO quality, content freshness, readability, and technical SEO.
- •Website crawl with page-by-page scoring
- •Site health score with rewrite/optimize/maintain recommendations
- •Per-page breakdown: SEO quality, content freshness, readability, technical SEO
- •Issue detection with severity classification
📱Social Media Snippet Generator
Transform articles into platform-optimized social media posts.
- •Generate snippets for Twitter/X, LinkedIn, Facebook, Instagram
- •Platform-specific formatting and character limits
- •Word count tracking and copy to clipboard
👥Collaboration & Approval Workflow
Multi-role content approval pipeline with comments and transition history.
- •Draft → Review → Approved → Published status pipeline
- •Writer, Editor, Approver role assignments
- •Threaded comments on content approvals
- •Full transition history with timestamps
📄White-label Reports
Generate branded PDF/HTML reports with custom templates and organization branding.
- •Customizable report templates
- •Organization branding (logo, colors)
- •PDF and HTML export formats
- •Scheduled report generation
🔌Public REST API
API key authentication for external integrations with rate limiting and documentation.
- •API key generation and management per workspace
- •Rate-limited endpoints for content, keywords, and publishing
- •Comprehensive API documentation
⚡ Improvements
Pipeline Cost Visibility
Each automation run now tracks estimated cost in USD with per-step progress data.
Cron Secret Protection
Automation scheduler endpoints protected with CRON_SECRET environment variable.
Bulk article generation, content refresh engine, competitor gap analysis, content calendar, SEO performance tracking, content briefs, brand voice learning, multi-language support, and smart internal linking.
✨ New Features
📦Bulk Article Generation
Submit 10-50 topics for sequential AI article generation with progress tracking.
- •Queue dashboard showing status of each article
- •Duplicate detection before generation
- •Background task integration with progress indicators
- •Batch completion summary with links to all articles
🔄Content Refresh Engine
Detect stale content and refresh it with AI-powered suggestions and one-click updates.
- •Freshness scoring based on age, traffic trends, and content quality
- •AI-generated refresh suggestions per section
- •One-click section refresh with version tracking
- •Freshness cache with automatic expiration
🎯Competitor Content Gap Analysis
Analyze competitor URLs to discover keyword opportunities and content gaps.
- •Competitor URL analysis with keyword extraction
- •Opportunity scoring based on search volume and difficulty
- •Partial coverage detection for existing content
- •Suggested titles and descriptions for gap topics
📈SEO Performance Tracking
Track article ranking snapshots with keyword position data over time.
- •Daily ranking snapshots per article
- •Keyword position tracking with historical data
- •Impressions, clicks, CTR, and average position metrics
- •Trend visualization across snapshot dates
🎤Brand Voice Learning
Analyze existing content to learn tone, sentence structure, vocabulary, and paragraph patterns.
- •Crawl source URLs to extract writing patterns
- •Tone analysis: formality, humor, technicality, warmth
- •Sentence structure profiling: length distribution, complexity
- •Vocabulary extraction: preferred terms, avoided terms, jargon level
- •Auto-inject learned voice into content generation prompts
🔗Smart Internal Linking Suggestions
AI-powered suggestions for internal links between workspace articles.
- •Relevance scoring between content pairs
- •Suggested anchor text and paragraph placement
- •Accept/dismiss workflow with applied tracking
- •Bidirectional link suggestions (inbound and outbound)
🌐Multi-Language Article Generation
Generate articles in multiple languages with localized SEO optimization.
- •Language selection in content generation workflow
- •Localized keyword research and SEO analysis
- •Language-appropriate content structure and formatting
📋Content Briefs Export
Export structured content briefs for external writers with SEO guidelines.
- •Brief generation from keyword research and competitor analysis
- •Export to PDF, Markdown, and JSON formats
- •Includes target keywords, outline, word count targets, and SEO requirements
⚡ Improvements
Content Calendar View
Visual calendar showing scheduled and published content with drag-and-drop rescheduling.
One-Click Republish
Republish updated content to connected platforms with a single click from the content detail page.
v2.7.0
PATCHFebruary 8, 2026Five critical runtime bugfixes: trending keywords save from workflow, GSC analytics silent errors, documentation typography, saved topics navigation, and multi-article queue progression.
🐛 Bug Fixes
Trending Keywords Save from Workflow
Fixed TrendingKeywordsModal not receiving workspaceId when opened from TopicCreationStep, causing all save operations to fail.
GSC Analytics Silent Null Return
Fixed fetchGscSearchPerformance silently returning null on errors instead of surfacing error information to the frontend.
Documentation Typography Plugin
Installed and configured @tailwindcss/typography plugin so prose-* classes render properly in documentation articles.
Saved Topics Navigation
Added "Saved Topics" as a child nav item under Workflow in the sidebar for discoverability.
Multi-Article Queue Completion
Fixed handleComplete in ContentGenerationStep always navigating away instead of calling onArticleComplete in multi-article mode.
⚡ Improvements
GSC Error Visibility
Analytics API now includes gscError field when GSC fetch fails, allowing frontend to display specific error messages.
Workflow Topics Link Enhancement
Saved Topics link on workflow page upgraded from small text to a prominent button-style link.
v2.6.0
MINORFebruary 5, 2026Claude Blog methodology integration with 12 content templates, GEO/AEO analyzer, quality gate enforcement, content repurposing to 5 formats, and full frontend UI for template selection, quality display, and repurpose panel.
✨ New Features
📋Content Template System
12 structured content templates with AI citation strength ratings and automatic template suggestion based on topic signals.
- •12 templates: how-to, listicle, case study, comparison, ultimate guide, and more
- •Auto-detect best template from topic signals
- •Template selector UI in workflow Step 5 with grid cards
- •AI citation strength rating per template
- •Word count range display (min-max)
✅Quality Gate Display
Visual quality gate results with pass/fail status, composite score, 5-category breakdown, and severity-sorted violations.
- •Pass/fail indicator with green checkmark or red warning
- •Composite score (0-100) with color coding: green ≥80, yellow ≥50, red <50
- •5 category progress bars: Content Quality, SEO Optimization, EEAT Signals, Technical Elements, AI Citation Readiness
- •Violations sorted by severity: critical → high → medium → low
- •Integrated into content detail page
🔄Content Repurpose Panel
Transform articles into 5 formats: Twitter/X threads, LinkedIn posts, email newsletters, YouTube scripts, and key takeaways.
- •5 repurpose format options as selectable cards
- •One-click repurposing with loading state
- •Read-only output with word count and preserved stats
- •Copy to clipboard functionality
- •Integrated as a tab on the content detail page
🌐GEO/AEO Analyzer
New SEO scoring category for Generative Engine Optimization with 5 sub-checks.
- •Passage citability scoring
- •Q&A format detection
- •Entity clarity analysis
- •Extraction structure evaluation
- •Crawler accessibility check
- •Integrated into SEO scoring engine as 7th category
⚡ Improvements
Content Generation Enhancement
AI prompts now incorporate template structure and content rules when a template is selected.
Quality Gate Auto-Run
Quality gate validation runs automatically after content creation and results are included in the API response.
Backend Property Tests
Added property-based tests for template selection determinism, GEO score bounds, quality gate consistency, and SEO category completeness.
v2.5.0
MINORFebruary 2, 2026AEO Lab module, real image search with AI editing, AI-powered quality violation fixes, and analytics/governance data pipeline fixes.
✨ New Features
🤖AEO Lab Module
Professional-grade Answer Engine Optimization laboratory with 9 sub-modules for AI citation optimization.
- •Citation Tracker monitors when content is cited by Perplexity, ChatGPT, Gemini, AI Overviews
- •AI Visibility Score (0-100) across 6 dimensions: entity clarity, factual density, source attribution, structured data, Q&A coverage, claim conciseness
- •Query-Answer Alignment Analyzer simulates AI extraction patterns
- •Content Structure Optimizer with actionable fix suggestions
- •Fact Density & Attribution Auditor scores paragraphs 0-10
- •Schema & Structured Data Generator for FAQ, HowTo, Article JSON-LD
- •AI Engine Simulation predicts citation likelihood per engine
- •Competitive Citation Analysis identifies competitor citability factors
- •AEO Evolution Dashboard tracks citation trends and decay alerts
🖼️Real Image Search + AI Editing
Replace pure AI-generated images with real internet-sourced images edited via Google Imagen 4.
- •Internet image search for royalty-free images based on article context
- •Google Imagen 4 editing applies custom designs to real source images
- •Works in both Step 5 content generation and article edit page
- •Fallback to pure AI generation when no suitable images found
🔧AI-Powered Quality Violation Fixes
One-by-one AI fix suggestions for Quality Gate violations with preview and undo.
- •Fix button next to each violation in Quality tab
- •Diff-style preview showing original vs proposed replacement
- •Fixes for fabricated-statistics, author-attribution, heading-hierarchy, paragraph-length
- •Version history for each fix with undo capability
- •Re-validates after each fix to prevent cascading conflicts
🐛 Bug Fixes
Analytics GSC Data Display
Fixed analytics page not showing real Google Search Console data due to sync log deduplication skipping display fetches.
Governance Pipeline Data
Fixed governance and evolution pages showing empty state despite having connected domains and published content.
Hardcoded Analytics Values Removed
Removed hardcoded device breakdown, traffic source, and visitor split percentages from analytics API.
⚡ Improvements
Analytics Data Source Labels
Each stat card now shows its data source (via GSC, via content analytics, estimated).
Governance Insufficient Data Messages
Specific reason displayed when governance data is insufficient instead of generic empty state.
v2.4.0
MINORJanuary 30, 2026Trending keyword save/reuse, multi-topic article generation, reusable content blocks, SEO Lab data pipelines, and ranking/clustering data population.
✨ New Features
📈Trending Keywords Save & Reuse
Save trending keywords to lists with full DataForSEO research data for future reuse.
- •Save individual or all trending keywords to keyword lists
- •Auto-fetches search volume, difficulty, CPC, competition, intent for each saved keyword
- •Saved Keywords modal for quick reuse in SEO Lab and Workflow Step 4
📝Multi-Topic Article Generation
Select multiple topics in Step 4 and generate separate articles for each in a batch queue.
- •Multi-article queue panel between Step 4 and Step 5
- •Progress indicator showing Article X of Y
- •Preserves all workflow context across topic generations
- •Completion summary with links to all generated articles
🧩Reusable Content Blocks
Design saveable content templates (newsletter boxes, quote boxes, styled elements) for reuse across articles.
- •Visual editor with HTML structure, CSS styling, and placeholder fields
- •Built-in block types: Newsletter Signup, Quote/Testimonial, CTA, Comparison Table, Feature Highlight, Author Bio
- •Insert from "My Blocks" category in the content editor InsertMenu
- •Live preview panel in block editor
🔄SEO Lab Data Pipelines
Automated data collection pipelines for Evolution and Governance tabs with real metrics.
- •ContentAnalyzer extracts structural metrics from published HTML
- •Publishing webhook triggers automatic post-publish analysis
- •DataPipelineOrchestrator automates performance collection, SERP analysis, citation checks
- •Pipeline execution logging with timing and status tracking
- •Page tracking registry for published content monitoring
🐛 Bug Fixes
Profile Stats Showing Zero
Fixed profile cards showing 0 articles and 0 sessions by computing real counts from Content and WorkflowSession tables.
Ranking Section Empty
Fixed Keywords page Tracking tab showing empty state by fetching real TrackedKeyword data.
Clustering Section Empty
Fixed Keywords page Clusters tab showing empty state with Generate Clusters action.
⚡ Improvements
Saved Topics from Step 4
Topics generated in Step 4 are now saved and accessible for future article creation from the Workflow page.
Analytics Data Clarity
Analytics page now shows data source indicators and explanatory banners for each metric section.
Documentation Section Update
Documentation updated to cover all implemented features with proper layout fixes.
v2.3.0
MINORJanuary 28, 2026Trending keywords modal, SEO Lab research integration into workflow AI prompts, WordPress tag creation, real-time workflow progress with SSE streaming, and plain English status messages.
✨ New Features
🔥Trending Keywords & Topics Modal
DataForSEO-powered trending keyword discovery in SEO Lab AI Research and Workflow Step 4.
- •Niche-based trending keyword search via DataForSEO Google Trends API
- •Top 20 trending keywords with trend scores
- •Click to populate seed keyword or topic field
- •Shared reusable component across SEO Lab and Workflow
📡Real-Time Workflow Progress (SSE)
Server-Sent Events streaming for genuine real-time progress across all 5 workflow steps.
- •Replaces simulated setTimeout delays with actual server-sent progress events
- •Item-level counters (e.g., "Analyzing page 5/29", "Writing section 3/7")
- •Elapsed timer and estimated time remaining
- •Graceful fallback for non-streaming endpoints
💬Plain English Workflow Status
Detailed real-time activity feed showing every action in simple, user-friendly language.
- •Scrollable activity log with timestamped messages
- •Step-specific messages: page discovery, source validation, section writing
- •Processing/success/error indicators per message
- •Auto-scroll with manual scroll pause support
🏷️WordPress Tag Creation on Publish
Create new WordPress tags directly from the publish dialog without switching to WordPress.
- •Searchable multi-select tag dropdown with existing tags
- •"Create tag" option for new tag names
- •Tags created on WordPress during publish operation
- •Fetch and create tags API endpoints
🐛 Bug Fixes
Step 5 Double-Click Bug
Fixed Complete button requiring two clicks by ensuring single-click save-and-navigate with immediate disable.
Governance/Evolution Empty Data
Fixed data pipeline not populating metrics by auto-registering published articles and providing Run Pipeline button.
⚡ Improvements
SEO Lab Research in AI Prompts
Attached SEO Lab research records are now formatted and injected into workflow AI prompts for all 5 steps.
Rotating Tips During Long Operations
Helpful tips and encouragement messages displayed during workflow steps exceeding 15 seconds.
v2.2.0
MINORJanuary 27, 2026SEO Lab UX overhaul with pagination/sort/filter/export, OpenClaw dashboard UI, multi-property GSC/GA4 analytics, and Google Search Console integration.
✨ New Features
🦞OpenClaw Dashboard UI
Frontend interface for the OpenClaw Adaptive SEO backend with feature flags, AI research, validation, evolution, governance, and hybrid content pages.
- •OpenClaw section in sidebar navigation
- •Overview page with feature flag status and key metrics
- •Feature flags management with per-workspace toggles
- •AI Research page with Keywords, Competitors, Links, City Map tabs
- •Validation Engine page for content validation, similarity, and link checks
- •Evolution Dashboard with correlations, hypotheses, experiments, SERP drift, AI citations
- •Governance Dashboard with authority scores, velocity, volatility
- •Hybrid Content generation form with preview
📊Multi-Property GSC & GA4 Analytics
Connect multiple Google Search Console and Google Analytics 4 properties per workspace.
- •Multiple GSC property connections without removing existing ones
- •Property selector dropdown when multiple properties connected
- •GA4 OAuth authorization with analytics.readonly scope
- •GA4 dashboard: sessions, users, page views, bounce rate, traffic sources, top pages, device breakdown
- •Real-time active users from GA4 Realtime API
- •Date range presets: Last 7/28/90 days, Last 12 months
🔍Google Search Console Integration
OAuth2 GSC connection feeding real search data into SEO Lab pipelines.
- •OAuth2 connection with webmasters.readonly scope
- •Property selection from available GSC sites
- •Search Analytics data: clicks, impressions, CTR, average position
- •Automatic PageStructuralMetric population for Evolution/Governance
- •URL Inspection API for indexation status tracking
- •Ranking velocity calculation across sync periods
- •Automated 24-hour sync scheduling
🐛 Bug Fixes
Research Library Favorite Toggle
Fixed favorite star not updating by implementing optimistic UI updates with rollback on failure.
Research Library Delete
Fixed delete not removing cards by implementing optimistic removal with re-insert on failure.
Governance Domain Selection
Fixed "domainId is required" error by auto-detecting connected domains.
Evolution Empty Array Display
Fixed raw [] rendering by treating empty arrays/objects as empty data with descriptive messages.
⚡ Improvements
SEO Lab Pagination
All SEO Lab data views now paginate at 25 rows with page navigation controls.
SEO Lab Sort & Search
Sortable column headers and debounced search input across all data tables.
SEO Lab Export
CSV and JSON export buttons on all data tables for filtered/sorted data.
ResultsPanel Improvements
Row count summary, proper empty states, configurable page size, sort indicators.
Sidebar Navigation Reorder
SEO-Lab moved directly after Workflow for easier navigation.
v2.1.0
MINORJanuary 26, 2026SEO Lab research persistence and workflow integration, interactive product tour engine, seamless article import, and enhanced keyword management.
✨ New Features
🔬SEO Lab Workflow Integration
Auto-save every SEO Lab analysis result and attach research to workflow steps for AI-enriched content generation.
- •Auto-save all 15 analysis types to Research Library
- •Browsable Research Library with search, filter, favorite, tags
- •Attach research to workflow steps with relevance recommendations
- •Context injection formats research data into AI agent prompts (max 8000 chars)
- •Research record data validation and tag management
🎯Interactive Product Tour Engine
Comprehensive onboarding system with fluid spotlight animation, smart tooltips, and keyboard navigation.
- •Fluid spotlight animation gliding between elements (300-500ms transitions)
- •Smart tooltip positioning avoiding viewport edges
- •Pulsing beacon indicators on target elements
- •Keyboard navigation (arrows, Enter, Escape)
- •Tour state persistence in localStorage
- •Analytics tracking for tour engagement
- •WCAG accessible with ARIA attributes and focus management
🔑Enhanced Keyword Management System
Professional keyword management with lists, tracking, clustering, competitive analysis, and visualizations.
- •Keyword lists with folders, sharing, and CSV import
- •Position tracking with daily checks and historical graphs
- •Automatic keyword clustering by semantic similarity
- •Competitive gap analysis across competitor domains
- •Interactive charts: trend lines, difficulty histograms, ranking history
- •Content-keyword linking for targeted article tracking
📥Seamless Article Import
Transform imported WordPress/Shopify articles into first-class content with proper parsing and normalized storage.
- •HTML entity decoding during import
- •Proper section grouping under real headings
- •Normalized Content_Body storage (raw + html)
- •Wizard fix integration for imported articles
- •Reliable update-on-site pushing improved content back
- •Atomic import transactions
🐛 Bug Fixes
Imported Article Content Display
Fixed imported articles showing raw CSS/styling code by properly handling ContentBlock[] array format.
Profile Deletion List Filter
Fixed soft-deleted profiles still appearing in list by adding deletedAt: null filter to all queries.
⚡ Improvements
Workflow Context Injection Formatting
Research data formatted as human-readable summaries with labeled sections instead of raw JSON dumps.
SEO-Lab Branding Consistency
Consistent "SEO-Lab" naming across all UI components, navigation, and labels.
v2.0.0
MAJORJanuary 23, 2026Major release with production-ready Stripe billing, multi-platform publishing, unified analytics, intelligent SEO fix engine, and inline SEO fix suggestions.
✨ New Features
💳Production-Ready Stripe Billing
Complete Stripe payment integration with subscription management, three pricing tiers, and usage tracking.
- •Starter ($29/mo), Professional ($99/mo), Enterprise ($299/mo) packages
- •Automatic proration for upgrades
- •Scheduled downgrades at billing period end
- •Invoice history and PDF downloads
- •Stripe Customer Portal integration
🚀Multi-Platform Publishing
Connect and publish to multiple WordPress and Shopify sites from a single dashboard.
- •Multiple WordPress site connections
- •Multiple Shopify store connections
- •Scheduled publication support
- •Publishing history tracking
- •Connection health monitoring
📊Unified Analytics Hub
Comprehensive resource consumption tracking with trends, cost breakdown, and exports.
- •Real-time usage tracking (articles, words, keywords, images)
- •Progress bars with 80% warning and 100% exceeded indicators
- •Daily/weekly/monthly trend views
- •Estimated API cost breakdown
- •CSV export functionality
🧠Intelligent SEO Fix Engine
AI-powered SEO fix system that applies fixes to the correct database records.
- •Fixes apply to ContentSection records (not legacy JSON)
- •Proper section ID resolution for thin-section fixes
- •Introduction/conclusion fixes insert new sections
- •Full undo/rollback support
- •All fixes wrapped in database transactions
✨Inline SEO Fix Suggestions
GitHub-inspired inline AI fix suggestions within the JSON structure viewer.
- •Red background highlighting for issues
- •Green background for AI suggestions
- •Side-by-side original vs suggested comparison
- •Keyboard navigation (Tab, Enter, Escape)
- •Batch "Request All Suggestions" and "Accept All"
🔑Enhanced Keywords Section
Keyword history tracking and ranking performance visualization.
- •Historical keyword tracking
- •Ranking position tracking (current, previous, change)
- •Status categorization (improving, stable, declining)
- •Performance trend charts
- •Advanced filtering options
🐛 Bug Fixes
SEO Batch Fix Section ID Resolution
Fixed batch fix "Record to update not found" error for thin-section issues.
Broken Links Now AI-Fixable
"Potentially Broken Links" changed from manual to AI-fixable.
Structure Tab SEO Values
Structure tab now shows current SEO values instead of stale outline metadata.
Content Overwrite Prevention
Fixes no longer replace entire content - H1, intro, and conclusion fixes work correctly.
React Hooks Build Errors
Fixed React hooks called conditionally in JSON viewer components.
⚡ Improvements
70+ Property-Based Tests
Comprehensive test coverage for billing, publishing, SEO, and more.
Database Schema Updates
New tables for platform connections, publishing records, usage tracking, and keyword history.
Virtual Scrolling
Performance-optimized JSON viewer with 500ms render for 10K word articles.
v1.9.0
MINORJanuary 20, 2026OpenClaw Adaptive SEO platform with multi-model AI routing, AI-native research engine, pre-publish validation, evolution layer, and hybrid content generation. Claude Blog quality scoring and template integration.
✨ New Features
🦞OpenClaw Adaptive SEO Platform
Multi-model AI routing, AI-native research, 5-layer adaptive architecture, and hybrid Google + AI optimization.
- •Multi-model AI routing via OpenRouter (Claude, GPT, Gemini, Grok)
- •AI-powered keyword research replacing expensive third-party tools
- •Multi-model consensus scoring (3 models averaged)
- •Pre-publish validation engine (85/100 minimum score)
- •Correlation engine discovering content structure → performance relationships
- •Experiment engine with controlled 15% rollout and auto-rollback
- •SERP drift detection and AI citation monitoring
- •Decay detection with automated remediation suggestions
- •Cannibalization detection and resolution strategies
- •Authority momentum scoring and adaptive publishing velocity
- •Hybrid dual-structure content (SEO Layer A + AI Extraction Layer B)
- •Per-workspace feature flag control for all OpenClaw features
📋Claude Blog Quality Integration
12 content templates, 5-category quality scoring, GEO/AEO analyzer, and content repurposing.
- •12 structured content templates (how-to, listicle, case study, comparison, etc.)
- •Auto-detect best template from topic signals
- •GEO/AEO Analyzer with passage citability, Q&A format, entity clarity scoring
- •Quality Gate Service enforcing hard rules before publish
- •Content Repurpose Service: Twitter, LinkedIn, Email, YouTube, Key Takeaways
- •Template selection UI and quality gate results display
⚡ Improvements
Enhanced Content Generation Prompts
Content rules from claude-blog methodology incorporated: answer-first formatting, title optimization, heading hierarchy, readability targets.
GEO Category in SEO Scoring
New geo category added to SEO analysis with passage-citability, qa-format, entity-clarity, extraction-structure, crawler-accessibility factors.
v1.8.0
MINORJanuary 17, 2026My Sites section with AI content improvement wizard, BYOK API key management, comprehensive analysis page, enhanced publishing, and dashboard visualizations.
✨ New Features
🌐My Sites & AI Content Improvement Wizard
Manage connected WordPress/Shopify sites, import articles, and improve them with AI-powered step-by-step optimization.
- •View all connected sites with articles list
- •Import articles for optimization with metadata preservation
- •AI Wizard analyzes: internal links, SEO, E-E-A-T, references, sections, imagery, tags
- •AI Fix buttons for automatic improvements
- •Update on Site pushes improved content back to platform
🔐BYOK API Key Management
Bring Your Own Keys for DataForSEO, Firecrawl, OpenAI, Perplexity, and Google API.
- •Toggle between System Keys and BYOK per service
- •Credential validation before saving
- •No billing for BYOK service usage
- •Encrypted storage of user API keys
📈Comprehensive Analysis Page
Profile-specific analytics with content stats, keyword analytics, SERP performance, E-E-A-T scores, and publishing statistics.
- •Profile selector for filtering all data
- •Content statistics by status and word count
- •Keyword analytics by intent and performance
- •E-E-A-T scores and source credibility metrics
- •Publishing history and platform distribution
- •Date range filtering and trend indicators
📉Dashboard Visualizations
Interactive charts for content creation, site distribution, keyword performance, and E-E-A-T scores.
- •Content creation over time chart
- •Content distribution by connected sites
- •Keyword performance metrics chart
- •E-E-A-T score distribution
- •Hover tooltips and drill-down support
🐛 Bug Fixes
Profile Three-Dots Menu
Fixed non-functional dropdown menu on profile cards with proper z-index and click handling.
Profile Refresh Not Fetching Fresh Data
Fixed refresh action to bypass cache and fetch new data from external APIs.
Publishing Page No Real Data
Fixed publishing page to query real PublishingQueue and ScheduledPublish records.
Dashboard Empty Sections
Fixed dashboard API to query real data from database instead of returning empty arrays.
⚡ Improvements
Enhanced Publishing Page
Complete publication history with platform icons, external links, error messages, and retry options.
Navigation Menu Updates
Added My Sites, Keywords, Analysis links to sidebar navigation.
Profile Deletion with Cascade
Proper cascade deletion of associated workflow sessions, links, analysis, and citations.
v1.7.0
MINORJanuary 14, 2026Rich content insert menu with 27+ block types, article quality enhancement matching n8n workflow output, Google Imagen 4 integration, and interactive workflow progress indicators.
✨ New Features
📝27+ Rich Content Insert Options
Contextual insert menu with text blocks, tables, AI images, and charts.
- •Text blocks: bullet points, numbered lists, blockquotes, checklists, paragraphs (short/medium/long)
- •Tables: comparison, feature matrix, pros & cons, pricing, key takeaways
- •7 AI image styles: contextual photo, process flow, concept art, blueprint, infographic, diagram, illustration
- •Charts: bar, pie, line, area, radar, radial, flow diagrams
- •Search/filter input for quick content type finding
✍️Article Quality Enhancement
AI-generated articles now match n8n workflow quality with internal links, tables, EEAT compliance, and rich formatting.
- •3-5 internal links embedded with contextual anchor text
- •Key Takeaway Box, Author Credentials Box, Transparency Disclosure
- •Actual AI-generated prose (not placeholder text)
- •EEAT-compliant language patterns and inline citations
- •Table of Contents for articles with 3+ H2 sections
🎨Google Imagen 4 Integration
Alternative image generation provider with superior photorealism for product images.
- •Google Imagen 4 (imagen-4.0-generate-001) via Gemini API
- •Provider selection: Google Imagen 4 or OpenAI DALL-E 3
- •Automatic fallback between providers
- •Photorealistic style optimization for product images
- •Retry logic with exponential backoff
⏳Interactive Workflow Progress
Animated progress indicators with real-time status updates for all 5 workflow steps.
- •Animated progress bar with percentage completion
- •Current operation phase descriptions
- •Estimated time remaining and elapsed time
- •Step-specific progress phases for all 5 steps
- •Rotating tips during long operations (>15 seconds)
⚡ Improvements
Citation Relevance Validation
Citations scored 0-100 for relevance; only citations scoring 40+ are included.
Commercial Site Filtering
77+ commercial/SEO sites blocklisted from citations for credibility.
Infinite Re-render Prevention
Proper React dependency arrays, memoization, and stable references in content editor.
Large Article Performance
Responsive input under 100ms for 5000+ word articles with virtualization and lazy loading.
v1.6.0
MINORJanuary 11, 2026Critical SEO fix content overwrite bug resolved, WordPress publishing fixes, professional keyword research with real DataForSEO data, and comprehensive AI SEO optimization engine.
✨ New Features
🔍Professional Keyword Research System
SEMrush-level keyword research with real DataForSEO metrics replacing placeholder data.
- •Real search volume, difficulty, CPC, competition from DataForSEO
- •12-month historical trend data with interactive charts
- •Related keywords, question keywords, long-tail variations
- •SERP analysis: top 10-20 URLs with domain/page authority, backlinks, word count
- •Bulk analysis up to 100 keywords with progress indication
- •Cache status indicators (fresh vs cached) with force refresh
🎯AI SEO Optimization Engine
Comprehensive real-time SEO analysis with 30+ factors, one-click AI fixes, and competitor gap analysis.
- •Overall SEO score (0-100) with category breakdown
- •Keyword optimization: density, placement, LSI keywords, cannibalization detection
- •Content structure: heading hierarchy, paragraph length, internal/external links
- •Meta tags: title/description length, power words, SERP preview
- •Readability: Flesch scores, passive voice, transition words, sentence length
- •One-click AI fixes with preview modal and batch fixing
- •Competitor content gap analysis with coverage percentage
- •Search intent alignment and format recommendations
- •SEO history tracking with score trend charts
🐛 Bug Fixes
SEO Fix Content Overwrite Bug
Fixed critical bug where applying SEO fixes overwrote entire content instead of updating specific sections.
WordPress Featured Image
Cover image from CoverImage table now properly set as featured image during WordPress publishing.
WordPress Title Formatting
Surrounding quotes stripped from article titles before publishing.
WordPress Table of Contents
TOC now uses ContentSection.level field (integer) instead of non-existent type field.
⚡ Improvements
H1 Fix Preservation
H1 fixes now update only the first section heading without modifying other sections.
Structure Fix Safety
Introduction/conclusion fixes insert new sections without removing existing content.
Fix Application Atomicity
All fix applications wrapped in database transactions with rollback on failure.
v1.5.0
MINORJanuary 8, 2026Reusable business profiles, AI image generation, WordPress/Shopify publishing, API cost analysis with tiered pricing, and SaaS billing fixes.
✨ New Features
🏢Reusable Business Profiles
Save business analysis as reusable profiles to skip Steps 1-3 for the same website.
- •Save internal links, business analysis, EEAT sources as a profile
- •Profile selector when starting new workflows
- •Profile management page with edit, refresh, delete
- •Per-section data refresh (internal links, analysis, EEAT)
🖼️AI Image Generation
Generate featured and section images with multiple styles and drag-to-resize.
- •Auto-generate featured/hero image from article title
- •Section-level image generation from heading context
- •Multiple styles: photorealistic, illustration, infographic, abstract
- •Image regeneration with different style or prompt
💰API Cost Analysis & Pricing Strategy
Comprehensive cost analysis for all external APIs with tiered pricing ensuring 40-60% margins.
- •Per-action cost calculation for all API integrations
- •Infrastructure cost tracking (Railway, database, Redis)
- •BYOK vs System Keys pricing modes
- •Trial tier with strict limits (2 articles, 7 days)
- •Stripe and PayPal payment integration
- •Usage-based overage pricing at 1.5x rates
- •Tax handling via Stripe Tax
🐛 Bug Fixes
Analytics 401 Error
Fixed authentication error on Analytics/Analysis page by properly authenticating API requests.
Team Page Mock Data
Replaced mock team data with real WorkspaceMember table queries.
Publishing Connection Status
Fixed publishing page showing incorrect connection status by querying real PlatformConnection table.
⚡ Improvements
Section-Level Regeneration
Regenerate specific article sections without regenerating the entire article.
Article Version History
Automatic versioning with preview and restore for last 10 versions.
Content Status Workflow
Draft → Review → Approved → Published status pipeline with notifications.
Landing Page Onyx Design
Landing page redesigned with Onyx dark theme matching dashboard.
v1.4.0
MINORJanuary 5, 2026Documentation center with searchable knowledge base, comprehensive platform fixes for images, keywords, content history, analytics, team management, and integrations.
✨ New Features
📚Documentation Center
Comprehensive searchable documentation hub with 6 modules and in-app contextual help.
- •Modules: Getting Started, Features, Subscription, API, Security, Troubleshooting
- •Full-text search with highlighted matching terms
- •Markdown rendering with callouts, code blocks, table of contents
- •In-app Help Modal with contextual documentation
- •Breadcrumb navigation and previous/next article links
- •Mobile-responsive with WCAG 2.1 AA accessibility
🐛 Bug Fixes
Section Image Persistence
Section images now persist to database with dimensions and display correctly in editor.
Cover Image Management
Cover image generation, resize, and persistence throughout content lifecycle.
Content History Page Errors
Fixed server errors and [object Object] display on content history page.
Keywords Page Data
Keywords page now displays real keywords from workflow sessions with metrics.
Analytics Real Data
Analytics page shows real profile-based metrics instead of placeholder data.
Business Analysis Fields
Fixed "Not defined" display when business analysis data exists in JSON field.
⚡ Improvements
Keyword Research with DataForSEO
Real keyword metrics: search volume, competition, CPC, difficulty from DataForSEO API.
Team Management
Real team member data with invite, role management, and activity tracking.
Integration Settings
Add/validate/disconnect WordPress and Shopify connections with status indicators.
Profile Refresh
On-demand refresh of internal links, business analysis, and EEAT sources.
Content Export
Export to PDF, Markdown, and HTML formats.
v1.3.0
PATCHJanuary 2, 2026Critical UI data display fixes across workflow steps, content history, keywords, analytics, and business profiles. Comprehensive bug fixes for session creation, workspace context, and API integrations.
🐛 Bug Fixes
Internal Links Scan Results
Scan results now display link count summary grouped by category.
EEAT Sources Display
Discovery results show source name, URL, authority type, and relevance score.
Content Generation Display
Fixed raw ">" characters displaying instead of formatted content.
Content History [object Object]
Error messages now display as strings, not objects.
Session Creation
Fixed workflow session creation failures with proper workspace context.
Workspace Auto-Selection
First workspace automatically selected when dashboard loads.
API Error Handling
Structured error responses with user-friendly messages for all API failures.
Navigation State Consistency
Session state preserved across step navigation and page refreshes.
⚡ Improvements
External API Configuration
Validated environment variables for Firecrawl, Perplexity, DataForSEO, OpenAI/Gemini on startup.
Database Transaction Safety
Session creation and step updates wrapped in transactions for atomicity.
Loading and Error States
Skeleton loaders, spinners, and actionable error messages across all pages.
v1.2.0
MINORDecember 28, 2025Production readiness audit addressing 30 gaps, enterprise security audit, spec-to-code audit system, and gap remediation across 35 specs.
✨ New Features
🔍Spec-to-Code Audit System
Automated audit tool analyzing all 35 specs against codebase implementation.
- •Backend, frontend, connection, and test verification
- •Gap detection with severity classification
- •Orphan code detection for unused implementations
- •Traceability matrix mapping requirements to code
- •Batch audit across all specs with master summary
🔒Enterprise Security Audit
Comprehensive security, reliability, and performance audit following OWASP Top 10.
- •SQL injection, XSS, CSRF, IDOR vulnerability detection
- •PII encryption audit and hardcoded secrets detection
- •Authentication robustness and RBAC enforcement verification
- •Race condition detection and edge case handling
- •N+1 query detection and caching opportunity identification
- •SOLID principles and type safety assessment
⚡ Improvements
Production Readiness Gaps
Real Stripe payment processing, email service via Resend, OAuth providers, usage tracking persistence, webhook handlers.
Health Check Completeness
Real connectivity checks for Stripe, Resend, OpenAI, DataForSEO, Firecrawl.
Rate Limiting with Redis
Distributed rate limiting with Redis backend and in-memory fallback.
Structured Production Logging
JSON-format logs with correlation IDs and sensitive data scrubbing.
Graceful Shutdown
SIGTERM handling with 30-second drain period for in-progress requests.
Gap Remediation
Added 81 missing Prisma models, 436 TypeScript interfaces, and fixed property test references across 35 specs.
v1.1.0
MINORDecember 22, 2025Local development to production deployment path, Perplexity and Firecrawl API client implementations, and Firecrawl rate limiting.
✨ New Features
🔎Perplexity AI Client
API client for online search and deep research capabilities used in Parts 2-5.
- •Online search queries with structured results and citations
- •Deep research with multi-source findings
- •Request throttling and configurable TTL caching
- •Integration with Citation_Engine for source formatting
🕷️Firecrawl Client
Web scraping and content extraction API client for URL analysis.
- •Full page content extraction with structure preservation
- •Authority signal extraction for EEAT validation
- •Batch URL processing with concurrency management
- •Rate limiting with exponential backoff
⚡ Improvements
Development Environment Setup
Docker Compose for PostgreSQL/Redis, database initialization, seed data, health checks.
Authentication Integration
JWT session management with refresh tokens, connecting dashboard to real auth.
Dashboard Data Integration
Frontend pages wired to backend services with real database queries.
Production Deployment
Optimized Docker image, database migrations, security headers, CORS, Sentry monitoring.
v1.0.0
MAJORDecember 15, 2025Initial release of the Content Automation SaaS platform converting n8n workflows (Parts 0-5) into a full-featured web application with AI-powered content creation, SEO optimization, and multi-platform publishing.
✨ New Features
🔄5-Step Content Workflow
Complete n8n workflow pipeline as interactive UI with session management.
- •Step 1: Internal Links Scanner via Firecrawl + Gemini
- •Step 2: Business Analysis via Perplexity + Gemini
- •Step 3: EEAT Source Discovery with 10 qualified sources
- •Step 4: AI-Citable Topic Generation (5-10 topics)
- •Step 5: Content Generation with keyword research, outline, and full article
- •Session persistence and step-by-step navigation
📄Rich Content Editor
Full-featured editor with markdown, version history, and auto-save.
- •Rich text editing with formatting toolbar
- •Markdown, HTML, and plain text export
- •Auto-save every 30 seconds
- •Version history with restore capability
🏗️Multi-Tenant Workspace System
Organizations, workspaces, projects, and team management with RBAC.
- •Organization-level billing and user management
- •Workspace-scoped content, keywords, and settings
- •Role-based access: Owner, Admin, Editor, Viewer
- •Team invitation via email with role assignment
📚Content Library & Dashboard
Central content management with status tracking, filtering, and analytics.
- •Content library with title, status, date, word count, SEO score
- •Status pipeline: draft, review, approved, published
- •Filtering by status, type, date range, and search
- •Dashboard with summary cards and recent activity
🤖AI Agent Orchestration
Coordinated AI agents with Perplexity, Firecrawl, DataForSEO, and Gemini/OpenAI.
- •Tool access to Perplexity, Firecrawl, and DataForSEO
- •Session data injection into AI prompts
- •Rate limiting and request queuing
- •Retry with exponential backoff
- •Response caching with configurable TTL
⚡ Improvements
Real-Time Streaming
AI content generation streamed in real-time with typing animation.
Data Export
Export session data to JSON, Google Sheets, Notion, and CSV.
Onyx Design System
Dark theme with obsidian (#09090b), acid (#ccff00), and surface (#0a0a0a) colors.
Content Engine — Enterprise-grade content creation and optimization platform