Publishing overview

Connect WordPress, Framer, Lovable or a signed webhook. One destination per site, nothing goes live without your OK, and what happens when a publish fails.

Connect where articles go in Article settings → Publishing. Only the workspace owner can connect or change it.

Where you can publish

DestinationHow it connects
WordPressOne click on WordPress's own Approve screen. No plugin.
Framer (beta)Your project link and an API key. Posts go to a CMS collection.
LovablePaste one prompt into Lovable. It builds the blog and the endpoint.
WebhookYour own app. A prompt for Cursor or Claude Code builds the endpoint.
WebflowComing soon.

Each site has one destination. To switch, disconnect the current one and connect another. Disconnecting keeps live posts where they are; scheduled articles wait.

Connection status

  • Not connected: articles stay in RankHabit.
  • Waiting for test: connected, but not tested yet. Send the test from the card.
  • Connected: the test worked.
  • Needs attention: the last publish failed. Fix connection, then Retry.

Tests never publish anything: WordPress and Framer get a draft called “RankHabit test post: safe to delete”, removed a minute later, and webhooks get a signed sample marked as a test.

When articles go out

An approved (or, with auto-publish on, scheduled) article goes out on its day, from about 9 am in your site's time zone. A day that passed is never sent by itself: Overview shows it as “didn't go out” with Publish. Connecting a destination never sends a backlog either; you're asked “Publish N overdue articles now?” instead.

When a publish fails

Busy or temporary errors are retried by themselves. If it still fails, the article stays scheduled with a plain sentence saying what went wrong, shown on Overview and on the article, with Fix connection and Retry.

The workspace owner gets one email for the first failure in a row. Once a publish works again, you'll hear about the next one.

CMS fields

Article settings → CMS fields shows what each article field is sent as. WordPress maps them for you (title, content, excerpt, slug, featured image). In Framer you pick a field for each, and Title and Body are required. Webhooks and Lovable get every field as JSON.

Extra fields (WordPress and Framer) are filled on every article: AI picks, Same every time, or Leave empty. Change one on an article with Fields. A required field left empty blocks publishing until it's set.