---
title: "Publish to Framer"
description: "Connect your Framer site's blog collection to RankControl. Articles land in your CMS and your site publishes on its own."
---

> Documentation Index
> Fetch the complete documentation index at: https://rctrl.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish to Framer

RankControl publishes articles into a CMS collection in your Framer project
and then publishes your site, so you never click Publish in Framer for a new
article. Articles are native CMS items: they use your blog's design, live at
your own URLs, and updates revise the same item.

You need a Framer project where you can generate an API key (site owner or
editor with settings access).

## Before you connect: your site needs a blog page

Framer stores CMS items separately from pages. A collection only shows up
on your site when a **detail page** displays it. A collection with no page
accepts articles that nobody can see.

If your site has no blog yet, add one in Framer from the **Insert** menu.
That creates the collection together with its listing and detail pages. If
you already have a blog collection with pages, you are set.

## 1. Generate the API key

In Framer, open **Site Settings → General** and create an API key. The key
belongs to this one project, so use the project that hosts your blog.

## 2. Copy the project URL

With the project open in Framer, copy the URL from the browser address bar.
It looks like `https://framer.com/projects/...`. Extra parts at the end are
fine.

## 3. Connect in RankControl

Go to **Brand Control → Publishing**, choose **Framer**, and enter a name,
the project URL, and the API key. Click **Test connection**.

Then:

1. Pick the **blog collection** to publish into. A collection marked
   *not shown on your site yet* has no detail page; see Troubleshooting
   before choosing it.
2. Optionally pick a **default author** if your collection has an author
   field. Every article gets that author.
3. Choose **Publish** (articles go live on schedule) or **Draft** (articles
   wait in your CMS for a person to publish them).
4. Save.

## What gets filled in

RankControl matches your collection's fields by name:

| Your field | Name it something like | Gets |
|---|---|---|
| Formatted text (required) | Body, Content, Article | The full article |
| Text | Title, Name | The article title |
| Text | Summary, Excerpt, Description | The meta description |
| Image | Thumbnail, Cover, Hero, Image | The hero image (every matching image field) |
| Date | Date, Published | The publish date |
| Reference | Author, Writer | The default author you picked |

Only the formatted-text field is required. Fields that do not match are left
alone.

## Publishing and live links

Each publish adds the item, then publishes your site. RankControl reads your
site's published domain and the collection page's path to show the live link
on the **Content** screen, and loads the article a couple of minutes later to
confirm it renders. An article that is not reachable is marked
**Not live yet**, and the check retries on its own.

Republishing an article revises the same CMS item, so its URL stays put.

## Troubleshooting

**"Connected, but this project has no CMS collections."** Add a blog from
Framer's **Insert** menu so the collection arrives with its pages, then test
again. Creating a bare CMS collection is not enough: it stays invisible.

**A collection shows *not shown on your site yet*.** No page in your site
displays it. In Framer, create a detail page for that collection (Pages
panel → new page → choose the collection under CMS), lay out the title, body
and image fields, and publish the site once. Articles already saved to the
collection appear as soon as the site publishes.

**"This collection has no formatted-text field for the article body."** Add a
formatted text field (for example *Body*) to the collection in Framer, then
test again.

**"Article saved to the Framer CMS, but publishing the site failed."** The
item exists; only the site publish failed. Publish the site once in Framer,
then republish the article from RankControl.

**Test connection fails.** The API key and the project URL must come from
the same project. Generate the key in the project that holds your blog and
copy that project's URL.

**Articles have no live link.** Same cause as the collection with no page.
Once the detail page exists and the site is published, republish each
article from RankControl and its link fills in.

Source: https://rctrl.com/docs/framer/index.mdx
