Why Maintain Twenty Plugins When One Framework Gives You Everything? 🎯
If you build WordPress sites for a living, you probably maintain a graveyard of premium plugins:
- Yoast SEO for metadata and sitemaps
- Gravity Forms (or WPForms, Ninja Forms, take your pick) for anything beyond a basic contact form
- Advanced Custom Fields Pro for flexible page layouts and repeater fields
- Smush Image Compression for basic performance gains
- A mix-and-match of Redirect Manager, Revisions Control, Members, Polylang, and half a dozen performance boosters just to keep load times respectable
That stack works - until it doesn’t. License renewals lapse, major updates clash, performance plummets, and suddenly your “free” CMS costs more to patch than it did to build.
Enter Payload 3.0: a fully open-source, MIT-licensed framework that installs inside any Next.js app with one command. No SaaS lock-in, no hidden fee tiers, just an instant admin panel, flexible APIs, authentication, file storage, and the kitchen sink.
Below I’ll break down how Payload’s core solves the same problems WordPress developers reach for plugins to fix, and why that matters for long-term maintainability.
1. SEO & Structured Data → Goodbye Yoast
WordPress (Yoast SEO) | Payload 3.0 |
---|---|
Separate plugin, paid for advanced features | @payloadcms/plugin-seo (MIT) adds title/description, canonical, Open Graph fields, XML sitemap & robots.txt generation |
Stores data in custom meta tables—hard to query | Stored as typed fields on your collection; instantly available to the front end through Payload’s Local API |
Frequent UI changes confuse clients | Same field UI as the rest of the admin—no extra training |
Because Payload is code-first, you expose exactly the SEO controls a project needs—no more, no less—and render them straight into <head>
inside your React components.
// components/Seo.tsx
import type { Metadata } from 'next'
export function buildMetadata(post: Post): Metadata {
return {
title: post.seo?.title ?? post.title,
description: post.seo?.description,
openGraph: {
images: [post.seo?.image?.url ?? DEFAULT_IMAGE],
},
}
}
No weird global variables. No surprise schema changes. Just data you own.
2. Forms & Marketing Integrations → Goodbye Gravity Forms
Payload ships an official Form Builder plugin that lets non-technical editors create forms from the same block-based UI they use for content. Features include:
- Any field type (text, email, file upload, rich text…)
- Conditional logic and multi-step flows
- Spam protection via reCAPTCHA v3 plug-and-play
- Webhook + email actions (think Mailchimp, HubSpot, Resend, any REST endpoint)
- All submissions stored in collections—queryable, exportable, versioned
Because it’s just another collection, you inherit drafts, localization, access control and version history for free. Try that in Gravity Forms without three add-ons and a license renewal.
3. Content Modelling & Page Building → Goodbye ACF Pro
WordPress needs ACF because PHP templates can’t express rich data structures. Payload’s schema is TypeScript:
// collections/Pages.ts
fields: [
{
name: 'layout',
type: 'blocks',
blocks: [HeroBlock, FeaturesBlock, TestimonialBlock],
},
]
- ✅ Nested blocks & repeaters (array fields) are first-class
- ✅ Relation & join fields (new in 3.0) give bi-directional links—no meta-query hacks
- ✅ Rich Text with Lexical supports inline React components (think product cards inside paragraphs)
- ✅ Fully typed—your IDE autocompletes field names on the front end
All without a single .json
export or field-key mismatch.
4. Redirects, Access, Drafts, Versioning & More
WordPress needs separate plugins for each of these. Payload treats them as config switches:
Feature | WordPress Plugin | Payload 3.0 |
---|---|---|
301/302 Redirects | Redirection | @payloadcms/plugin-redirects |
Role-based Access | Members, User Role Editor | Built-in access functions (hookable, type-safe) |
Drafts & Scheduled Publish | Revisionize, Editorial Calendar | drafts: true , versions: { drafts: true, autosave: true } |
Multilingual Content | Polylang, WPML | localization: { locales: ['en', 'fr'] } |
Image Optimisation | Smush | Handled automatically by Next.js <Image /> and Vercel’s on-the-fly optimisation |
One dependency tree. Zero license keys. Updates released in lock-step with core.
5. First-Party Plugins & Custom Extensions
WordPress relies on a marketplace of third-party plugins—each with its own release cycle, coding style and yearly licence. In Payload 3.0, the official plugins are shipped and maintained by the same core team that writes the framework. They’re designed as lightweight extensions rather than bolt-ons, built from the same codebase and released in lock-step with every version.
- Pick only what you need. Add redirects, SEO, form builder, authentication adapters or nothing at all – each is a single
pnpm add
away. - No feature-gate upsells. All first-party plugins carry the same MIT licence as core, so you never get caught by “pro” paywalls.
- Type-safe and composable. A plugin is just a function that receives your config, so extending or overriding behaviour is as easy as importing it and passing options.
import seo from '@payloadcms/plugin-seo'
import redirects from '@payloadcms/plugin-redirects'
import mySlackNotifier from './plugins/slack-notifier'
export default buildConfig({
// ... collections
plugins: [seo(), redirects(), mySlackNotifier()],
})
Because everything is code-first, rolling your own niche feature is often faster than hunting for a WordPress plugin and paying yet another subscription. Need an event calendar, a jobs board or a Slack notification on new form submission? Create a collection, add hooks, and you’re done—no black-box PHP bundle required.
TL;DR – Fewer Moving Parts, Happier Teams
Task | WordPress Stack | Payload 3.0 |
---|---|---|
Install CMS | LAMP stack, security hardening | pnpx create-payload-app |
SEO fields | Yoast Premium | Core plugin (MIT) |
Build forms | Gravity Forms Pro | Form Builder plugin (MIT) |
Flexible content | ACF Pro | Blocks field (core) |
Image optimisation | Smush Pro | Next.js Image component + Vercel edge caching |
Deploy | PHP host + headless front end | Single Next.js deploy |
Cost | Theme + 3–10 paid plugins every year | $0—forever |
If you’re tired of playing plugin Jenga, give Payload 3.0 a spin. Your future self (and your clients’ budgets) will thank you.
Estimated Annual Cost Breakdown
Stack | Typical Year-1 License Costs* | Renewal Cost (per year) |
---|---|---|
WordPress (Yoast SEO Premium $99, Gravity Forms Basic $59, ACF Pro $49, Polylang Pro $99, WP Rocket $59) | ≈ US$365 | ≈ US$365 |
Payload 3.0 + Official Plugins (MIT-licensed) | US$0 | US$0 |
*Pricing taken from vendor sites in July 2025 • Hosting costs are excluded because they apply to both stacks.
Curious about the migration path? I’m working on a follow-up guide that maps common ACF layouts to Payload blocks and shows how to import WordPress posts via the Local API. Subscribe to the newsletter or connect with me on LinkedIn so you don’t miss it.