Connect Meeeters to your stack
Your AI drafts should land where you work. Pick your platform below: every install guide lives on this page, with screenshots-level steps, code samples and FAQ.
Connect Meeeters to WordPress
Direct connectorTwo minutes, nothing to install. Your AI drafts land directly in wp-admin as drafts, ready for your review.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
No. Application passwords are built into WordPress since version 5.6, and Meeeters uses the standard WordPress REST API. Nothing to install, nothing to update.
No. Every article arrives with the draft status. You open it in wp-admin, edit if you want, and press publish yourself.
It only grants the API access of the user who created it, and you can revoke it anytime from the same screen. Meeeters stores it server-side only, encrypted at rest on our locked credentials table, and never shows it again.
Three usual causes: the site URL must be the root (https://yoursite.com, no /wp-admin), the username is your WordPress login (not the email in some setups), and some security plugins block the REST API, add an exception for /wp-json.
No. Meeeters only calls the WordPress REST API to create draft posts. It never sees your theme, your plugins, your files or your code, and it has no way to reach a custom dashboard or the logged-in area of your product. For extra safety, create the application password on an Editor account rather than an Administrator one.
It is a normal WordPress draft: you fix it in wp-admin like any other post. Nothing Meeeters sends is locked or managed remotely. Once a draft lands on your site, it is entirely yours.
Connect Meeeters to Webflow
Direct connectorNative connector: one token to paste, two minutes total. Drafts from your SEO audit land straight in your Webflow CMS, as drafts you review in the Editor.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Yes. Paste a Webflow site API token in Meeeters Settings and we auto-detect your blog collection and its fields. Drafts are created directly in your CMS, never published without you.
We pick the collection whose name looks like a blog (blog, posts, articles, news), or the first collection with a rich text field. The connection screen confirms which one was selected. If you have no CMS collection with a rich text field yet, create one first.
CMS read + write, and Sites read. You generate the token in Webflow under Site settings, Apps and integrations, API access. It is stored server-side only and never shown again.
Yes, the signed webhook remains available as an advanced option. Point it at a Make/Zapier webhook trigger and map title, meta_description and markdown to a Create CMS item action. Most Webflow users no longer need this.
No. The scopes limit it to CMS items and basic site info. Meeeters creates draft items in one collection, and that is all it can do: it cannot edit your designs, your pages, your custom code or your site settings. You can revoke the token in Webflow at any time.
It is a normal CMS item in your Webflow collection: open it in the Editor or Designer and fix it like any other item. Nothing is locked, the content is yours the moment it lands in your CMS.
Receive Meeeters drafts on your own site
Signed webhookFor custom sites (Next.js, Node, PHP, anything). Meeeters POSTs your AI drafts to a URL you own, signed so you can verify it is really us. Five minutes, copy-paste below. On WordPress? You do not need this: use the WordPress connector instead.
How it works, in three steps
1. In your Meeeters dashboard, Settings → Connect your site → Webhook: paste your endpoint URL and click Generate to create the signing secret. 2. Store that same secret in your site's environment variables and deploy one of the endpoints below. 3. Click Connect: Meeeters sends a signed ping, and from then on every draft you approve arrives as JSON at your URL.
What we send
// Header: X-Meeeters-Signature = HMAC-SHA256(body, your secret), hex
// Connection test:
{ "event": "ping", "source": "meeeters.com" }
// Article ("article.draft", or "article.publish" when auto-publish is on):
{
"event": "article.draft",
"live": false,
"title": "3D Product Visualization Services for Swiss Brands",
"seo_title": "…the <title> tag, max 70 chars…",
"meta_description": "…max 155 chars…",
"slug": "3d-product-visualization-services",
"category": "platform", // your silo, empty if none
"path": "/platform/3d-product-visualization-services", // ready to use
"lang": "fr",
"markdown": "# Title\n\nFull article in markdown…",
"tldr": "…2 or 3 sentences, for a TL;DR box…",
"faq": [{ "q": "…", "a": "…" }], // up to 6, empty if none
"schema_jsonld": { } // BlogPosting, ready to inline
}Two fields save you work. path is the public URL path we already assembled from your silo and slug, so you have nothing to compute. schema_jsonld is the structured data for the page, ready to drop into a <script type="application/ld+json"> tag: do not generate your own, and if we detected an Organization on your site we reference it instead of duplicating it. We only send it to custom endpoints, because WordPress and Webflow already produce it themselves.
Next.js (App Router)
import crypto from "node:crypto";
const SECRET = process.env.MEEETERS_WEBHOOK_SECRET || "";
export async function POST(req: Request) {
const body = await req.text();
const sig = req.headers.get("x-meeeters-signature") || "";
const expected = crypto.createHmac("sha256", SECRET).update(body).digest("hex");
const ok = sig.length === expected.length &&
crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected));
if (!ok) return new Response("invalid signature", { status: 401 });
const data = JSON.parse(body);
if (data.event === "ping") return Response.json({ ok: true });
// Upsert on data.path (or data.slug): re-sending a corrected article then
// replaces the entry instead of creating a second one.
// await db.articles.updateOne(
// { path: data.path },
// { $set: { title: data.title, seoTitle: data.seo_title, meta: data.meta_description,
// lang: data.lang, markdown: data.markdown, tldr: data.tldr, faq: data.faq,
// jsonld: data.schema_jsonld, status: data.live ? "published" : "draft" } },
// { upsert: true });
return Response.json({ ok: true, url: "https://your-site.com" + data.path });
}Node / Express
const crypto = require("crypto");
const express = require("express");
const app = express();
const SECRET = process.env.MEEETERS_WEBHOOK_SECRET || "";
app.post("/api/meeeters", express.text({ type: "*/*" }), (req, res) => {
const expected = crypto.createHmac("sha256", SECRET).update(req.body).digest("hex");
const sig = req.get("x-meeeters-signature") || "";
if (sig.length !== expected.length ||
!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) {
return res.status(401).send("invalid signature");
}
const data = JSON.parse(req.body);
if (data.event === "ping") return res.json({ ok: true });
// TODO: store { title, meta_description, lang, markdown } as a draft
res.json({ ok: true });
});PHP
<?php
$secret = getenv("MEEETERS_WEBHOOK_SECRET");
$body = file_get_contents("php://input");
$sig = $_SERVER["HTTP_X_MEEETERS_SIGNATURE"] ?? "";
if (!hash_equals(hash_hmac("sha256", $body, $secret), $sig)) {
http_response_code(401); exit("invalid signature");
}
$data = json_decode($body, true);
if (($data["event"] ?? "") === "ping") { echo json_encode(["ok" => true]); exit; }
// TODO: enregistrer le brouillon ($data["title"], $data["lang"], $data["markdown"])
echo json_encode(["ok" => true]);Multilingual sites
Every draft carries a lang field (the primary language detected by your Meeeters audit). Route it to the right locale of your site, and let your usual translation pipeline handle the other languages, exactly like the rest of your content.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
You invent it. Click Generate in the Meeeters connect card, then store the same value in your endpoint's environment variables. It is a shared secret: Meeeters signs every request with it, your endpoint verifies the signature.
Skip the webhook entirely. Use the WordPress connector: create an application password in your WP profile, paste it in Meeeters, done. Drafts land directly in your wp-admin.
No. Meeeters only sends drafts. Your endpoint decides what to do with them, and the recommended pattern is to store them as drafts for review.
The send fails and the member sees an error in the dashboard, nothing is lost: the draft stays in Meeeters and can be re-sent or copied manually.
No. A webhook is one-way delivery: Meeeters POSTs a JSON payload to your URL and that is all. It cannot read your database, your code, your dashboard or anything else on your site. The only code with any power is the endpoint you wrote yourself, and it does exactly what you programmed, nothing more.
Never. Meeeters only sees what everyone sees: your public site. A third-party tool cannot reach a private repository unless you explicitly install it there, and Meeeters does not ask for that. Publishing works through credentials you choose to share (a CMS token) or through this webhook, where your own code stays in full control.
The content lives on your site, so you edit it there like any other content, nothing is locked. You can also edit the draft in Meeeters and re-send it: if your endpoint matches incoming drafts by title or slug and replaces the existing entry, corrections apply cleanly.
Connect Meeeters to GitHub
Direct connectorFor sites that live in a Git repo (Astro, Next.js on Vercel, Hugo, any static or markdown-based site): Meeeters commits each article as a .md or .mdx file into your content folder, and your host redeploys. Drafts carry draft: true so nothing shows until you flip it.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Any site whose content lives as markdown files in a repository: Astro, Next.js with MDX, Hugo, Jekyll, Docusaurus, Eleventy, or a Lovable app synced to GitHub. If your host redeploys on push (Vercel, Netlify, Cloudflare Pages), articles go from Meeeters to production with zero glue code.
Only what you scoped: Contents read and write on the one repository you chose. It cannot touch other repos, settings, actions or members, and you can revoke it on GitHub at any time. It is stored server-side only, encrypted at rest, and never shown again.
No. Articles are committed with draft: true in the frontmatter, so your site hides them until you set draft: false. If you prefer straight-to-live, enable auto-publish in Meeeters and drafts are committed publishable.
Meeeters only adds or updates its own article files inside the content folder you configured. It never touches your code, your components or other content, so conflicts with your day-to-day work do not happen in practice.
Connect Meeeters to Ghost
Via webhook / APIGhost has a proper Admin API, so drafts from your SEO audit can land as Ghost drafts automatically, or you copy markdown into the editor. Either way you review and publish.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Not a one-click one yet. The clean path is the signed webhook feeding a small automation that calls the Ghost Admin API to create the post with status draft. Copy markdown into the Ghost editor works everywhere with zero setup.
A Custom Integration in Ghost, under Settings, Advanced, Integrations. It gives you an Admin API key and URL. Your automation uses them to create posts. Meeeters always sends status draft, so nothing publishes on its own.
Yes. Send the article as HTML or Lexical to Ghost and headings, lists and links come through. If you copy markdown by hand, paste it into a markdown card in the editor.
Connect Meeeters to Notion
Via webhook / APIIf Notion is your CMS, drafts from your SEO audit can land as new pages in your blog database, unpublished, ready to review. Or copy markdown into a page in seconds.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Yes. Whether you use Super, Potion, Notion Sites or a headless setup, your posts live in a Notion database. Meeeters drafts can be created there automatically via the Notion API, or you paste markdown into a page.
You create a Notion internal integration, share your blog database with it, then have a Make or Zapier step call Create database item. Meeeters sends the signed webhook payload with title, meta_description, lang and markdown to map onto your properties.
Use a Published checkbox or Status property in your database and leave it off. Meeeters always sends drafts, so your automation should create items with Published unchecked. You flip it live yourself after review.
Connect Meeeters to Shopify
Via webhook / markdownHonest status: no one-click Shopify connector yet, and two working paths today for getting drafts into your store blog.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Not yet, it is on the roadmap. Today the paths that work are the signed webhook feeding a Flow/Make/Zapier automation that creates a hidden blog article, or copy markdown into the Shopify editor.
Hidden is Shopify's draft state for blog posts. Your automation should create articles as hidden so you review and set them visible yourself, consistent with how Meeeters works everywhere: drafts only.
For SEO, yes. Store blogs earn the informational rankings and the backlinks that product pages rarely attract, and internal links pass that authority to your collections.
Connect Meeeters to Framer
Via webhook / markdownFramer has a real CMS, so drafts from your SEO audit can flow into your blog collection through an automation, or you paste markdown into a draft entry. You always publish.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Not yet. Framer has a CMS with a blog collection, and two paths work today: the signed webhook feeding a Make or Zapier automation that adds a collection entry, or copy markdown into a new draft entry by hand.
Your blog or articles CMS collection. Make sure it has fields for title, a rich text or markdown body, and a meta description, so the mapping is clean. Create the collection first if you do not have one.
Add a Published toggle or use Framer's draft state on the collection, and leave new entries unpublished. Meeeters only ever sends drafts, so you review and publish from the Framer CMS yourself.
Connect Meeeters to Wix
Via webhook / markdownHonest status: no one-click Wix connector yet, and two working paths today for getting drafts into your Wix blog, both leaving you in control of publishing.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Not yet. Today the reliable paths are copy markdown into a new Wix blog draft, or the signed webhook feeding a Make or Zapier automation that creates a draft post. Wix Blog also has APIs via Velo for advanced setups.
Yes. A store or business site earns informational rankings and backlinks through its blog that product and service pages rarely attract, and internal links pass that authority across your site.
Create the post in Wix without publishing, or have your automation set it to draft. Meeeters only ever sends drafts, so nothing goes live until you review and publish it in the Wix editor.
Connect Meeeters to Squarespace
Via markdownSquarespace has no open blog API, so copy markdown is the fast, reliable path, with a webhook automation available where a Zapier connection fits. You always publish yourself.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Not yet. Squarespace has no open write API for the blog, so the fastest reliable path is copy markdown into a new draft post. For automation, a signed webhook into Zapier can create the post where a connection is available.
Generate the draft, copy the markdown, then in a new blog post add a Markdown block and paste. Squarespace renders headings, lists and links. Save the post as a draft, never published automatically.
Set the SEO description in the post's Options, SEO tab. The Meeeters draft gives you a ready meta_description to paste, so the page ships with a proper search snippet.
Connect Meeeters to Lovable
Webhook / codeLovable ships a real codebase you own, synced to GitHub, so the cleanest path is the native GitHub connector: Meeeters commits articles into your content folder. Paste markdown or the signed webhook also work.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Yes, through GitHub. Lovable syncs your app to a GitHub repository, and the Meeeters GitHub connector commits articles as markdown files into your content folder with draft: true. The signed webhook and copy markdown remain available as alternatives. You keep full control of the code.
No. Lovable writes it from a prompt. Ask it to add a blog route that renders markdown articles from a content folder or an API endpoint, and it scaffolds the pages, routing and styles for you.
Wherever your Lovable app reads content: a markdown file you paste, or a record your webhook automation creates. Nothing deploys automatically. You review in the Lovable preview and ship when you are happy.
Use Meeeters with Claude
MCP + workflowClaude will not replace your judgment, but it is excellent at two things around Meeeters: answering link building questions from our knowledge base, and turning a good draft into your voice.
https://meeeters-nlweb.onrender.com/mcp. Claude can then query our guides (anchor text, link velocity, safe exchanges…) with sourced answers while you work.Frequently asked questions
Quick answers to the questions people ask most about this topic.
The Model Context Protocol, an open standard that lets assistants like Claude call external tools. Meeeters exposes its link building knowledge base through an MCP-compatible endpoint, so Claude can query it directly during a conversation.
No, and that is deliberate. Publishing always goes through your review in the Meeeters dashboard and your CMS. Claude is for thinking and rewriting, not for pushing content live.
Any plan that supports custom connectors/MCP servers (Claude desktop and claude.ai support this). The polish workflow in step 3 works with every plan, including free.
Use Meeeters with ChatGPT
WorkflowThe honest division of labor: Meeeters decides what page to write from your audit and drafts it; ChatGPT helps you make it unmistakably yours.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Because a chat window starts from nothing. Meeeters starts from your audit: it knows which page your structure is missing, in which silo, for which intent, and drafts accordingly. ChatGPT is the polish pass, not the strategy.
No. Publishing always goes through your review and your CMS. The routine here is edit-only, which is exactly where assistants shine.
Yes. The routine is plain prompting, no plugins or actions required.
Use Meeeters with Perplexity
WorkflowThe division of labor: Meeeters decides what page to write from your audit and drafts it; Perplexity adds recent, cited facts and sources so the page is accurate and earns trust.
Frequently asked questions
Quick answers to the questions people ask most about this topic.
Perplexity answers with live sources and citations, so it is the fact and freshness pass: recent numbers, current prices, real references you can link. Meeeters decides which page to write and drafts it; Perplexity makes the facts trustworthy.
No. Publishing always goes through your review and your CMS. This routine is research and verification only, which is exactly where a cited answer engine is strongest.
Yes. The routine is plain prompting with sources. A paid plan mainly adds more Pro searches, not a different workflow.
Two universal paths cover every platform: the signed webhook if you can host an endpoint, or Copy markdown in the draft panel, works everywhere with zero setup.
Analyze your site now
Enter your website and the AI scans it: your SEO audit, the pages worth writing, and every draft delivered straight into the stack you just picked.