A professional web application that transforms your article creation workflow
Article Studio is a complete web-based solution for generating, previewing, and publishing ITBlogPros articles. It consolidates your entire workflow into a beautiful, easy-to-use interface.
❌ Multiple terminal windows open
❌ Copying/pasting commands
❌ Manual Amazon ASIN validation
❌ Separate preview process
❌ Manual git operations
❌ 15-20 minutes per article
❌ Error-prone manual steps
✅ Single web interface
✅ Click buttons, see progress
✅ Automatic Amazon validation
✅ Integrated preview with one click
✅ One-click publishing
✅ 5-7 minutes per article
✅ Automated, reliable workflow
Save Time
Reduce Errors
Better Experience
Easier Management
Increase Output
Better Quality
Improved Workflow
Backend:
Frontend:
Integrations:
article-studio/
│
├── server.js # Main Express server
├── package.json # Dependencies
├── START.bat # Quick launch script
│
├── public/ # Web UI
│ ├── index.html # Dashboard HTML
│ ├── styles.css # Styling (500+ lines)
│ └── app.js # Frontend logic (400+ lines)
│
├── services/ # Backend services
│ ├── article-generator.js # Gemini integration
│ ├── amazon-validator.js # ASIN validation
│ ├── bing-submitter.js # IndexNow submission
│ ├── git-publisher.js # Git operations
│ └── database.js # SQLite database
│
├── database/ # Data storage
│ └── articles.db # SQLite database
│
├── README.md # Main documentation
├── SETUP-GUIDE.md # Installation guide
└── .gitignore # Git ignore rules
User enters keyword
↓
Server creates job
↓
Research Bing queries (10%)
↓
Generate article with Gemini (30%)
↓
Validate Amazon ASINs (60%)
↓
Calculate quality score (80%)
↓
Save to database + file (90%)
↓
Complete (100%)
Real-time updates: User sees progress bar and status messages
User clicks "Start Preview Server"
↓
Server spawns Eleventy process
↓
Eleventy builds site
↓
Server running on localhost:8080
↓
Browser opens automatically
↓
User navigates full site
What user sees: Complete site with new article in context
User clicks "Publish"
↓
Modal shows commit message
↓
User confirms
↓
Server adds file to git
↓
Server commits changes
↓
Server pushes to GitHub
↓
(Optional) Submit to Bing
↓
Update article status to "published"
↓
Cloudflare auto-deploys
Result: Article live on itblogpros.com in 2-3 minutes
Stores all generated articles:
CREATE TABLE articles (
id INTEGER PRIMARY KEY,
keyword TEXT, -- Original search keyword
title TEXT, -- Article title
content TEXT, -- Full markdown content
filename TEXT, -- YYYY-MM-DD-slug.md
quality_score INTEGER, -- 0-100 quality score
amazon_links INTEGER, -- Total Amazon links
valid_amazon_links INTEGER,-- Valid ASINs
status TEXT, -- 'draft' or 'published'
created_at DATETIME, -- When generated
published_at DATETIME -- When published
)
Tracks product validation:
CREATE TABLE amazon_links (
id INTEGER PRIMARY KEY,
article_id INTEGER, -- Foreign key to articles
asin TEXT, -- Amazon product ID
product_name TEXT, -- Product title
is_valid BOOLEAN, -- Validation status
last_checked DATETIME -- When validated
)
Future additions:
Header Stats:
Generation Card:
Articles List:
Publish Modal:
Delete Modal:
Primary Colors:
Neutral Colors:
Typography:
POST /api/generate
Request:
{
"keyword": "WiFi 7 routers"
}
Response:
{
"success": true,
"jobId": "1642345678901"
}
GET /api/jobs/:jobId
Response:
{
"success": true,
"job": {
"status": "generating",
"progress": 60,
"message": "Validating Amazon ASINs...",
"keyword": "WiFi 7 routers"
}
}
GET /api/articles
Response:
{
"success": true,
"articles": [
{
"id": 1,
"keyword": "WiFi 7 routers",
"title": "WiFi 7 vs WiFi 6...",
"quality_score": 85,
"amazon_links": 3,
"status": "draft",
"created_at": "2025-01-16T10:00:00Z"
}
]
}
DELETE /api/articles/:id
Response:
{
"success": true,
"message": "Article deleted"
}
POST /api/preview/start
Response:
{
"success": true,
"message": "Preview server starting...",
"url": "http://localhost:8080"
}
POST /api/preview/stop
Response:
{
"success": true,
"message": "Preview server stopped"
}
POST /api/publish/:articleId
Request:
{
"commitMessage": "Published: WiFi 7 Article",
"submitToBing": true
}
Response:
{
"success": true,
"message": "Article published successfully!",
"result": {
"filename": "2025-01-16-wifi-7-routers.md",
"commitMessage": "Published: WiFi 7 Article"
}
}
Total: 2-3 minutes per article
Total: 3 seconds to preview
Total: 10-15 seconds to publish
Daily:
Weekly:
Monthly:
npm update)Database Backups:
# Manual backup
copy database\articles.db database\articles-backup-2025-01-16.db
# Automated (add to scheduled task)
robocopy database\ backups\ articles.db /MOT:60
Article Backups: Your articles are already in git, so they're backed up!
Before Article Studio:
After Article Studio:
Improvement:
Express.js:
SQLite:
Gemini API:
Article Writing:
Git Basics:
Check Documentation:
Common Issues:
Still Stuck:
Want to improve Article Studio?
Ideas welcome! Even if you can't code, suggestions help.
You now have a complete, professional article generation system that:
✅ Saves you 10-15 minutes per article ✅ Increases quality and consistency ✅ Reduces errors and manual work ✅ Provides beautiful, easy-to-use interface ✅ Integrates with all your existing tools ✅ Tracks everything in a database ✅ Makes publishing one-click simple
The result?
More articles. Better quality. Less time. More revenue.
Built with ❤️ for ITBlogPros
Making content creation effortless, one article at a time. ✨