Documentation

Connect your blog

Tell Publish where your posts go: Ghost, WordPress, Payload, GitHub, or your own API.

Connect the blog you already run. Publish then sends finished articles there, as live posts or as drafts. About 5 minutes.

Before you start

You need admin access to your blog, to create a key or a token for FounderHQ.

Start the connection

Open Publish → Settings. Under Blog Connections, press Connect blog and choose your CMS type.

Enter the details for your CMS

Give the connection a Connection name in every case.

Ghost

FieldWhat to enter
Ghost Admin URLThe address of your Ghost admin
Ghost Admin API keyIn Ghost Admin, open Integrations and add a custom integration. Copy its Admin API key. It has the form id:secret.

WordPress

FieldWhat to enter
WordPress URLThe address of your site
Username + application passwordYour username, a colon, and an application password from your WordPress profile: username:xxxx xxxx xxxx xxxx

Payload

FieldWhat to enter
Payload API URLThe address of your Payload API
Payload API tokenAn API key for a Payload user

Publish then reads your collections and asks you to match them under Payload content mapping: the posts collection, the author collection, and the fields for title, slug, content, excerpt, status, and featured image.

Built your blog with FounderHQ's Next.js package? Use the endpoint https://your-domain.com/payload-api, with cms-users as the auth collection and blog-posts as the posts collection.

GitHub

Publish commits each article to your repository as a Markdown or MDX file.

  1. Under Authentication, choose GitHub App and press Connect GitHub, then pick the Repository. Or choose Manual token and paste a fine-grained token with Contents: Read and write.
  2. Set the Branch.
  3. Choose the Output format: Markdown (.md) or MDX (.mdx).
  4. Set the File path template. It starts as content/blog/{{ slug }}.md.

The path template accepts {{ slug }}, {{ yyyy }}, {{ mm }}, {{ dd }}, and {{ article.title }}.

Custom API

Publish calls an endpoint you own. You build the request in the wizard.

It starts as a POST with a bearer token and this body:

{
  "title": "{{ article.title }}",
  "slug": "{{ article.slug }}",
  "html": "{{ article.html }}",
  "markdown": "{{ article.markdown }}",
  "excerpt": "{{ article.excerpt }}"
}

The request must use article.title and one of article.html or article.markdown. You can also use article.slug, article.excerpt, article.tldr, article.faq, article.keyTakeaways, article.schemaOrg, and article.dateModified.

Then tell Publish where to read your reply: the post's ID, its address, its status, and an error message. They start as id, url, status, and error.message.

Test the connection

Press the test button on the step. Publish checks that it can reach your blog with what you entered.

Match your authors

For Ghost, WordPress, and Payload, Publish lists the authors in your CMS. Match each one to a FounderHQ author, so a post goes out under the right name.

Add the blog address and save

Enter the Blog address: where readers find your blog, such as www.example.com/blog. Leave Make this the primary publishing target on for your main blog, then press Save target.

Auto-publish sends to the primary target.

Verify

The connection appears under Blog Connections with the status Active and the badge Primary. Press Validate on it at any time to check it again.

Manage a connection

On the connectionWhat it does
Map authorsChange which CMS author each FounderHQ author publishes as
IndexNowTell search engines about new posts. See Get indexed.
ValidateCheck the connection now
Edit detailsChange the address or the credentials
Make primarySend auto-published posts here
ArchiveStop using it. Published posts stay on your blog.

Needs attention means the last check failed. Open Edit details, correct the credentials, and validate again.

AI agent or LLM? Read this page as markdown

On this page