EXTRACT. TRANSFORM. LOAD.
We migrate teams off WordPress, Drupal, and other legacy CMS platforms and onto Payload — the TypeScript-first, Node.js-native CMS that ends plugin sprawl for good.
TRANSPARENCY_MODE: on — payload.works is an independent agency. We hold no official partnership with Payload (yet). Our credibility is shipped migrations, not badges.
We were you, once.
payload.works is a six-person engineering team. For years we maintained a publishing product on WordPress: forty-plus plugins, a PHP runtime we didn't enjoy, and a security patch treadmill that never ended. In 2024 we migrated our own product to Payload — and it solved problems we'd stopped noticing were problems.
Now we do the same thing for other teams. Nothing here is theoretical: every argument we make for Payload is one we've lived through, fixed, and shipped.
OFFICIAL_PARTNER: false — yet. We're a small, technical team that bet on Payload and never looked back. If Payload ever has a partner program, we'll be first in line. Until then, judge us by the migrations.
Easy to use
BEFORE
Forty admin screens of plugin settings, and a WYSIWYG that quietly mangled markup.
AFTER
One schema-as-code content model and the cleanest admin panel our editors have used.
Developer experience
BEFORE
PHP templates, magic hooks, and upgrades that broke things silently at 2am.
AFTER
TypeScript-first config, typed fields, and a CMS that works like the rest of our codebase.
Security
BEFORE
A patch treadmill across dozens of third-party plugins of unknown quality.
AFTER
No plugin sprawl, no PHP surface area. Access control is code you can review in a PR.
Node.js native
BEFORE
Two runtimes, two deploy pipelines, and zero code shared between CMS and app.
AFTER
One runtime for everything — models, types, and utilities shared end to end.
Four phases. Zero surprises.
01
Audit & map
We inventory your content types, plugins, and integrations, then chart exactly what moves where — and what gets left behind.
02
Model in Payload
Collections, blocks, and versioning designed in TypeScript and reviewed with your team before a single record migrates.
03
Migrate & validate
Automated ETL with checksum validation on every batch. Nothing is deleted until the new stack is proven in production.
04
Launch & optimize
Cutover plan, redirects, caching, and a 30-day watch window after launch. We stay on call through the first traffic spike.
Proof, in production.
SaaS / Documentation
Ledgerly
A customer docs platform rebuilt from Strapi v3 onto Payload Cloud.
+150% LIFT
Higher Education
Brookdale University
300k content records across 60 department sites, consolidated into one Payload deployment.
+310% LIFT
E-commerce
Field & Forest Outfitters
12,000 SKUs moved off WooCommerce onto Payload with a full storefront rebuild.
+190% LIFT
Field notes from the trenches.
Aug 27, 2026 · 6 MIN
One Runtime: Sharing Code Between CMS and App in Node.js
Two runtimes, two pipelines, zero shared code. How consolidating on Node.js reshaped our architecture.
Aug 9, 2026 · 5 MIN
The Security Case: Why We Stopped Patching Plugins
Your security posture is the posture of your least-maintained plugin. Here's the model we replaced it with.
Jul 21, 2026 · 7 MIN
Content Modeling for Migrations: Field Patterns We Use on Every Project
How legacy WordPress post types, ACF groups, and shortcodes map onto Payload collections, groups, and blocks.
Ready to leave the legacy stack behind?
Tell us what you're running today. An engineer — not a salesperson — will map your migration and reply within one business day.
CONFIGURE YOUR MIGRATION