Skip to content
Git-based CMS — no Git required for writers

Your editors write. PullPress opens the pull request.

A friendly CMS for websites that live in Git. Writers get a clean editor — you get real commits, reviews and history. No Git jargon, ever.

Works with your static-site generator

…and anything else that reads Markdown or YAML from a Git repository. Built for agencies and developers who run client sites on GitHub Pages, Netlify and friends.

How it works

From idea to merged in three steps

One-time setup for you, zero setup for your writers.

1

Connect your repo

A guided setup walks you through it: install the PullPress GitHub App on the repository (no repo yet? start with a one-click trial site and connect GitHub later), and PullPress reads your existing content and proposes the structure and fields automatically — accept or tweak, done.

2

Editors just write

They log in with a magic link and get friendly forms and a clean editor. No accounts on GitHub, no checkout, no command line.

3

Review & publish

Every change becomes a tidy pull request. Review the diff, or let trusted editors publish directly. Merge = live.

Editorial workflow

An editorial workflow, not a Git tutorial

Writers see friendly statuses like “Waiting for approval” and “Published” — while Git quietly keeps the full history, approvals and rollbacks underneath.

Features

Everything an editorial team needs, nothing your repo regrets

An editor built for non-technical writers

Slash commands, drag-to-reorder blocks, drag-and-paste image uploads with alt prompts, live word count and reading time, autosave, save with ⌘/Ctrl+S, friendly validation, and a ⌘K command palette. It always writes clean Markdown and covers everything Markdown can do (tables, task lists, footnotes, code blocks with a language); HTML, shortcodes and template tags are kept character for character, and MDX code opens safely in plain-text mode with a live preview.

Review and collaborate without leaving the app

See what changed field by field — old and new value, changed words highlighted — discuss in a comment thread, @mention and assign teammates, resolve threads, approve with one click, schedule for later, or reject with a reason the writer can act on — they adjust and resubmit on the same change. Just a typo? Approvers fix it themselves and publish in one go.

A publishing flow per site

Small site? Submissions go live instantly. Bigger site? Approve in PullPress, or require the final merge on GitHub under branch protection.

Connects itself to your site

PullPress detects your generator, layout (including folder-per-post bundles) and frontmatter fields from the content that's already there.

Structured content from simple forms

24 field types — from dates, colors and maps to relations between collections, conditional fields and stackable page sections. Opening hours, team members, menus: fields, not code.

Plan on a content board

A Kanban board with an Ideas stage — Ideas → Draft → Awaiting approval → Planned → Published — and an editorial calendar of scheduled and published work.

Media library in your repo

Upload once (auto-optimized), reuse everywhere with alt text, or pull in free stock photos. Photos (JPG, PNG, WebP) land in your repo — committed, versioned, yours.

Search & SEO built in

Full-text search across every collection, plus an SEO field with title/description hints, canonical URL, OpenGraph image and ready-to-emit JSON-LD.

History and one-click restore

Every entry shows its full git history. Restore an older version as a draft that follows the normal review flow.

Multilingual, with one-click AI translation

Language variants as sibling files (post.fr.md), a language bar on every entry, 'create translation', and an AI translate button that keeps your Markdown intact.

Built for agencies

One dashboard for every client site, roles down to individual collections, viewer access, and white-label branding per client. Onboard a whole client team in one action: paste their addresses, everyone gets a branded welcome and a plain-language start.

A native Apple app for editors (beta)

One app for iPhone, iPad and Mac. Sign in with a code from your inbox, write and edit, add photos, use the board, calendar, search and media, and review every change word by word before approving — with a push when something needs you. Same review flow as the web; nothing goes live without approval. In beta via TestFlight — coming soon to the App Store.

No lock-in

Your content is plain Markdown and YAML in your own repo, and you can leave anytime keeping everything — history included. Coming from WordPress? Import your published posts to get started.

AI

AI that works through your review, not around it

In-app AI suggests; your writers decide what to keep, and every change goes through the review flow your team already uses. Included with the paid plans, no API keys to set up — or bring your own.

Translate in one click

Turn any text or Markdown field into another language in place, with formatting, links and code kept intact.

Diffs explained in plain language

On the review screen, get a short, plain-language summary of what actually changed — so non-technical approvers don't have to read a diff.

Content agents via MCP

Connect Claude or ChatGPT as a connector or with a personal token. Agents never exceed your role and get only the permissions you grant — with read and write they draft and submit for review, through the same audit trail as editors.

BlogsDocumentationChangelogsRestaurant sitesPortfolios

Anything that runs on Markdown.

Pay for writers, not readers.

Reading and approving is always free. Start free with one site and one writer, scale per writer on Pro or per client site on Agency, cancel anytime.

FAQ

Frequently asked questions

What is PullPress, and who is it for?
PullPress is a content editor for websites whose content is stored as files in a GitHub repository (sites built with Astro, Hugo, Jekyll, Eleventy, Next.js and similar). Developers and agencies connect the site once; writers, clients and marketers then edit pages, posts and photos in a friendly editor, and changes go live after the approval you choose.
Do I need GitHub? Do my editors?
The site owner (or your developer) needs the website's files in a GitHub repository and installs the PullPress GitHub App on it once. GitLab and Bitbucket aren't supported yet. Your editors don't need GitHub at all: they sign in with a magic link — no passwords — and every change is credited to the editor who made it. Want to look around first? Start with a one-click trial site: its content lives in PullPress until you connect a repository, and then it moves along.
Does PullPress host my website?
No. Your site keeps being built and hosted where it is today — Netlify, Vercel, GitHub Pages, your own server. PullPress saves changes to your repository, and your existing hosting publishes them as it always does.
Is there a free plan?
Yes: one site and one writer, free forever, and reading and approving are always free. Paid plans add writers, sites and AI — see pricing.
What happens when an editor saves?
PullPress creates a branch and a commit in your repository. When the editor submits their work, it opens a pull request — which you review and merge like any other PR.
Can I review changes before they go live?
Yes — that's the default. You review the change inside PullPress (field by field, with the changed words highlighted, and an optional live preview), approve, schedule it for later, or reject it with a reason the writer can act on. Larger sites can require the final merge on GitHub under branch protection.
Can changes go live at a scheduled time?
Yes. Approvers can schedule a submitted change from the review page, and admins can schedule their own change straight from the editor. Pick a date and time; PullPress merges the change automatically when the moment arrives.
Does it use AI? Can AI write content for me?
Optionally. On the paid plans, AI is included and works out of the box — in-editor translation, plain-language summaries of each change and quality checks, under a monthly fair-use budget (or bring your own API keys and pay your provider directly). You can also connect Claude or ChatGPT as content agents over MCP. An agent never exceeds your own role and only gets the permissions you grant: with read and write (what we recommend) it drafts and submits, and a person approves. If you also grant it approve-and-schedule, an approver's or admin's agent can publish like that person can.
Can I migrate my existing content?
Your content already lives in your repo, so PullPress edits it in place. Coming from WordPress? Upload a WXR export (up to 4 MB) and PullPress turns your published posts — up to 200 — into Markdown entries as one change to review. Pages, drafts and media files aren't imported, and images in posts keep pointing at your old WordPress site until you replace them. How the import works.
Which site generators does it work with?
Any generator that reads Markdown or data files from the repo: Astro, Hugo, Jekyll, Eleventy, Next.js, and friends. YAML, TOML and JSON frontmatter all work. If your site builds from files in Git, PullPress fits.
Is my repo safe?
You install the GitHub App only on the repositories you choose, and it never gets access to workflows or repository settings. GitHub grants content access per repository rather than per folder, so PullPress enforces the boundary itself: it only writes to the content and media folders you configured, plus its own pullpress.config.yml and — if you keep one — your llms.txt, never to .github/ or workflows. Editors' changes arrive as a branch and pull request you can review (on sites set to open publishing they're merged right away); setting up or editing the PullPress configuration, and keeping an existing llms.txt current on open-publishing sites, commit directly to your default branch.
Where is my data stored? Is PullPress GDPR-compliant?
Your website content stays in your own GitHub repository. Our database (accounts and workflow data) and optional analytics are hosted in the EU (Frankfurt); some providers, such as our hosting, email and GitHub itself, are in the US, covered by the EU–US Data Privacy Framework or Standard Contractual Clauses. See the privacy policy, the data processing agreement and the sub-processors.
Which languages does PullPress speak?
The app — editor, dashboard and emails — and this website are available in English, Dutch, French, German and Spanish. Everyone picks their own language, and before they do, PullPress follows the browser. The in-depth documentation and the legal pages are in English for now. Your site's content can be in any language: language variants live side by side, with one-click AI translation on the paid plans.
How do I cancel, or delete my account?
The workspace owner can change or cancel a paid plan anytime under Workspace settings → Subscription → Manage billing, and can delete the whole workspace there too, which also cancels its subscription. You can delete your own account under Profile → Delete account (if you're the only owner of a workspace with other members, hand over ownership first). Either way your website and its history in GitHub stay untouched.
What if I stop using PullPress?
Nothing breaks. Your content is already sitting in your repository as plain Markdown and YAML. Uninstall the GitHub App and keep everything.
How do I get help?
Start with the docs, or email us at support@pullpress.app.

Give your editors a door into the repo — without handing them the keys.

Set up your first site in minutes. Free for one site and one writer, with unlimited approvers and viewers.