Bring your WordPress content to a headless CMS.
NodePress imports your posts, pages, custom post types and ACF fields from a WordPress export, then serves them over REST and GraphQL to any frontend. Open source, self-hosted, on Node.js and PostgreSQL.

Your content, not just your posts.
- Posts, pages and every custom post type, each as its own content type
- ACF field groups as real fields — flexible content, repeaters, groups, options pages — with their values
- Featured images and attachments, downloaded into the media library
- Categories, tags, the category hierarchy and custom taxonomies
- Authors, as content entries linked to their posts
- Approved comments, each linked to its post and the comment it replies to
- Statuses and dates: drafts stay drafts, scheduled posts keep their publish time
Three steps, no plugins.
Export
In WordPress, Tools → Export → All content. One XML file, up to 50 MB.
Review
Upload it under Settings → Import. NodePress shows what each content type gets and what it skips, before writing anything.
Import
Pick the extras — media, authors, comments — and start. The import runs in the background and reports created, updated and skipped entries.
The ideas you know, on Node.js.
NodePress takes ideas from WordPress with ACF and puts them on a TypeScript stack: NestJS, Prisma, PostgreSQL and a Next.js admin.
Flexible content and repeaters
Field groups, repeaters and flexible layouts, nestable three levels deep, in a visual schema editor.
Plugins and hooks
Actions and filters around every entry write, from plugins written as NestJS modules.
Roles and permissions
Built-in and custom roles, with access per module, per content type and per field.
Revisions and scheduling
Version history on every entry, scheduled publishing and releases that publish many entries at once.
Redirects that follow your slugs
Change a slug and NodePress adds the 301 redirect itself, so old links keep working.
Sitemap and robots.txt
Generated from your published content, ready for your frontend to serve.
Before you move.
Do I have to rebuild my site's design?
Yes. NodePress is a headless CMS: it stores your content and serves it over REST and GraphQL, and your site is built with the frontend you choose, such as Next.js, Astro or Nuxt. There are starter projects for all three.
Are WordPress users and passwords imported?
No. Authors can be imported as content entries linked to their posts, without email addresses, and nobody can sign in with them. You invite your team to NodePress by email.
What isn't imported?
WordPress internals: revisions, menus, block patterns and templates, global styles, custom CSS and WooCommerce orders. Private posts arrive as drafts, and trashed items are skipped.
Can I run the import more than once?
Yes. Entries that already exist are skipped, or updated if you choose Overwrite existing entries — their previous content stays in their version history.