Real strategists. Real AI tools. Real growth. — 1Digital® since 2012
Workspace by 1Digital® — the agency platform we built. Coming to select agencies. Join the early-access list →
Plugin architecture, headless on Next.js + WPGraphQL, ACF Pro patterns, WooCommerce custom dev, HPOS migration, and performance engineering. 14 years on WordPress — engineering, not snippet-copying.
Trusted by 400+ Brands · Certified Partners
Of results, scale, and quality at the enterprise level.
Specialists across SEO, AI SEO, PPC, design, dev, and strategy.
US core team for clear communication; vetted global specialists for international client work.
Rated 4.9/5 across 941+ verified client reviews.
Reviewed by the 1Digital® Engineering TeamLast updated:
Why a WordPress Engineering Practice
Most agencies treat WordPress as a configurator. We treat it as a platform — Composer-managed, version-controlled, PHPCS-enforced, unit-tested, and deployed with CI. Custom plugins where off-the-shelf doesn't fit; headless on Next.js + WPGraphQL when traditional rendering can't deliver; HPOS-compatible WooCommerce extensions; ACF Pro patterns committed as code. Pair with our WordPress design, WordPress agency, and WordPress SEO practices.
TL;DR
What We Deliver
Distributable and bespoke plugins built to WordPress coding standards — Composer-managed dependencies, PSR-4 autoloading, namespaced classes, proper hook registration, capability checks, nonce verification on every form, prepared SQL via $wpdb, sanitization + escaping discipline, and unit + integration tests in PHPUnit. mu-plugins when the code is truly site-coupled.
Fully-headless WordPress on Next.js via WPGraphQL — SSR, ISR with on-demand revalidation, meta + canonical injection, schema-graph preservation, and SEO-safe rendering. Faust.js where it earns its keep; custom Next.js + WPGraphQL when the project benefits from full control. Vercel, Netlify, or self-hosted deployment.
Advanced Custom Fields Pro at scale — option pages, repeaters, flexible content, bidirectional relationships, ACF Blocks with proper preview rendering, conditional logic, and acf-json sync committed to the repo (so field groups live in version control, not just the database). Composer-managed ACF Pro license, no manual zip uploads.
Custom payment gateways, custom shipping methods, custom product types, custom order statuses, complex pricing logic (membership tiers, B2B price lists, dynamic discounts), and integration with ERPs / OMSes / 3PLs. HPOS-compatible from day one — no legacy wp_posts dependencies.
Custom REST endpoints registered via register_rest_route, WPGraphQL extensions via register_graphql_field / register_graphql_connection, authentication via JWT or application passwords, rate limiting, and proper schema documentation. APIs as a first-class deliverable, not an afterthought.
Object Cache Pro on Redis, page caching via the host or Cloudflare APO, fragment caching for expensive widgets, transient API result caching, query optimization with proper indexes, $wpdb->prepare() everywhere, and a New Relic + Query Monitor profiling pass before launch. LCP <2.5s, INP <200ms targets.
Plugin audit, prune, and replace pass. Codify what should be code (mu-plugin). Replace what's bloated (page builders, swiss-army-knife plugins). Build what's bespoke. The end state: fewer plugins, smaller maintenance load, less attack surface, faster site.
High-Performance Order Storage (HPOS) migration — the wp_posts / wp_postmeta order storage is deprecated. We audit every custom snippet, plugin, and integration for HPOS compatibility, run the migration in stages, and verify order operations on the new tables before flipping the switch.
Headless WordPress
Headless makes sense when you need multi-channel delivery from one editorial CMS, when Core Web Vitals demand React-level performance, or when WordPress's editorial UX has to coexist with a modern frontend toolchain. WPGraphQL is the API surface; Next.js owns rendering, routing, and the customer-facing surface; ISR keeps content fast and fresh.
Engineering Standards
The long-term cost of a WordPress build is maintenance — and maintenance cost is set by the discipline of the original code. We don't cut corners on standards because we'll be the team patching the consequences.
Custom plugin development, custom block (Gutenberg) development, ACF Pro pattern work, REST + WPGraphQL endpoint development, headless WordPress on Next.js via WPGraphQL, WooCommerce custom development (gateways, shipping, product types, HPOS migration), performance + caching tuning, and plugin stack audits / cleanups. Engineering, not snippet-copying.
When (1) you need multi-channel delivery (web + native + kiosk) from one editorial CMS, (2) you need Core Web Vitals beyond what PHP rendering can hit, (3) you're combining WordPress with a separate React app or design system, or (4) you have a content team that loves WordPress's editorial UX but a product team that wants modern frontend tooling. Headless isn't right for every site — for a content-led marketing site, traditional WordPress is usually the cleaner answer.
Faust.js (WP Engine's headless framework) is a fast path for standard headless projects — built-in auth bridging, preview handling, and SEO module. Custom Next.js + WPGraphQL is better when you need control over the data layer, want to integrate non-WP data sources, or are building a complex App Router architecture. We scope honestly — Faust where it accelerates delivery, custom where it earns the cost.
Related WordPress Services
WordPress Coding Standards (PHPCS WPCS) enforced in CI, PSR-4 autoloading via Composer, namespaced classes, proper hook registration with named callbacks (no closures attached to actions you can't unhook), capability checks on every admin action, nonce verification on every form post, prepared SQL via $wpdb->prepare(), sanitization on input + escaping on output, and unit tests in PHPUnit. Distributable plugins ship with .pot files and translator comments.
Register custom types and fields via register_graphql_object_type and register_graphql_field; expose connections via register_graphql_connection; resolver functions live in PHP classes with single-responsibility scope. ACF fields surface automatically via the WPGraphQL for ACF extension. Persisted queries when the client is consistent (Next.js). Auth via JWT (wp-graphql-jwt-authentication) or application passwords.
High-Performance Order Storage replaces the wp_posts / wp_postmeta order schema with dedicated tables. Required for new WooCommerce installs, the default for upgrades on 8.2+. We audit every custom snippet, plugin, and integration touching orders for HPOS compatibility (WC_Order vs. WP_Post API calls), run the migration in stages (sync mode → flip mode), verify order operations on the new tables, and only then deprecate the legacy reads.
Object Cache Pro on Redis (sub-millisecond cache reads vs. WP's default), page caching via the host (WP Engine, Kinsta) or Cloudflare APO, fragment caching for expensive admin widgets, transient caching for external API calls, query optimization with proper indexes on custom tables, $wpdb->prepare() everywhere, and a New Relic + Query Monitor profiling pass before launch. Targets: LCP <2.5s on key landing pages, INP <200ms, no N+1 queries in the critical path.
Yes. Native React / JSX blocks via @wordpress/create-block, registered with block.json, server-side render callbacks where SEO matters, client-side InspectorControls + BlockControls for editor UX, and proper block.json schema. ACF Blocks for blocks where the editor experience benefits from ACF's field UI. Block patterns and reusable patterns where the content is repeating boilerplate.
Bedrock-style Composer-managed installs (wp-core + plugins + themes as dependencies), GitHub Actions CI running PHPCS WPCS + PHPUnit + Playwright on every PR, WP-CLI deploys via SSH (no FTP), staging environments mirroring production (WP Engine multi-env, Kinsta staging, or a dedicated staging host), and database migration scripts version-controlled when content models change.
Yes — and it's often the engagement. We audit the plugin stack, custom themes, mu-plugins, custom tables, and any inherited custom code. Findings get a written report: keep, refactor, replace, deprecate. Then we phase the cleanup against business priorities — usually performance and security first, feature additions on top of the clean foundation.
Discovery + scope first (typically a paid 2-week sprint for non-trivial work — we won't quote $50k of custom plugin development on a 30-minute call). Then fixed-price phases for well-bounded work, T&M for ongoing development retainers. You'll see a band on the first call after a scope conversation.
Tell us the problem — custom plugin, headless rebuild, plugin cleanup, HPOS migration. We'll come back with a written scope.