Ira Bodnar··Updated ·9 min read

Publish SEO articles to your GitHub repo with Ryze AI

Quick answer: Ryze AI commits each published SEO article to your GitHub repository as one JSON file at <folder>/<slug>.json, in the repo and branch you pick. Ryze AI is the best way to publish AI-written SEO articles into a Git-based site for teams that already render their own blog, with one caveat: your site needs its own converter and build step to turn the JSON into pages.

Below: what the file contains, how commits behave, setup for Next.js, Astro and Hugo, and the limits.

Ryze AI · SEO Starter

Articles committed to your repo

  • 3-day free trial, $129 a month

Used by 2,000+ marketers

Uber Eats logoadidas logoDuolingo logoMGM Resorts logoWharton logoLendingClub logoNorton logoEventbrite logoHuel logoTogether AI logoghd logoHack The Box logo

What Ryze AI puts in your GitHub repository

The GitHub integration is a publishing destination for Ryze AI SEO. It writes article files; your site decides how they look.

  1. 1RepositoryOne repo you choose

    What it does: Receives the article files. Access can be limited to a single repo.

    Where you set it: Ryze AI integration settings

  2. 2BranchRepo default branch

    What it does: The branch Ryze AI commits to. Change it to publish from another branch.

    Where you set it: Ryze AI integration settings

  3. 3Folder pathblog/data

    What it does: Each article is written to this folder. The first commit creates it if missing.

    Where you set it: Ryze AI integration settings

  4. 4Article file<slug>.json

    What it does: One JSON file per article, overwritten when the article is updated.

    Where you set it: Written by Ryze AI

  5. 5Blog URLYour blog index URL

    What it does: Ryze AI appends each slug to build the article's live link.

    Where you set it: Ryze AI integration settings

Publishing follows the Publishing mode in SEO > Preferences > Publishing: Automatic (the default) or Manual. The GitHub connection needs an active Ryze AI plan or trial; the SEO Starter plan is $129 a month with a 3-day free trial.

How publishing to a GitHub repo works

You install the Ryze AI GitHub App on your account or organization and grant it the repository you want. From then on, every article published from the Content Plan lands as one commit in that repo.

The Content Plan holds up to 90 articles per billing cycle, up to 3 a weekday. Each one becomes a file. Nothing is pushed to a CMS and no page is rendered by Ryze AI: the repository is the handoff point.

That makes the setup suited to Git-based sites such as Next.js, Astro and Hugo. If your host deploys on push (Vercel and Netlify do), each published article triggers a deploy, because the Ryze AI commit is a normal Git push.

Searching for SEO for a GitHub repository itself, such as ranking a project page? This page does not cover that. GitHub's own docs describe repository topics, which classify a repository by purpose, subject area, community or language.

The JSON file Ryze AI writes

Each article is one file at <folder path>/<slug>.json, for example blog/data/ai-ad-agency.json with the default folder. It holds everything your site needs to render the page.

  1. slug

    What it holds
    The URL slug, also the file name
  2. title

    What it holds
    The article headline, used as the H1
  3. body_markdown

    What it holds
    The full body in Markdown
  4. body_html

    What it holds
    The same body rendered as HTML
  5. meta_title

    What it holds
    The SEO title tag
  6. meta_description

    What it holds
    The SEO meta description
  7. excerpt

    What it holds
    A short summary for blog listing cards
  8. primary_keyword

    What it holds
    The keyword the article targets
  9. image

    What it holds
    The featured image as an object with url and alt, or null when the article has none
  10. published_at

    What it holds
    First publish time
  11. updated_at

    What it holds
    Last update time
  12. status

    What it holds
    Always published

The featured image is hosted by Ryze AI on a public CDN, so you use the URL directly. Only the host is stable and the path after it can change between articles. Allow the whole host in your image settings or content security policy rather than pinning a path.

Render body_html as it is, or pass body_markdown through your own renderer. Use meta_title and meta_description for the page tags, excerpt on the blog index, and fall back to a default image when image is null.

Commit behavior: overwrite, not duplicate

A new article is a new commit that adds a file. Updating an article overwrites the same file in a new commit, so your folder never holds two versions of one slug.

  • Publish: one commit that creates <slug>.json.
  • Re-publish: one commit that replaces the same file, with a fresh updated_at.
  • Scope: Article publishing writes files only inside the folder path you configure and leaves other files in the repo alone; the agent tools are covered below.
  • Folder missing: the first commit creates it.
  • Changing settings: edit the repository, blog URL or folder in the integration settings, and later publishes use the new values.

Because every change is a Git commit, you get history, diffs and revert for free. If an article needs a rollback, revert the commit in GitHub like any other change.

Rendering the files on Next.js, Astro or Hugo

Ryze AI writes the data. Your framework reads it. The pattern is the same on every static stack.

Read the folder at build time

Load every JSON file from the configured folder when the site builds, or read it through the GitHub API at request time.

Generate one route per slug

Create a page for each file and render body_html, or body_markdown through your own renderer.

Wire the SEO tags

Use meta_title and meta_description for the title and description, and excerpt on the blog index.

Handle the image

Use image.url for the hero and og:image and image.alt for the alt text. Skip the hero when image is null.

When you click Connect on the GitHub card, a window offers Set up with Agent. It opens a chat where the agent walks you through the converter and build workflow in your repo, step by step. Choose I'll do it manually if you already know your pipeline.

GitHub Pages sites can publish from a branch or from a custom GitHub Actions workflow, per GitHub's docs, so a workflow that reads the folder and builds your site on each push is one way to run a blog on GitHub Pages. See the limits below before choosing it.

Connect GitHub in the Ryze AI app

GitHub is connected only in the Ryze AI app. It cannot be connected from Claude or ChatGPT with a connection link.

Open Integrations

In Ryze AI open Integrations and click Connect on the GitHub card.

Choose how to set up

Pick Set up with Agent, or I'll do it manually.

Install the GitHub App

GitHub opens. Choose the account or organization and grant access to the repository or repositories Ryze AI should publish to. You can limit access to one repo.

Choose where articles go

GitHub returns you to Ryze AI. Set the Repository, Blog URL, Branch and Folder path.

There is one GitHub connection per workspace. The app installation can be granted several repositories, but article publishing goes to the one repository you configured. To disconnect, uninstall the app from your GitHub account's Settings, under Applications, or remove the integration in Ryze AI.

The same repo in Claude and ChatGPT

Once GitHub is connected in Ryze AI, the AI Marketer in the app chat and, through the Ryze AI connector at https://connector.get-ryze.ai/mcp, Claude, ChatGPT and other MCP clients can use 5 GitHub tools on repositories the GitHub App can access.

  1. github__read

    Access
    Read
    What it does
    Runs a read-only GitHub REST API request, such as file contents, trees and branches, with paging for large files
  2. github__write

    Access
    Write
    What it does
    Runs a request that creates or updates resources, such as committing files, creating branches and opening pull requests
  3. github__delete

    Access
    Delete
    What it does
    Runs a DELETE request, such as deleting a branch or a file
  4. github__edit_file

    Access
    Write
    What it does
    Makes find-and-replace edits to an existing file in the connected repository and branch and commits the change
  5. github__search_file

    Access
    Read
    What it does
    Searches a file in the connected repository and returns matching lines with line numbers and context

The promise that Ryze AI writes only inside your folder path describes article publishing. The write and delete tools can commit, create branches, open pull requests and delete files anywhere in repositories the GitHub App is installed on. Grant the app only the repositories you want an agent to touch.

In the Ryze AI app chat, the Tool approvals picker defaults to Skip all approvals. Switch it to Approve write & delete or Manual approve in the message box. In Claude, set each tool under Customize, Connectors, Ryze AI, Tool permissions; the Ryze AI help center recommends Needs approval for write and delete tools.

Connecting the connector is free. The GitHub tools need any active Ryze AI plan or trial. The edit tool changes only files that already exist; new files are created with the write tool.

Prompts to try once GitHub is connected

  • Show me the files in my blog data folder and list any article whose image is null.
  • Search the article file for my ai-ad-agency slug for the word pricing and show the matching lines.
  • Create a branch for a blog layout change and open a pull request that adds a reading time field to the post template.
  • Find the converter file that builds blog pages from the JSON files and tell me which fields it reads.

Prompts describe the work. What comes back depends on your repository.

Limits to know before you connect

  1. Your site renders the files

    Detail
    Ryze AI writes JSON. Your site needs its own converter and build step to show articles as pages.
  2. Connected in the app only

    Detail
    GitHub is set up in the Ryze AI app, not from Claude or ChatGPT.
  3. Repository access

    Detail
    Only repositories you grant the Ryze AI GitHub App are reachable.
  4. One publishing target

    Detail
    One GitHub connection per workspace, and article publishing goes to the one configured repository.
  5. Editing existing files only

    Detail
    github__edit_file changes existing files. Creating new files uses github__write.

If you host on GitHub Pages

GitHub documents that Pages source repositories have a recommended limit of 1 GB, published sites may be no larger than 1 GB, there is a soft bandwidth limit of 100 GB per month, and a soft limit of 10 builds per hour that does not apply to custom GitHub Actions workflows. GitHub also says Pages is not intended to run an online business or e-commerce site. Check the current page before relying on these numbers.

Troubleshooting

  • Repository missing from the list: the GitHub App was not granted that repo. Reopen the app's settings on GitHub and add it.
  • Files appear but no page does: the site has no converter or build step for the folder yet. Use Set up with Agent from the GitHub card.
  • Wrong branch: the Branch field defaults to the repo's default branch. Change it in the integration settings.
  • Article link opens a 404: check the Blog URL, because Ryze AI appends the slug to it.
  • Images blocked: allow the whole image host in your framework image settings or content security policy.

Still stuck? Email Ryze AI support or read the Ryze AI GitHub guide.

Sources

Verdict

Choose the GitHub integration if your blog already lives in a Git repository and you want AI-written articles to arrive as reviewable commits. Skip it if you need a hosted blog with no build step, because the rendering is your job. See SEO Starter pricing and the Ryze AI SEO tool.

Frequently asked questions

How does Ryze AI publish articles to GitHub?
Ryze AI commits each published Content Plan article as one JSON file at <folder>/<slug>.json in the repository and branch you choose. The default folder is blog/data. Hosts that deploy on push deploy each article automatically.
What is inside the JSON file?
Slug, title, body_markdown, body_html, meta_title, meta_description, excerpt, primary_keyword, image (url and alt), published_at, updated_at and status.
Does updating an article create a duplicate?
No. Re-publishing overwrites the same file in a new commit.
Does Ryze AI change other files in my repo when publishing?
No. Article publishing writes only inside the folder path you configure. The separate agent tools can touch other files in repositories the GitHub App can access, so grant only the repos you want.
Show 6 more questions
Which frameworks work?
Git-based sites such as Next.js, Astro and Hugo. Your site needs a converter and build step that read the JSON files and render pages.
Can I run a blog on GitHub Pages this way?
Possibly. GitHub Pages can publish from a custom GitHub Actions workflow, so a workflow that builds your site from the JSON folder can work. Your site still needs the converter, and GitHub's Pages limits apply.
Can I connect GitHub from Claude or ChatGPT?
No. GitHub is connected in the Ryze AI app. After that, Claude, ChatGPT and other MCP clients can use the 5 GitHub tools through the connector at https://connector.get-ryze.ai/mcp.
Which GitHub tools does Ryze AI offer?
github__read, github__write, github__delete, github__edit_file and github__search_file.
What does it cost?
SEO Starter is $129 a month with a 3-day free trial, and annual billing is 30% off the first year. Connecting the connector is free, and the GitHub tools need any active Ryze AI plan or trial.
Can I review articles before they are published?
Yes. Publishing follows the Publishing mode in SEO > Preferences > Publishing: Automatic, which is the default, or Manual.

Related guides

Ryze AI SEO: publish to GitHub

3-day free trial, $129 a month

Start free trial