๐Ÿš€

Welcome to Postpire

Let's get to know your website so we can create perfect content for you.

โœจ

We've Analyzed Your Website!

Here's what we learned about your business:

๐Ÿ“ฆ What You Offer Loading...
๐ŸŽฏ Your Niche Loading...
๐Ÿ‘ฅ Target Audience Loading...

You can update this in Settings anytime.

Analyzing Your Website...

Our AI is reading your website to understand your business.

Postpire logo
Workspace / Dashboard

Welcome back, User! ๐Ÿ‘‹

Your Google Search Console performance at a glance

๐Ÿ”— Connect Google Search Console to see real data

Search Performance

Last 30 days
Loading search data...

๐Ÿ” Top Search Keywords

Keywords your content ranks for
Loading keywords from Google Search Console...

Your 30-Day Content Plan

Click on any article to review

Scheduled Ready Draft
Loading...

Preparing your 30-day content plan

Pulling your scheduled drafts and published pieces.

Settings

Manage integrations, AI analysis, and your project profile

Connected Services

Manage your integrations and connected accounts

Google Search Console

Checking connection...

Connected Website

--

AI Website Analysis

AI-powered analysis of your website to generate better content

Current Analysis

No analysis yet. Run AI analysis to understand your website.

Analysis helps generate better SEO-optimized content for your website

Project Details

Configure your project settings and content preferences

Subscription

Check your billing status and start checkout

Checking subscription status...
Current period ends
--
$49/month โ€ข Cancel anytime

Publish to Your Website

Choose how you want to connect Postpire to your website

Available
Webflow

Webflow

Sync articles with your Webflow CMS collections

Available
Framer

Framer

Send articles to your Framer CMS via webhook

Available
WordPress

WordPress

Direct integration with WordPress REST API

Available
Ghost

Ghost

Publish directly to Ghost via Admin API

Available

Custom Webhook

Send articles to any endpoint you control

Custom Webhook
Postpire Your Blog

Your articles flow seamlessly
from Postpire to your website

Connect Your Website

Set up your webhook endpoint to receive published articles automatically.

Not connected Configure your endpoint below
ยท ยท
Webflow Integration
Postpire Webflow

Articles sync directly
to your Webflow CMS

Connect Webflow

Publish articles to a Webflow CMS collection using the Webflow API.

Not Connected
Connect your Webflow account to start publishing your articles automatically.

Advanced settings

Choose collection and fields if we couldn't auto-configure.

Site
Collection
Content Field
Excerpt Field (Optional)
Image Field (Optional)
·
If Load Sites fails, paste your Collection ID below and click Load Fields.
Use a Webflow Site Token if OAuth isn't available.
Paste the Collection ID or full Collection URL from Webflow CMS.
Use the slug of your Rich Text field.
Framer Integration
Postpire Framer

Push content to your
Framer CMS via webhook

Connect Framer

Send article payloads to your Framer webhook endpoint.

Not connected Configure your webhook below
·
WordPress Integration
Postpire WordPress

Articles publish directly
to your WordPress site

Connect WordPress

Automatically publish articles to your WordPress site using the REST API.

Not connected Configure your WordPress site below
Generate at: WordPress โ†’ Users โ†’ Your Profile โ†’ Application Passwords
Find at: WordPress โ†’ Posts โ†’ Categories (hover over category to see ID in URL)
·
Ghost Integration
Postpire Ghost

Publish directly to your
Ghost publication

Connect Ghost

Publish articles to Ghost using the Admin API key.

Not connected Configure your Ghost site below
Create in Ghost Admin โ†’ Settings โ†’ Integrations โ†’ Add custom integration
·
Draft

Article Title

-- -- min read
SEO Preview
--
yoursite.com/article-slug
--
Export

Copy SEO HTML for publishing or Markdown for editing workflows

Review this article and take action

Request an Edit

Let us know what you'd like changed

Changes will appear within 24 hours
You can request up to 10 edits per month

Publish Article

Review where this will be published

Connected destinations
Loading...

SEO Optimization Tasks

Loading...

Generating SEO tasks...

Paste into Cursor, VS Code, or any AI IDE to implement

Custom Webhook Integration

Connect Postpire to any platform via HTTP POST requests

๐Ÿ”— How It Works

When you click "Publish to Website" on an approved article, Postpire sends a POST request to your webhook URL with the article data. Your server receives it, verifies the secret, and saves the article to your database.

๐Ÿ“ค Request Headers

Every webhook request includes these headers:

Content-Type: application/json
X-Webhook-Secret: your-secret-key-here

๐Ÿ“ฆ Payload Structure

Article data includes both Markdown and HTML formats:

{
  "event_type": "article.published",
  "timestamp": "2026-02-01T12:00:00Z",
  "article": {
    "id": "65abc123...",
    "slug": "how-to-rank-higher",
    "title": "How to Rank Higher on Google",
    "content_markdown": "# Introduction\n\nRanking higher...",
    "content_html": "<h1>Introduction</h1><p>Ranking...</p>",
    "meta_title": "How to Rank Higher | Guide",
    "meta_description": "Learn the strategies...",
    "keywords": ["seo", "ranking"],
    "read_time": "8 min read",
    "published_at": "2026-02-01T12:00:00Z"
  },
  "image": {
    "url": "https://example.com/featured.jpg",
    "alt": "Featured image alt text"
  },
  "website": {
    "id": "project-id",
    "name": "My Blog",
    "base_url": "https://myblog.com"
  }
}

๐Ÿ” Verifying Requests

Always verify the secret before processing:

// Node.js / Express
app.post('/api/webhook', (req, res) => {
  const secret = req.headers['x-webhook-secret'];
  
  if (secret !== process.env.WEBHOOK_SECRET) {
    return res.status(401).json({ error: 'Invalid secret' });
  }
  
  const { article, image } = req.body;
  
  // Save to your database
  await db.articles.create({
    postpireId: article.id,
    title: article.title,
    slug: article.slug,
    content: article.content_html,  // or content_markdown
    metaTitle: article.meta_title,
    metaDescription: article.meta_description,
    featuredImage: image?.url
  });
  
  res.status(200).json({ success: true });
});

๐Ÿ“‹ Payload Fields

Field Type Description
article.id string Unique identifier (use for deduplication)
article.slug string URL-friendly slug for the article
article.title string Article headline
article.content_html string HTML content (ready for display)
article.content_markdown string Markdown content (for processing)
article.meta_title string SEO title
article.meta_description string SEO description
article.keywords array Target keywords
image.url string Featured image URL
image.alt string Image alt text

โœ… Best Practices

  • Always verify X-Webhook-Secret before processing
  • Respond with 200 status code within 30 seconds
  • Use article.id to detect updates vs new articles
  • Use content_html for display, content_markdown for editing
  • Store secrets in environment variables, never in code

๐ŸŽจ Styling Your Blog

The content_html contains raw HTML (headings, paragraphs, lists, etc.). Your CSS automatically styles this content - no extra work needed for each article!

<!-- Your blog template -->
<article class="my-article">
  <h1 class="article-title">${article.title}</h1>
  <img src="${image.url}" alt="${image.alt}">
  
  <!-- Content from Postpire - your CSS styles it -->
  <div class="article-content">
    ${article.content_html}
  </div>
</article>

<style>
  /* Your styles apply to all articles */
  .article-content h2 { color: #333; font-size: 1.5rem; }
  .article-content p { line-height: 1.8; color: #555; }
  .article-content ul { padding-left: 24px; }
  .article-content a { color: #10B981; }
</style>

Key insight: Create your blog template ONCE with your design. Every article published from Postpire automatically inherits your styling!

๐Ÿ“ Recommended Setup

For a complete blog, add these files to your project:

your-website/
โ”œโ”€โ”€ api/
โ”‚   โ”œโ”€โ”€ blog-webhook.js  โ†’ Receives articles from Postpire
โ”‚   โ””โ”€โ”€ blog/
โ”‚       โ”œโ”€โ”€ posts.js     โ†’ GET /api/blog/posts (list all)
โ”‚       โ””โ”€โ”€ [slug].js    โ†’ GET /api/blog/:slug (single article)
โ”œโ”€โ”€ blog.html            โ†’ Blog listing page
โ””โ”€โ”€ article.html         โ†’ Single article template