βœ’οΈ Writing

I regularly contribute articles to several magazines, including CSS-Tricks, Smashing Magazine, the LogRocket blog, MasterWP, the Kinsta blog, the StepZen blog, Design Bombs and WPKube.

To date, these are my articles:

CSS-Tricks permalink

Explaining how the GatoGraphQL/GatoGraphQL GitHub repo was setup:

🎩 From a Single Repo, to Multi-Repos, to Monorepo, to Multi-Monorepo

Detailed explanation of the driver behind the GraphQL API for WordPress:

🎩 Rendering the WordPress philosophy in GraphQL

Tips for making the most out of the WordPress editor.

🎩 Using Markdown and Localization in the WordPress Block Editor

🎩 Adding a Custom Welcome Guide to the WordPress Block Editor


Smashing Magazine permalink

It concerns a wide array of topics, including web design and performance, coding in WordPress, designing architectures and implementing them in PHP, and others.

😸 Adding Search To Your Site In 15 Minutes

😸 Using The WordPress Editor And CPTs To Configure Plugins

😸 Implications Of WordPress Joining The Block Protocol

😸 Automatically Transforming And Optimizing Images And Videos On Your WordPress Website

😸 Creating A Public/Private Multi-Monorepo For PHP Projects

😸 Four Useful VSCode Extensions For Web Developers

😸 Spinning Up Multiple WordPress Sites Locally With DevKinsta

😸 Setting Up A Currency Convertor With ExchangeRatesApi.io

😸 Making GraphQL Work In WordPress

😸 Building An E-Commerce Site With October CMS And Shopaholic

😸 Abstracting WordPress Code To Reuse With Other CMSs: Implementation (Part 2)

😸 Abstracting WordPress Code To Reuse With Other CMSs: Concepts (Part 1)

😸 Exploring New Ways To Manage Content In WordPress

😸 β€œCreate Once, Publish Everywhere” With WordPress

😸 Postmortem Of Gutenberg The Launch, So We Can Embrace Gutenberg The Product

😸 Automating Website Deployments Through Buddy

😸 The (Upcoming) WordPress Renaissance

😸 Going Serverless With Cloudflare Workers

😸 A Detailed Comparison Between WordPress And October CMS

😸 Using Composer With WordPress

😸 Improving WordPress Code With Modern PHP

😸 Introducing The Component-Based API

😸 Caching Smartly In The Age Of Gutenberg

😸 Avoiding The Pitfalls Of Automatically Inlined Code

😸 Implications Of Thinking In Blocks Instead Of Blobs

😸 Sending Emails Asynchronously Through AWS SES

😸 Sharing Data Among Multiple Servers Through AWS S3

😸 Adding Code-Splitting Capabilities To A WordPress Website Through PoP

😸 How To Make A Dynamic Website Become Static Through A Content CDN

😸 Implementing A Service Worker For Single-Page App WordPress Sites


LogRocket blog permalink

Articles on PHP-based software architecture.

πŸš€ What you need to know about the Block Protocol

πŸš€ Phabel vs. Rector: Which is better for transpiling PHP code?

πŸš€ Including both PHP 7.1 and 8.0 code in the same plugin … or not?

πŸš€ Building extensible PHP apps with Symfony DI

πŸš€ Tips for transpiling code from PHP 8.0 down to 7.1

πŸš€ Hosting all your PHP packages together in a monorepo

πŸš€ Tips for creating your first Rector rule to transform PHP code

πŸš€ Coding in PHP 7.4 and deploying to 7.1 via Rector and GitHub Actions

πŸš€ Transpiling PHP code from 8.0 to 7.x via Rector


Articles on implementing functionalities on Gutenberg (the WordPress editor).

πŸš€ Essentials for building your first Gutenberg block

πŸš€ Setting up your first Gutenberg project


Series of articles on conceptualizing, designing and implementing a GraphQL server.

πŸš€ Exploring the future potential of generic GraphQL error codes

πŸš€ Fetching dynamically structured data in a CMS with GraphQL

πŸš€ What’s new in the latest GraphQL spec

πŸš€ When to use multiple endpoints in GraphQL

πŸš€ What we can learn from GraphQLConf 2021

πŸš€ Field arguments vs directives in GraphQL

πŸš€ Swapping GraphQL servers with the least effort

πŸš€ Authorization through access control in GraphQL

πŸš€ Designing a URL-based query syntax for GraphQL

πŸš€ HTTP caching in GraphQL

πŸš€ Supporting opt-in nested mutations in GraphQL

πŸš€ Coding a GraphQL server in JavaScript vs. WordPress

πŸš€ Adding directives to the schema in code-first GraphQL servers

πŸš€ Creating an @export GraphQL directive

πŸš€ Treating GraphQL directives as middleware

πŸš€ GraphQL directives are underrated

πŸš€ Versioning fields in GraphQL

πŸš€ Speeding up changes to the GraphQL schema

πŸš€ Code-first vs. schema-first development in GraphQL

πŸš€ Simplifying the GraphQL data model

πŸš€ Designing a GraphQL server for optimal performance


MasterWP permalink

Opinion pieces on anything concerning WordPress.

πŸ‘¨πŸ»β€πŸ« πŸƒπŸ»How I run Integration Tests for my WP plugin using Lando and InstaWP

πŸ‘¨πŸ»β€πŸ« Some great stuff I’ve learnt from WordCamp Europe 2022

πŸ‘¨πŸ»β€πŸ« Some great stuff I’ve learnt from WordSesh 2022

πŸ‘¨πŸ»β€πŸ« Would WordPress be better off by Joining the Block Protocol?

πŸ‘¨πŸ»β€πŸ« Costs Of WordPress Joining The Block Protocol


Kinsta blog permalink

Innovative web development trends, mostly concerning PHP and WordPress.

πŸ’» Installing setup data for a WordPress plugin

πŸ’» Architecting a WordPress plugin to support extensions

πŸ’» 10 PHP Testing Tools for WordPress Plugins

πŸ’» The Ultimate Guide for Transpiling PHP Code

πŸ’» WordPress Abstraction: Best Practices and WordPress Abstraction Plugins

πŸ’» Monorepo vs Multi-Repo: Pros and Cons of Code Repository Strategies


StepZen blog permalink

Anything related to GraphQL.

βΌ» How is GraphQL Different from Programming Languages? Part 2

βΌ» How is GraphQL Different from Programming Languages? Part 1

βΌ» Should GraphQL allow Recursive Fragments?

βΌ» What I Learned from Reading the GraphQL Spec - Part 2

βΌ» GraphQL: Mapping Error Messages to Generic Error Codes

βΌ» What I Learned from Reading the GraphQL Spec - Part 1

βΌ» GraphQL: On Directives Transforming the Behavior of Directives

βΌ» GraphQL: How to Alias a Nested Field as a Parent Field

βΌ» Coming Soon To GraphQL: The oneof Input Object

βΌ» How to Check if a Value is Empty in GraphQL

βΌ» Tiny Decisions to Make When Designing a GraphQL API

βΌ» Caching the GraphQL Introspection Query in a CDN

βΌ» Modeling User-Defined Settings in the GraphQL Schema

βΌ» Categorizing GraphQL Directives into Schema or Query Type

βΌ» Bridging GraphQL Queries Between Relay and non-Relay Schemas

βΌ» Hacking GraphiQL to Invoke it From the Outside

βΌ» Manipulating Data in GraphQL with Dynamic Variables

βΌ» Unconventional Ways of Using GraphQL

βΌ» Tips for Creating a GraphQL Schema for an Existing Application

βΌ» Exploring Promising New Feature Proposals for the GraphQL Spec

βΌ» Improving the Development Experience with GraphQL

βΌ» Exploring GraphQL Directives in the Wild

βΌ» How Different Are REST and GraphQL After All?

βΌ» A Visual Guide to GraphiQL and GraphQL Voyager


Design Bombs permalink

Mostly concerning tooling around WordPress.

πŸ’£ Reusing Functionality for WordPress Plugins with Blocks

πŸ’£ Adding Modal Windows in the WordPress Admin Without JavaScript

πŸ’£ Tips of Building Large-scale Applications in PHP

πŸ’£ How to Register Gutenberg Blocks for Some Custom Post Type only, using PHP (not JS!)

πŸ’£ Exposing WordPress site data for mobile apps

πŸ’£ Creating a Gutenberg block using the official new package

πŸ’£ Bootstrapping WordPress projects with Composer and WP-CLI


WPKube permalink

Anything related to WordPress.

🟦 Implementing a GraphQL server with components in PHP