Blog
Thoughts & Insights
Articles on web development, WordPress engineering, performance optimization, and lessons learned building products for clients worldwide.
Latest Articles
From the Blog

Custom Post Types for the Block Editor and REST API
Register a WordPress custom post type and taxonomy with intentional capabilities, REST schemas, permalinks, templates, and block editor support.

Manage WordPress Design Tokens with theme.json
Use theme.json to define WordPress color, spacing, typography, and layout tokens that stay consistent across the editor and front end.

From Shortcode to Dynamic Block: A WordPress Migration
Replace a legacy WordPress shortcode with a dynamic block while preserving old content, sharing one renderer, and planning a reversible migration.

Change Block Markup Without Breaking Existing Posts
Evolve a WordPress block safely with deprecated versions, migrations, validation tests, and a rollout plan that preserves existing post content.

Load WordPress Block Assets Only When Needed
Reduce unnecessary WordPress CSS and JavaScript by declaring block assets in block.json, separating editor files, and verifying on-demand loading.

Build a PHP-Only Dynamic Block with block.json
Build a server-rendered WordPress block with block.json and PHP auto-registration, including attributes, block supports, caching, and safe output.

Safe Content Migrations with WP-CLI
Create a resumable WP-CLI content migration with dry runs, bounded batches, idempotent updates, progress reporting, and a practical rollback plan.

Validation, Sanitization, and Escaping in a WordPress Plugin
Learn where validation, sanitization, and escaping belong in a WordPress plugin through one complete metadata example with secure input and output.

Nonces and Capabilities in a Secure WordPress Admin Form
Secure a custom WordPress admin form correctly by combining capability checks, nonces, strict input validation, safe redirects, and escaped output.

Build a WordPress Settings Page with the Settings API
Build a secure WordPress plugin settings page with the Settings API, capability checks, validation, contextual help, and maintainable defaults.

WebAssembly JSPI Makes Async Integration Cleaner, Not Automatically Faster
Safari 27 beta adds WebAssembly JavaScript Promise Integration, allowing WebAssembly code to cooperate with asynchronous JavaScript APIs without manual suspensi

A Public WordPress Ability Is Discoverable, Not Automatically Safe
WordPress 7.1 adds a unified public metadata flag for abilities intended for REST clients, MCP adapters, and AI agents. Plugin authors can express external disc
Ready to Build Something That Works?
Tell me about your project and get a free quote within 24 hours. No commitment, no pressure.