Date: Dec 9, 2025
Status:
- ✅ Cloned successfully to
/tmp/openblog - ✅ Latest commit:
0ad5a17 - Add security infrastructure - ✅ 12-stage pipeline with recent improvements:
- Security fixes (SQL injection, XSS)
- Markdown migration
- Refresh workflow enhancements
- ROOT_LEVEL_FIX_PLAN implementation
⚠️ ALL files are 2-7 days outdated compared toopenblog- ❌ Not a git submodule (unlike
openkeyword) - ❌ Missing latest security fixes
- ❌ Missing Markdown migration improvements
| Feature | Keywords | Blogs | Gap |
|---|---|---|---|
| Data richness | 15+ fields | 5 fields | ❌ HUGE |
| Expandable rows | ✅ Yes | ❌ No | ❌ Missing |
| Source attribution | ✅ Clickable links | ❌ None | ❌ Missing |
| CSV export | ✅ 12+ columns | ❌ Limited | |
| Progress bar | ✅ 7-stage | ✅ 6-stage | ✅ Similar |
| Enhanced data | ✅ Full display | ❌ Not shown | ❌ Missing |
The openblog pipeline generates rich data that is NOT displayed in the UI:
- ❌ Citations - Source URLs, validation, formats (APA/MLA/Chicago)
- ❌ Internal Links - Links to other blogs, anchor text
- ❌ Table of Contents - Section headings, jump links
- ❌ Metadata - Meta title, description, Open Graph tags
- ❌ FAQ/PAA - Questions extracted, answers generated
- ❌ Image Data - Featured image URL, alt text, prompt
⚠️ AEO Score Breakdown - Only total score shown, not components- ❌ HTML Output - Full HTML with semantic tags
All this data exists in the pipeline but is hidden from users.
Why: Consistent with openkeyword pattern, easy to sync
Steps:
- Remove
python-services/blog-writer/ - Add
openblogas git submodule - Update
scripts/generate-blog.pyto import from submodule - Update API route to point to new path
Pros:
- ✅ Easy to sync with latest changes
- ✅ Maintains standalone repo integrity
- ✅ Consistent with keywords pattern
Cons:
⚠️ Requires restructuring integration⚠️ Need to update bridge scripts
Why: Minimal changes, quick to implement
Steps:
- Copy all files from
/tmp/openblog/pipeline/topython-services/blog-writer/pipeline/ - Copy all files from
/tmp/openblog/service/topython-services/blog-writer/service/ - Test integration
Pros:
- ✅ Quick to implement
- ✅ Minimal changes to integration
Cons:
- ❌ Not sustainable long-term
- ❌ Will get outdated again
- ❌ No version tracking
- Choose architecture (submodule vs file copy)
- Replace outdated files with latest
openblog - Test basic generation still works
- Update
scripts/generate-blog.pyto return enhanced data:- Citations
- Internal links
- FAQ/PAA
- Meta tags
- Image data
- AEO breakdown
- Extend
BlogResultTypeScript interface - Update API route to pass through new data
- Add expandable rows to
BlogGenerator.tsx(copy from keywords) - Display all enhanced data:
- Citations with clickable links
- Internal links
- FAQ/PAA questions
- Meta tags
- Image data
- AEO score breakdown
- Enhance CSV export (add 10+ new columns)
- Test full generation flow
- Verify all data displays correctly
- Test CSV export
- Compare with keywords UI for parity
BLOG_INTEGRATION_INSPECTION.md- Full technical inspectionBLOG_VS_KEYWORDS_COMPARISON.md- Detailed UI/data comparisonBLOG_INSPECTION_SUMMARY.md- This summary (executive overview)
Convert blog-writer to git submodule (like openkeyword) and achieve full UI parity with keywords by displaying all enhanced blog data.
This will:
- ✅ Keep blog generation up-to-date automatically
- ✅ Provide users with rich, actionable data
- ✅ Maintain consistency across the platform
- ✅ Make the blog feature as powerful as keywords