Ghost

Integrate Ghost with Webflow using established patterns: pull published posts into Webflow collections via Ghost's Content API, convert Webflow designs into Ghost themes using the Udesly Adapter, embed Ghost content directly into Webflow pages, or build custom middleware for content synchronization.

Install app
View website
View lesson
A record settings
CNAME record settings
Ghost

How to integrate Ghost with Webflow

Ghost handles content management, membership systems, and newsletter delivery while Webflow provides visual design tools and frontend hosting. You can integrate these platforms to combine Ghost's publishing capabilities with Webflow's design flexibility.

You can integrate Ghost with Webflow using the Udesly Adapter, embed Ghost content directly in Webflow pages using Code Embed elements, or build custom integrations using the Ghost Content API and Webflow CMS API.

For advanced setups, you can sync Ghost posts to Webflow collections through API-driven synchronization or run Ghost on a subdirectory of your Webflow domain using reverse proxy configuration.

Convert Webflow designs to Ghost themes

Transform Webflow visual designs into functional Ghost themes using the Udesly Adapter conversion workflow. This method works when you want to design theme layouts in Webflow's visual editor, export your project, convert it via the Udesly Adapter, and then manage all content, memberships, and publishing operations in Ghost. This is a one-way conversion process. Design changes in Webflow require re-exporting and re-converting the theme rather than enabling live synchronization.

The Ghost Udesly integration guide documents that the process requires designing your theme in Webflow, exporting your Webflow project as a .zip file, uploading the export file to the Udesly Adapter service, and installing the converted theme in your Ghost admin dashboard. The workflow keeps your visual design while making it compatible with Ghost's templating system.

Here are the steps to follow:

  • Design theme layouts in Webflow with specific custom attributes marking dynamic content areas
  • Export the Webflow project as a .zip file (requires a Webflow plan with code export capability)
  • Upload to Udesly Adapter for conversion to Ghost theme format
  • Download the converted theme package
  • Install in Ghost through SettingsDesignUpload theme

Key considerations:

Custom attributes must identify page types, dynamic content areas, navigation elements, and pagination. We recommend starting with pre-configured Webflow starter themes or element packs that include these attributes rather than adding them manually, as this simplifies the conversion process and reduces errors.

Design updates require re-exporting from Webflow, uploading to the Udesly Adapter for conversion, and re-uploading the converted theme to Ghost. No live synchronization exists between platforms.

Embed Ghost content in Webflow

Add Ghost blog posts, signup forms, or newsletter widgets directly to Webflow pages using Code Embed elements and HTML code snippets. This approach keeps Ghost as your content management system while displaying selected content within your Webflow site design.

Code Embed elements accept arbitrary HTML, CSS, and JavaScript. Insert Ghost's embeddable signup forms using code from SettingsMembership in Ghost Admin, For blog post display, use third-party embedding services or custom JavaScript that fetches from the Ghost Content API.

Embed options:

  • Ghost membership forms: Copy embed code from Ghost Admin and paste into Webflow Code Embed elements for newsletter signups
  • Blog post lists: Use services like Stackblocks that generate embed code pulling from your Ghost Content API
  • Custom JavaScript fetches: Write code that calls the Ghost Content API and renders results in Webflow page elements

Limitations:

Embedded Ghost content doesn't preview in Webflow. You must publish or preview the live site to see rendered Ghost content. Styling conflicts may occur between Ghost's CSS and Webflow's styles, requiring custom CSS overrides.

Build with Webflow and Ghost APIs

Build custom integrations using Ghost's Content API and Admin API alongside the Webflow CMS API for programmatic content management. This method provides complete control over data transformation, synchronization logic, and workflow automation.

The Ghost Content API provides read-only access to published posts, pages, tags, and authors through standard REST endpoints. The Ghost Admin API requires JWT authentication and enables full CRUD operations on all Ghost content. The Webflow CMS API manages collection items, assets, and site publishing through OAuth or Site Token authentication.

API integrations require middleware that handles authentication, data transformation, and error handling. Host this middleware on platforms like Vercel, Netlify Functions, or traditional servers.

Sync Ghost posts to Webflow collections

Fetch published posts from Ghost and create corresponding items in Webflow CMS collections. This pattern works when you want Webflow's design flexibility applied to Ghost-managed content.

The Ghost Content API posts endpoint returns paginated post lists with filtering, field selection, and related resource inclusion. The Webflow CMS API items endpoint accepts item creation requests with field data matching your collection schema.

Implementation pattern:

// Fetch posts from Ghost Content API
const ghostResponse = await fetch(
  `https://your-site.ghost.io/ghost/api/content/posts/?key=${ghostKey}&include=tags,authors&fields=title,slug,html,feature_image,published_at`
);
const ghostPosts = await ghostResponse.json();

// Transform and create in Webflow
for (const post of ghostPosts.posts) {
  await fetch(
    `https://api.webflow.com/v2/collections/${collectionId}/items`,
    {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${webflowToken}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        fieldData: {
          name: post.title,
          slug: post.slug,
          'post-body': post.html,
          'published-date': post.published_at
        }
      })
    }
  );
}

Note: This code creates items in a staged (draft) state. To publish items to the live site, add a separate publish call after creation.

// Publish items
await fetch(
  `https://api.webflow.com/v2/collections/${collectionId}/items/publish`,
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${webflowToken}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      itemIds: itemIds // array of created item IDs
    })
  }
);

Publishing workflow: Items created via the Webflow API start in a staged (draft) state. Call the publish items endpoint with item IDs to make content live on your published site.

Automate with Ghost webhooks

Trigger real-time synchronization when content changes in Ghost using webhooks. This approach reduces polling frequency and provides near-instant updates to Webflow when posts are published, edited, or deleted.

Webhook events are not guaranteed delivery, so integration architects must implement event reconciliation with periodic full syncs and store webhook event IDs to detect missed events.

The Ghost Webhooks documentation defines events like post.published, post.published.edited, and post.deleted that send POST requests to configured endpoints. Configure webhooks through SettingsIntegrationsAdd custom integration in Ghost Admin.

Webhook setup:

  1. Create a webhook receiver endpoint in your middleware service
  2. Verify webhook signatures using HMAC-SHA256 validation as documented in Ghost webhooks security
  3. Transform Ghost post data to match Webflow collection schema
  4. Create, update, or delete Webflow CMS items via the Webflow CMS API
  5. Call the publish endpoint to make changes live on your Webflow site

Security implementation:

const crypto = require('crypto');

function verifyGhostWebhook(rawBody, signature, secret) {
  const expectedSignature = crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(signature, 'hex'),
    Buffer.from(expectedSignature, 'hex')
  );
}

Available webhook events:

  • Post events: post.added, post.deleted, post.edited, post.published, post.published.edited, post.unpublished, post.scheduled
  • Page events: page.added, page.deleted, page.edited, page.published, page.published.edited, page.unpublished
  • Tag events: tag.added, tag.edited, tag.deleted, post.tag.attached, post.tag.detached

Webhooks can miss events during network failures or server downtime. Implement reconciliation logic with periodic full syncs to detect and repair any synchronization gaps. Store webhook event IDs to identify missed events and ensure idempotent handlers can safely process duplicate events.

What you can build

Integrating Ghost with Webflow enables specialized publishing architectures that separate content management from frontend presentation.

  • Marketing site with embedded blog: Build marketing pages and product showcases in Webflow while embedding Ghost blog posts and newsletter signups using Code Embed elements
  • Membership-driven content hub: Use Webflow for public landing pages and Ghost for gated member content, newsletters, and subscriptions with Ghost handling authentication, payment processing via Stripe, and member-only content delivery
  • Multi-site content distribution: Maintain a single Ghost content repository while syncing posts to multiple Webflow sites with different designs through custom middleware that transforms content for each site's collection schema
  • Hybrid blog architecture: Host your main domain on Webflow for maximum design control while running Ghost on a subdirectory like /blog using reverse proxy configuration through Caddy or Subfold that routes the root domain to Webflow and the blog path to Ghost (requires server infrastructure and DevOps knowledge)

Frequently asked questions

  • No official Ghost app exists on the Webflow Marketplace.

  • No native bidirectional sync exists. The Ghost-Udesly integration provides one-way theme conversion from Webflow to Ghost but doesn't synchronize content updates. For content synchronization, implement custom API-based integration using Ghost's Content API and Webflow's CMS API.

    For Ghost-to-Webflow syncing, use the Ghost Content API or Ghost webhooks to detect changes and update Webflow via the Webflow CMS API. For Webflow-to-Ghost updates, monitor Webflow webhooks and create or update Ghost content via the Ghost Admin API.

    Bidirectional synchronization requires conflict resolution logic, unique identifier mapping between platforms, and reconciliation processes to handle missed webhook events.

  • Ghost uses different authentication methods for its Content API and Admin API. The Ghost Content API requires a Content API Key included as a query parameter: ?key=your_content_api_key. This key provides read-only access to published content and can be safely used in browser environments.

    The Ghost Admin API requires JWT tokens generated using the HS256 algorithm with your Admin API Key. Tokens expire after 5 minutes and must include the key ID in both the header and payload.

    Webflow supports two authentication methods. Site Tokens provide simple authentication for single-site integrations; generate tokens in Site SettingsIntegrations and include as a Bearer token: Authorization: Bearer {site_token}. OAuth 2.0 enables multi-site applications through an authorization flow that provides access tokens for API requests.

  • Ghost stores content in Lexical JSON format, which doesn't map directly to Webflow's field types.

    For integration, you have three options:

    1. Use Ghost's HTML output: The Ghost Content API includes an html field containing rendered HTML from the Lexical JSON. Store this HTML in Webflow's Rich Text field type. This approach preserves formatting but makes content less structured for programmatic manipulation.
    2. Parse Lexical JSON: Write custom transformation logic that converts Lexical's block structure to Webflow's field structure. This requires maintaining parsing logic as Ghost's content format evolves. Ghost's Lexical JSON and membership tier models do not map directly to Webflow CMS fields, necessitating custom parsers or middleware to transform content formats between platforms.
    3. Use plain text extraction: Extract text content without formatting for simple text fields in Webflow. This loses formatting but works when you only need titles, excerpts, or basic content.

    Most integrations use the HTML approach since the Ghost Content API provides pre-rendered HTML that maps directly to Webflow's Rich Text fields without custom parsing logic.

  • Both platforms' webhook systems can miss events during network failures, server downtime, or rate limiting. The Ghost Webhooks Documentation and Webflow Webhooks Documentation acknowledge webhook delivery is not guaranteed.

    Implement these reliability patterns:

    Idempotent handlers: Design webhook receivers to handle duplicate events safely. Use unique identifiers from Ghost or Webflow to check if you've already processed an event before taking action.

    Event logging: Store webhook event IDs and timestamps in a database. This creates an audit trail for detecting missed events during reconciliation.

    Periodic full syncs: Schedule regular comparisons between Ghost content and Webflow collections. Query the Ghost Content API for all posts and compare against Webflow items using the Webflow CMS API. Create, update, or delete items to resolve differences.

    Retry logic: When webhook processing fails, implement exponential backoff retries based on the Retry-After header value. Store failed webhooks for manual review or reprocessing. Note that both Ghost and Webflow webhook systems acknowledge webhooks can fail or be missed during network issues, requiring event reconciliation with periodic full syncs and idempotent handlers to safely process duplicate events.

Ghost
Ghost
Joined in

Description

Ghost is an open source publishing platform built on Node.js that provides blogging, email newsletters, membership management, and paid subscriptions.

Install app

This integration page is provided for informational and convenience purposes only.


Other Content Marketing integrations

Other Content Marketing integrations

Storylane

Storylane

Connect Storylane's interactive demo platform with Webflow to create engaging product experiences that convert visitors into customers. Embed guided tours, sandbox demos, and personalized walkthroughs directly into your Webflow sites without code.

Content Marketing
Learn more
Proof

Proof

Connect Proof with Webflow to display real-time social proof notifications that build trust and drive more conversions by showcasing recent purchases, sign-ups, and visitor activity.

Content Marketing
Learn more
Notion

Notion

Connect Notion's flexible workspace with Webflow to create dynamic websites powered by collaborative content. Sync databases, automate publishing workflows, and build content-driven sites without code.

Content Marketing
Learn more
One2 Menu

One2 Menu

SEO optimized Restaurant Menus with no code

Content Marketing
Learn more
Medium

Medium

Connect Medium's powerful publishing platform with Webflow to expand your content reach, automate syndication workflows, and maintain consistent brand experiences. Leverage Medium's 100M+ monthly readers while keeping full design control in Webflow.

Content Marketing
Learn more
MathJax

MathJax

Render beautiful mathematical equations on your Webflow site with MathJax, the web's leading mathematical display engine. Transform complex LaTeX, MathML, and AsciiMath notation into crisp, accessible formulas that scale perfectly across all devices—no plugins or special viewers required.

Content Marketing
Learn more
Kajabi

Kajabi

Connect Kajabi's powerful course creation and membership platform with Webflow's design flexibility to build stunning educational websites. Deliver online courses, manage memberships, and process payments while maintaining complete creative control over your site design.

Content Marketing
Learn more
Jasper

Jasper

Connect Jasper's AI-powered content generation with Webflow to create, optimize, and localize website content at scale. Generate on-brand copy, rewrite existing content, and translate pages — all without leaving Webflow.

Content Marketing
Learn more
Google Ads by Clever

Google Ads by Clever

Advertise on Google and grow your business with Clever Ads. Have your Google Ads Search & Display campaigns created for free.

Content Marketing
Learn more

Related integrations

No items found.

Get started for free

Try Webflow for as long as you like with our free Starter plan. Purchase a paid Site plan to publish, host, and unlock additional features.

Get started — it’s free