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.
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 Settings → Design → Upload 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 Settings → Membership 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 Settings → Integrations → Add custom integration in Ghost Admin.
Webhook setup:
- Create a webhook receiver endpoint in your middleware service
- Verify webhook signatures using HMAC-SHA256 validation as documented in Ghost webhooks security
- Transform Ghost post data to match Webflow collection schema
- Create, update, or delete Webflow CMS items via the Webflow CMS API
- 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
/blogusing 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 Settings → Integrations 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:
- Use Ghost's HTML output: The Ghost Content API includes an
htmlfield 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. - 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.
- 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.
- Use Ghost's HTML output: The Ghost Content API includes an
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-Afterheader 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.
Description
Ghost is an open source publishing platform built on Node.js that provides blogging, email newsletters, membership management, and paid subscriptions.
This integration page is provided for informational and convenience purposes only.

FluidSEO
Connect FluidSEO with Webflow to automate meta descriptions, alt text, and schema markup across your site.

Leadpages
Connect Leadpages landing pages with your Webflow site using third-party automation platforms or custom code embeds to sync form submissions into your CMS, embed forms, or automate lead capture workflows.

Substack
Combining Webflow's design flexibility with Substack's subscriber management lets you build custom-branded newsletter landing pages while maintaining direct audience relationships and avoiding complex email platform migrations.

Semrush
Integrating Semrush's SEO data and competitive intelligence directly with Webflow removes manual data transfers and enables automated reporting, real-time dashboards, and systematic optimization workflows that reduce developer dependencies for routine SEO tasks.
Contentful
Connect Contentful with Webflow to manage content through APIs, code embeds, or automation platforms. This integration lets content teams update entries in Contentful while Webflow handles presentation and hosting, separating content management from site delivery.

Unbounce
Connect Unbounce's powerful landing page builder and conversion optimization tools with Webflow to create high-converting marketing campaigns. Automate lead capture, sync form submissions, and maintain brand consistency across your website and landing pages.
Adaptify SEO
Connect Adaptify SEO's AI-powered automation with Webflow to streamline content creation, automate SEO optimization, and scale your organic search performance — all without complex technical setup.

StoryChief
Connect StoryChief's collaborative content platform with Webflow to streamline multi-channel publishing, automate SEO optimization, and manage editorial workflows from a single dashboard. Create once, publish everywhere while maintaining brand consistency.

StorifyMe
StorifyMe brings interactive storytelling to Webflow sites with mobile-native story formats that boost engagement and conversions. Create shoppable stories, product tours, and dynamic content experiences without writing code.


