Migrate from Decap CMS
Netlify Identity is deprecated and Decap (ex-Netlify CMS) logins with it. Moving to PullPress takes minutes: connect the repo, import your existing config.yml, invite your editors by email.
The most important thing first: your content files don't change at all. Decap and PullPress read and write the same Markdown files with the same frontmatter — YAML, TOML and JSON frontmatter all round-trip — in the same folders of the same Git repository. The migration only replaces the login and the editing interface — every post, page and image stays exactly where it is, with its full Git history.
- 1
Create a PullPress account
Sign up with your email address. Editors won't need Netlify Identity, Git Gateway or a GitHub account — they log in with a magic link, just like they used to with Identity emails.
- 2
Install the GitHub App on the repo
From the dashboard, choose “Connect a repository” and install the PullPress GitHub App on the repository Decap has been writing to. You can scope it to that single repository — see GitHub App setup.
- 3
Import your Decap config
When PullPress opens the freshly connected site, it looks for your Decap config at
static/admin/config.yml,admin/config.ymlorpublic/admin/config.ymland offers to import it: collections, widgets, media folder and multilingual settings are converted to apullpress.config.ymlautomatically. Pick “Import Decap CMS configuration” and PullPress commits the converted config to your repo — nothing else is touched.The importer also samples your actual content and cross-checks it against the config. Where they disagree — say the config promises flat files but your entries live one-per-folder — reality wins, and each difference is listed in the import notes and kept as a comment in the generated config. Widgets PullPress can't map become plain text fields and are listed too, never silently dropped.
Decap widget PullPress field Note string / text / markdown string / text / markdown number / boolean / color / code / hidden same names datetime datetime (or date without a time part) image image file image existing links keep working select select — or multiselect with multiple: true relation relation object object list (plain / field / fields) list list with types blocks the type key carries over (typeKey) — entries keep working unchanged map map GeoJSON values may need conversion anything else text listed in the import notes - 4
Review the converted configuration
Open the visual config editor (site → Configuration) and skim the result: labels, field types, the media folder. Anything the importer flagged is a one-line fix here. The full format is in the configuration reference.
- 5
Invite your editors by email
Add every person who used to log in through Netlify Identity, from the site's member settings. They get a magic-link invitation and land straight in the editor — no account migration, no passwords to reset, no GitHub accounts. Choose per person whether they draft, publish or only review.
- 6
Retire the Decap admin (when you're ready)
Decap and PullPress can coexist while you test — they edit the same files, so just avoid editing the same entry in both at once. Once your editors have switched, remove the widget from the repo:
# the Decap admin panel git rm -r static/admin # or admin/ or public/admin/ # the Netlify Identity script, if your layout includes it # <script src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>You can also disable Identity and Git Gateway in the Netlify site settings. Your hosting doesn't change — PullPress commits to GitHub and your existing build and deploy pipeline picks it up like any other push.
Common questions
Do my URLs or slugs change? No. Existing filenames are never renamed. The importer even checks whether your entries use date-prefixed filenames and keeps new entries consistent with them.
We used Decap's editorial workflow — is there a review step? Yes, built in. Every change is a real branch and pull request; reviewers approve with a diff inside PullPress instead of the beta GitHub-only workflow.
What about multilingual (i18n) content? Decap's multiple_files structure (sibling files like post.de.md) maps directly. The folder-per-locale and single-file structures aren't supported; the importer tells you when it hits one.
See how the two products compare feature by feature on PullPress vs Decap CMS.