Skip to content

SEO by platform

SEO for git-built sites

Articles commit as markdown files into the repository and path you choose, and your deploy turns each commit into a page. Built for Next.js, Astro, Hugo, Jekyll and any headless setup where a committed file becomes a page on the next build.

How publishing works on GitHub

Each published article is a commit: a markdown file with front matter, title, description, date and slug, landing at the path template you configure, so common static-site generators pick it up without glue code. A retry publishes to the same path and overwrites rather than duplicates. Verification treats git differently on purpose: a repository file URL always resolves even when your site's page does not, so git publishes are never marked live off the repo URL, and the final page is your build's responsibility.

Markdown with front matter, at your path

Articles carry front matter with title, description, date and slug, and land where the connection's path setting points, for example content/blog. Generators differ on paths and front-matter keys, so the path is yours to set.

Help centre: Github
  • A token scoped to one repository

    A fine-grained token with contents read and write on just the target repository is the right shape. Scoping it to one repo limits the blast radius of a leak.

  • Git publishes are never falsely marked live

    A repository file URL resolving proves nothing about your site, so git-hosted publishes are not URL-verified. Reachability of the final page belongs to your build pipeline, and the states say so instead of pretending.

  • Articles come off a planned calendar

    Plan items on the content calendar and write them two ways: click Write on a card, or let Auto-write pick each one up at midnight on its calendar date. Both run the same researched pipeline, which drafts the article and then revises it against the content score across sweeps.

  • Every article is scored before you ship it

    The content score runs 36 fixed checks in 6 categories, with no randomness anywhere: the same page always produces the same score. Each check comes back as a pass, a warn or a fail, and each failure names its specific fix.

What this connection will not do

Stated up front, because finding out after the first publish costs more. Each line is a fact about what we send GitHub, not a guess about the platform.

  • The connection cannot see your build. A commit that lands while the deploy fails, or a file the generator ignores over a path or front-matter mismatch, produces no page, and the deploy log for the commit is where that shows. Documented: Github

  • Renaming or moving published files later is yours to manage in git. Documented: Github

Connect it in three steps

The same fields the connect wizard asks for, in the order it asks.

  1. Create a fine-grained token

    In GitHub, create a fine-grained personal access token that explicitly lists the target repository, with contents read and write. A token without that repo reads as not-found rather than forbidden.

  2. Point the connection at the repo

    In the project's Publishing tab, choose GitHub, paste the token, set the repository as owner/repo, the live site URL, and the file path template, for example content/blog/{slug}.mdx. Leave the live branch blank to have drafts arrive as PR branches.

  3. Test and watch the build

    Send a test publish, confirm the file appears in the repo, then let your site build and open the page it produced.

Questions people ask

The ones that decide whether this fits, answered with the verdict first.

The commit exists but no page appeared. Why?
Your site did not rebuild, or the generator ignored the file over a wrong path or a front-matter mismatch. Check the deploy log for the commit.
Is there a way to set this up without creating a token?
Yes, where it is switched on: the one-click GitHub and Next.js setup card connects through a GitHub App install with nothing typed in. It appears on the Publishing grid on servers where the App is configured.
What happens on a delivery retry?
The same article publishes to the same path, so a retry overwrites rather than duplicates. Two different slugs for one article means the slug changed between attempts, delete the stray file.

Other platforms

Same pipeline, different door. Every platform page states what its connector sends and what it will not.

  • Next.js

    Two paths for a Next.js site. The blog package scaffolds list, article, tag and sitemap routes and fills them from the articles your project publishes, with nothing to host on your side. Or commit markdown into your existing content folder through the GitHub connection and leave your rendering alone.

  • Framer

    Framer does not expose a public API that lets an outside service create CMS items on any site, so there is no direct connector to pretend with. What Framer does offer is two doors we already serve: it imports a CMS collection from an RSS feed, and its official Zapier and Make integrations create CMS items from a webhook.

  • WordPress

    Two connectors, one pipeline. Publish with an application password, or install the plugin and paste one Integration Key. Either way the article arrives with its images uploaded into your own media library, and the publish is confirmed by fetching the public URL.

SEO by platform

See it on your own site

A free audit grades your site A+ to F, then the calendar, the writer and the GitHub connection do the week's work. No card required.