All posts
AutomationApril 10, 2026·5 min read

Automate Your Blog Publishing in 2026: From Draft to Live in One Command

Blog automation saved me 15-20 minutes per post. The manual version went like this: write in your editor, open WordPress, paste and reformat, upload a featured image, configure SEO metadata, hit publish. Three or four posts a week adds up to hours of clicking. So I built a system that takes a markdown…

Automate Your Blog Publishing in 2026: From Draft to Live in One Command

Blog automation saved me 15-20 minutes per post. The manual version went like this: write in your editor, open WordPress, paste and reformat, upload a featured image, configure SEO metadata, hit publish. At three or four posts a week that is hours of clicking.

I built a system that takes a markdown draft and publishes it to WordPress with SEO metadata, a generated featured image, proper Gutenberg blocks, and syntax-highlighted code, all in one command. The same AI agent that runs my scheduled tasks does the blog publishing too.

Here is the setup.

The Manual Workflow (What I Replaced)

Every blog post used to require the same tedious steps:

  1. Write content in my editor
  2. Open WordPress, create a new post
  3. Paste and reformat everything. WordPress mangles markdown
  4. Upload a featured image manually
  5. Configure Rank Math SEO: focus keyword, meta description, slug
  6. Set category, tags, excerpt
  7. Hit publish

That is 15 minutes of copy-paste and WordPress forms, 3-4 times per week.

The One-Command Solution

notipo posts create \
  --title "Your Post Title" \
  --body "$(cat draft.md)" \
  --category "Automation" \
  --tags "ai,automation" \
  --seo-keyword "your target keyword" \
  --slug "custom-url-slug" \
  --publish --wait

That single command puts the post live on WordPress with:

  • Gutenberg blocks: markdown converted to native WordPress blocks, not pasted HTML
  • Featured image: auto-generated with category background and title overlay (1200×628)
  • SEO metadata: Rank Math focus keyword, meta description, and slug configured automatically
  • Syntax highlighting: code blocks rendered with Prismatic, not raw <pre> tags
  • Categories and tags: assigned from the command line

The --wait flag blocks until the post is fully live and returns the WordPress URL.

How It Works Under the Hood

The pipeline is: Markdown → Notion → WordPress.

Notipo handles the middle layer. When you call notipo posts create, it:

  1. Creates a Notion page from your markdown content
  2. Converts each markdown element to the correct Notion block type (headings, code, lists, images)
  3. Triggers a sync job that reads the Notion page and converts it to WordPress Gutenberg blocks
  4. Downloads any images from Notion and uploads them to WordPress media library
  5. Generates a featured image with the post title overlaid on a category-specific background
  6. Sets all SEO fields in Rank Math (or Yoast/SEOPress/AIOSEO, whichever it detects)
  7. Publishes the post and returns the live URL

The Notion step does more than pass the content along. You can edit the post directly in Notion after creation, and the changes sync to WordPress on the next poll cycle.

Integrating with an AI Agent

Blog automation gets more useful once it sits inside a larger content pipeline. My self-healing AI agent runs a scheduled blog_post task every 3 days:

  1. Agent pulls Google Search Console data and finds keywords with high impressions but low clicks
  2. Agent picks the best keyword opportunity and writes a draft
  3. Draft gets sent to Discord for my approval
  4. After I approve, the agent publishes via Notipo and cross-posts to dev.to with a canonical URL
{
  "blog_post": {
    "prompt": "Draft an SEO blog post targeting the best keyword opportunity from GSC data. Save draft for approval. After approval, publish via Notipo CLI.",
    "cron": "0 10 2,5,8,11,14,17,20,23,26,29 * *",
    "type": "approval",
    "limits": { "maxTurns": 20, "maxBudgetUsd": 5 }
  }
}

Keyword research, writing, SEO optimization and publishing all sit with the agent. My part is a 30-second approval.

Cross-Posting with Canonical URLs

After Notipo publishes to WordPress, the agent cross-posts to dev.to with a canonical URL pointing back to the original:

curl -X POST https://dev.to/api/articles \
  -H "Content-Type: application/json" \
  -H "api-key: $DEVTO_API_KEY" \
  -d '{
    "article": {
      "title": "Your Post Title",
      "body_markdown": "...",
      "published": true,
      "canonical_url": "https://kjetilfuras.com/your-slug/",
      "tags": ["ai", "automation"]
    }
  }'

The canonical_url tells Google to credit the original site, not dev.to. You get the distribution of dev.to’s audience without diluting your own domain authority.

The Before and After

Before (manual):

  • 15-20 minutes per post
  • Formatting errors from copy-pasting markdown into WordPress
  • Forgot SEO metadata half the time
  • No featured image on quick posts
  • Cross-posting was a separate 10-minute task I often skipped

After automating it, a post takes 14 seconds. I timed it. The Gutenberg blocks come out right every time, the SEO metadata and the featured image get set without me, and the cross-post runs inside the same pipeline. The WordPress dashboard, the copy-paste, the image upload and the forgotten meta description are all out of the loop.

Getting Started

  1. Install Notipo: npm install -g notipo
  2. Set your API key: export NOTIPO_API_KEY="ntp_your-key" (get it from notipo.com → Settings → Account)
  3. Connect Notion + WordPress through the Notipo dashboard
  4. Publish your first post:
notipo posts create \
  --title "My First Automated Post" \
  --body "## Hello\n\nThis post was published in one command." \
  --category "General" \
  --publish --wait

The post goes live with a featured image, SEO metadata and proper formatting.

FAQ

Does this work with any WordPress site?

Yes. Notipo works with any self-hosted WordPress site or WordPress.com Business plan. It uses the WordPress REST API with application passwords for authentication. Rank Math, Yoast, SEOPress, and AIOSEO are all supported for SEO metadata.

Can I edit posts after publishing?

Yes. Edit the Notion page directly and run notipo sync to push changes to WordPress. For major content updates on already-published posts, use the re-publish endpoint to force a full sync.

What if I don’t use Notion?

Pass markdown directly via the --body flag and Notipo creates the Notion page for you, so Notion never has to be your writing tool. If you do want Notion’s editor for writing and collaboration, the two-way sync is built in.

How does the featured image generation work?

Notipo generates a 1200×628 image using your category’s background color/image with the post title overlaid in a readable font. Nothing gets opened in Photoshop or Canva, and nothing gets uploaded by hand.

AIautomationnotipowordpress