Guide
Edit your Webflow CMS with Claude
Desktop & open-source edition. Prefer to work in your browser? Open this in the Spectersync webapp → — subscribe now for 500 free credits when your workspace opens.
The Webflow Editor is built for one item at a time. Webflow AI Assist polishes a paragraph. Neither one will rewrite the meta description on a hundred blog posts, fix outdated product mentions across every case study, or sweep your CTAs after a pricing change. That’s the job Specter + Claude does well.
This is the workflow, end to end. It assumes you’ve already connected your Webflow site. If you haven’t, do that first — the rest of this guide assumes there’s a folder of markdown on your Mac mirroring your Webflow CMS.
What’s in the folder
Each CMS item is one .md file. The frontmatter at the top holds the structured fields — name, slug, draft/published state, reference fields by item id, image fields by URL, the SEO fields the collection exposes. The body of the file is the rich-text body of the item, converted from Webflow’s rich-text format to markdown. Headings, lists, links, code blocks, and inline formatting round-trip cleanly. Embedded components and custom HTML inside rich text round-trip as opaque blocks so Claude can read around them without breaking them.
The folder layout mirrors your collections — one subfolder per collection on the site, one file per item. That layout matters because it’s what makes “full-archive context” possible.
Pointing Claude at the folder
Open Claude (the desktop app, Claude Code, or Cursor — anything that can read a folder works). Point it at your Webflow sync folder. Claude can now read every CMS item in every collection at once. That’s the bit that breaks the one-item-at-a-time ceiling: when Claude proposes an internal link, it can check that the target item actually exists, with the right slug, in the right collection.
A prompt that works:
Here’s the folder for my Webflow site. I want to rewrite the meta description on every blog post. The target audience is technical founders. Each meta description should be a single sentence, between 140 and 160 characters, that names the concrete problem the post solves and ends with a noun phrase, not a call to action. Write the new meta description into the
seoMetaDescriptionfield in the frontmatter. Don’t touch the body. Leave anything you’re unsure about and add a# CLAUDE NOTE:comment line at the top of those files.
Claude reads every blog post, drafts new meta descriptions, and edits the frontmatter in place. You don’t see anything change in Webflow yet — these are still local files.
Previewing the diff
Open Specter and click Preview Sync. Specter walks the folder, diffs it against the live Webflow CMS, and shows you exactly which items would update, line by line. This is the bit you don’t get from the Editor or from Webflow AI Assist — a single, scrollable view of every change, before any of it is live.
Scan the diff. The cases to watch for:
- Items Claude marked with a
# CLAUDE NOTE:comment line — those need a manual pass. - Meta descriptions that came out under 140 or over 160 characters — Claude will sometimes drift on length.
- Anything where the slug or reference field changed unexpectedly. Slug and reference fields shouldn’t move during a meta-description sweep; if they did, something went sideways with the prompt.
If you don’t like a particular change, revert it in the markdown file and click Preview Sync again. The diff updates immediately.
Pushing back
When the diff looks right, click Sync. Specter streams the changes back to Webflow through the Data API in the background, batching and respecting rate limits so the push doesn’t time out on a hundred-item collection.
Each item lands in Webflow as a normal CMS update — draft items stay draft, published items get their fields updated in place, and the Editor still sees them like any other change. Your existing publish workflow (staging URL → publish to your live domain) keeps working — Specter doesn’t bypass it.
Other things this same pattern is good for
The meta-description sweep is the warm-up. Once the loop (point Claude at the folder, preview the diff, push) is muscle memory, the same pattern handles:
- Internal-link audits. “Find every blog post that links to our old pricing page (
/pricing-old) and update the link to/pricing. If the post is older than 18 months, also add a short editor’s-note line at the top noting the post was reviewed.” - CTA refreshes. “Replace every instance of the CTA block whose
idiscta-trial-v1with the markdown for the new CTA, keeping the surrounding paragraphs untouched.” - Tone passes. “Read the writing-style guide in
/style-guide.md, then rewrite the intro paragraph of every guide-collection item so it matches the voice. Don’t touch the rest of the body.” - Translation. “Translate every blog post in
/collections/blog/to French. Keep the slug. Add alang: frfield to the frontmatter. Don’t translate code blocks. Put the translations in/collections/blog-fr/.”
The thing they have in common is that each of them needs the whole archive in view at once — and Specter is what makes the whole archive available as a folder.