Connecting your website
SupaTraffic writes articles. Connecting a website lets it publish them for you too — either when you press Publish, or automatically as each one is finished.
Both are off until you turn them on. Connecting a site does not start publishing, and automatic publishing is a separate switch on the Connections screen.
What happens when you publish
- We create the post: title, body, URL slug, excerpt, tags and cover image.
- We set the SEO title and meta description where the platform lets us. Several do not — each one is spelled out below.
- We never touch anything else on your site. No themes, no settings, no other posts, no products.
- If a publish fails halfway, we ask the platform whether the post arrived before trying again — so a retry cannot leave you with two copies of the same article.
What each platform needs, and what it cannot do
- WordPress (self-hosted). Enter your site address and approve the connection on your own site — we never ask for your WordPress password. Your site issues an application password instead. Limitation: WordPress does not let any external tool set the SEO title or meta description — Yoast and Rank Math keep those private to plugins running on your site. We write our description into the post excerpt, which Yoast uses as its fallback. Your theme may also show that excerpt on archive and category pages.
- Ghost. Paste the Admin API key from Settings → Integrations, plus the API URL shown on the same screen. SEO title and description are fully supported. Limitation: Ghost’s Starter plan does not include the Admin API, so a Starter site cannot be connected at all. Ghost also converts our HTML into its own format, which can flatten tables and code blocks — we tell you when an article contains either.
- Webflow. Connect with Webflow, pick which of your sites to use, then choose which CMS collection your articles go into. Both lists come from Webflow — you never type an address. We write items into that collection and publish them. Limitations: Webflow has no per-item SEO fields — we can fill text fields, but you bind them to the page title and description once in the Designer. Webflow also drops code blocks from rich text, so we warn you rather than let them vanish. And if your site has never been published, press Publish once in Webflow first: until then there is no live site for an article to appear on.
- Framer. Paste a project API key and your project URL. Articles go into a CMS collection you choose, and we publish the project. Limitations: same SEO binding as Webflow — you connect the fields once in Page Settings. Publishing a Framer project publishes the whole site, so anything else you left unpublished in the editor goes live with the article.
- Shopify. Install from the Shopify App Store; articles go to a blog you choose. SEO title and description are supported.
- HubSpot. Paste a private app token with the
contentscope. SEO title and meta description are supported. Limitation: thecontentscope requires Content Hub or Marketing Hub Professional or above. Free and Starter accounts have a blog in the interface but cannot grant API access to it. - Notion. Authorize us and pick a database. Note: you must share the database with SupaTraffic in Notion’s permission picker during authorization — if it is not selected there, we cannot see it. Notion has no built-in SEO or publishing concept, so those fields are ordinary properties, and whether they reach Google depends on whatever renders your Notion pages.
- Next.js and other Git-based sites. Install our GitHub app on the one repository you choose. Each article arrives as its own pull request containing a Markdown file with front matter — you review and merge it, and your normal deploy publishes it. We read one of your existing posts to learn your front-matter keys and content directory, then show you what we found so you can correct it.
Step by step: connecting a Next.js, Astro, Hugo or Jekyll site
- Open Connections in SupaTraffic and press Connect beside GitHub. Start here rather than from our app’s page on GitHub — beginning on GitHub’s side gives us no way to tell which of your websites the repository belongs to, and we will send you back to do it again.
- GitHub asks where to install the app. Choose Only select repositories and pick the one your website is built from. We ask for read and write access to that repository’s code and pull requests, and nothing else — no other repository, no organisation settings, no secrets.
- GitHub brings you back to SupaTraffic. Pick the repository from the list, then confirm the front-matter keys. We read your repository’s file list, work out which site generator it is and where its posts live, then read one of those posts and show you the keys we found — so this is usually a nod rather than a form. If we guessed wrong, correct it here. Getting it wrong costs you an edit in the pull request, not a broken build.
- That is it. From then on, each finished article becomes a pull request containing one new Markdown file. Nothing reaches your live site until you merge it. Review the diff, merge it, and your normal deploy publishes the post.
A few things worth knowing before you rely on it. Your repository needs at least one commit — we cannot open a pull request against a branch that does not exist yet, so push your site first. We never commit to your main branch: nothing goes live until you merge. And if you would rather skip the review step, the connection can be set to commit straight to your default branch instead — ask us and we will switch it on.
How we find your blog
We read the list of files in your repository — not the files themselves — and look for the configuration your site generator leaves behind: astro.config.mjs, hugo.toml, _config.yml, contentlayer.config.ts, docusaurus.config.js and the rest. That tells us which generator you use and, just as usefully, where your site starts, so a blog at apps/web/src/content/blog in a monorepo is found as easily as one at the top level. Then we look at where your Markdown actually is and how those files are named, and the two answers together decide where a new article goes.
The naming matters more than it sounds. Jekyll will not read a post whose filename has no date in it — _posts/my-article.md is skipped silently, with a green build and no post on the site — so on a Jekyll blog we write _posts/2026-01-31-my-article.md, using the article’s own publication date. On a Next.js site that also keeps posts in _posts, we do not, because there the date would end up in your URL. Whichever we decide, we tell you the exact filename when you connect, so you can check it before the first article rather than after.
A brand-new blog with no posts yet still works: the generator alone is enough to say where posts belong, and we will suggest the conventional folder and the common front-matter keys for you to correct.
What we ask Webflow for, and why
When you connect Webflow we request four permissions and no others. Webflow shows you this list on its own consent screen before you approve it.
- Sites: read — to list the sites you authorised, so you can pick one, and to find its address. This is what replaces asking you to type a URL.
- Pages: read — to read your site’s pages through Webflow’s API so we can describe your business and know which of your pages an article may link to. We use it instead of fetching your published website.
- CMS: read — to list your collections and read the field names of the one you choose, so we can show you what to map an article onto.
- CMS: write — to create and update the article items themselves.
Sites: write is deliberately not requested. It is what publishing a whole Webflow site needs, and we never do that — each article is published on its own, so anything else you have staged in the Designer stays staged. We ask for nothing to do with your forms, assets, users, ecommerce, workspace or billing.
Disconnecting revokes the authorization with Webflow as well as deleting our copy of it, and you can revoke it yourself in Webflow at any time.
What it costs
SupaTraffic is a paid subscription — there is no free tier and no trial. Work is metered in credits, and one credit is one article. Reading your site, keyword research, cover images, publishing to a connected website and autopilot cost no credits at all.
A plan includes 30 articles a month. Your balance resets when the plan renews and does not roll over. If you need more inside a period, extra articles are $3 each bought ten at a time, and they are cleared by the same reset. An article that fails to generate is refunded automatically. Full prices are on our pricing page.
Your credentials
Credentials are encrypted before they are stored and are used only to publish the articles you asked for. What a credential is able to reach is decided by the platform rather than by us — we request the narrowest access each one offers, which on some platforms is not narrow. WordPress application passwords in particular cannot be restricted: the one your site issues grants access to that site’s API as the user who approved it.
You can disconnect at any time from the Connections screen. Where the platform supports it, we also tell the platform to revoke the credential rather than merely deleting our copy. You can revoke it on the platform yourself at any time, and that stops us immediately regardless of what our records say. Articles already published stay where they are — they are yours.
Something not working?
The Connections screen shows the last error for each connection in plain language, and there is a Check connection button that re-tests the credential. If a connection says it needs reconnecting, the credential was revoked or expired on the platform’s side.
Still stuck? Write to [email protected] and tell us which site and which article — we can see what the platform sent back.