{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://joost.blog/#/schema.org/WebSite",
      "url": "https://joost.blog/",
      "name": "Joost.blog",
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "description": "Joost de Valk - internet entrepreneur, founder of Yoast, investor at Emilia Capital",
      "inLanguage": "en-US",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "hasPart": [
        {
          "@id": "https://joost.blog/#site-navigation"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "potentialAction": {
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://joost.blog/search/?q={search_term_string}"
        },
        "query-input": {
          "@type": "PropertyValueSpecification",
          "valueRequired": true,
          "valueName": "search_term_string"
        }
      }
    },
    {
      "@type": "Person",
      "@id": "https://joost.blog/about-me/#/schema.org/Person",
      "name": "Joost de Valk",
      "familyName": "de Valk",
      "birthDate": "1982-02-16",
      "gender": "https://schema.org/Male",
      "nationality": {
        "@id": "https://joost.blog/#/schema.org/Country/nl"
      },
      "description": "Internet entrepreneur from Wijchen, the Netherlands. Investor at Emilia Capital and actively working on Progress Planner. Founder of Yoast.",
      "jobTitle": "Partner",
      "knowsLanguage": [
        "Dutch",
        "English",
        "German",
        "French",
        "Italian"
      ],
      "url": "https://joost.blog/about-me/",
      "image": {
        "@id": "https://joost.blog/#personlogo"
      },
      "publishingPrinciples": "https://joost.blog/about-me/",
      "knowsAbout": [
        "Search Engine Optimization",
        "WordPress",
        "Open Source",
        "Web Development",
        "Artificial Intelligence",
        "Schema.org",
        "Content Management Systems"
      ],
      "sameAs": [
        "https://joost.blog/about-me/",
        "https://www.facebook.com/jdevalk",
        "https://www.instagram.com/joostdevalk",
        "https://www.linkedin.com/in/jdevalk",
        "https://x.com/jdevalk",
        "https://bsky.app/profile/joost.blog",
        "https://www.youtube.com/user/jdevalk",
        "https://en.wikipedia.org/wiki/Joost_de_Valk",
        "https://joost.net/@joost",
        "https://github.com/jdevalk",
        "https://profiles.wordpress.org/joostdevalk",
        "https://emilia.capital/joost/"
      ],
      "worksFor": [
        {
          "@type": "EmployeeRole",
          "roleName": "Partner",
          "startDate": "2020",
          "worksFor": {
            "@id": "https://joost.blog/#/schema.org/Organization/emilia-capital"
          }
        },
        {
          "@type": "EmployeeRole",
          "roleName": "Chair of the Board",
          "startDate": "2024",
          "worksFor": {
            "@id": "https://joost.blog/#/schema.org/Organization/post-status"
          }
        },
        {
          "@type": "EmployeeRole",
          "roleName": "Advisor",
          "startDate": "2020",
          "worksFor": {
            "@id": "https://joost.blog/#/schema.org/Organization/wordproof"
          }
        },
        {
          "@type": "EmployeeRole",
          "roleName": "Board Member",
          "startDate": "2022-08-01",
          "worksFor": {
            "@id": "https://joost.blog/#/schema.org/Organization/atarim"
          }
        },
        {
          "@type": "EmployeeRole",
          "roleName": "Board Member",
          "startDate": "2024-08-01",
          "worksFor": {
            "@id": "https://joost.blog/#/schema.org/Organization/patchstack"
          }
        },
        {
          "@type": "EmployeeRole",
          "roleName": "CEO",
          "startDate": "2023",
          "worksFor": {
            "@id": "https://joost.blog/#/schema.org/Organization/blokjes"
          }
        },
        {
          "@type": "EmployeeRole",
          "roleName": "CEO",
          "startDate": "2010",
          "endDate": "2019",
          "worksFor": {
            "@id": "https://joost.blog/#/schema.org/Organization/yoast"
          }
        }
      ],
      "spouse": {
        "@id": "https://joost.blog/#/schema.org/Person/marieke",
        "name": "Marieke van de Rakt"
      },
      "children": [
        {
          "@type": "Person",
          "@id": "https://joost.blog/#/schema.org/Person/tycho",
          "name": "Tycho de Valk"
        },
        {
          "@type": "Person",
          "@id": "https://joost.blog/#/schema.org/Person/wende",
          "name": "Wende de Valk"
        },
        {
          "@type": "Person",
          "@id": "https://joost.blog/#/schema.org/Person/ravi",
          "name": "Ravi de Valk"
        },
        {
          "@type": "Person",
          "@id": "https://joost.blog/#/schema.org/Person/borre",
          "name": "Borre de Valk"
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/agent-ready-plugins/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "From installation to integration: Making plugins “agent-ready”",
          "item": {
            "@id": "https://joost.blog/agent-ready-plugins/"
          }
        }
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/#personlogo",
      "url": "https://joost.blog/images/joost-profile.jpg",
      "contentUrl": "https://joost.blog/images/joost-profile.jpg",
      "width": 400,
      "height": 400,
      "caption": "Joost de Valk"
    },
    {
      "@type": "SiteNavigationElement",
      "@id": "https://joost.blog/#site-navigation",
      "name": "Main navigation",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "hasPart": [
        {
          "@type": "SiteNavigationElement",
          "name": "Blog",
          "url": "https://joost.blog/blog/"
        },
        {
          "@type": "SiteNavigationElement",
          "name": "About",
          "url": "https://joost.blog/about-me/"
        },
        {
          "@type": "SiteNavigationElement",
          "name": "Code",
          "url": "https://joost.blog/code/"
        },
        {
          "@type": "SiteNavigationElement",
          "name": "CMS Market Share",
          "url": "https://joost.blog/cms-market-share/"
        },
        {
          "@type": "SiteNavigationElement",
          "name": "Videos",
          "url": "https://joost.blog/videos/"
        },
        {
          "@type": "SiteNavigationElement",
          "name": "Contact",
          "url": "https://joost.blog/contact-me/"
        },
        {
          "@type": "SiteNavigationElement",
          "name": "Ask",
          "url": "https://joost.blog/ask-joost/"
        }
      ]
    },
    {
      "@type": "Blog",
      "@id": "https://joost.blog/blog/#blog",
      "name": "Joost.blog",
      "description": "Writing about the open web, AI, WordPress, and building things.",
      "url": "https://joost.blog/blog/",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "inLanguage": "en-US",
      "publishingPrinciples": "https://joost.blog/about-me/"
    },
    {
      "@type": "Country",
      "@id": "https://joost.blog/#/schema.org/Country/nl",
      "name": "The Netherlands"
    },
    {
      "@type": "Organization",
      "@id": "https://joost.blog/#/schema.org/Organization/emilia-capital",
      "name": "Emilia Capital",
      "url": "https://emilia.capital/"
    },
    {
      "@type": "Organization",
      "@id": "https://joost.blog/#/schema.org/Organization/post-status",
      "name": "Post Status",
      "url": "https://poststatus.com/"
    },
    {
      "@type": "Organization",
      "@id": "https://joost.blog/#/schema.org/Organization/wordproof",
      "name": "WordProof",
      "url": "https://wordproof.com/"
    },
    {
      "@type": "Organization",
      "@id": "https://joost.blog/#/schema.org/Organization/blokjes",
      "name": "Blokjes",
      "url": "https://blokjes.co/"
    },
    {
      "@type": "Organization",
      "@id": "https://joost.blog/#/schema.org/Organization/atarim",
      "name": "Atarim",
      "url": "https://atarim.io/"
    },
    {
      "@type": "Organization",
      "@id": "https://joost.blog/#/schema.org/Organization/patchstack",
      "name": "Patchstack",
      "url": "https://patchstack.com/"
    },
    {
      "@type": "Organization",
      "@id": "https://joost.blog/#/schema.org/Organization/yoast",
      "name": "Yoast",
      "url": "https://yoast.com/"
    },
    {
      "@type": "Person",
      "@id": "https://joost.blog/#/schema.org/Person/marieke",
      "name": "Marieke van de Rakt"
    },
    {
      "@type": "Person",
      "@id": "https://joost.blog/#/schema.org/Person/tycho",
      "name": "Tycho de Valk"
    },
    {
      "@type": "Person",
      "@id": "https://joost.blog/#/schema.org/Person/wende",
      "name": "Wende de Valk"
    },
    {
      "@type": "Person",
      "@id": "https://joost.blog/#/schema.org/Person/ravi",
      "name": "Ravi de Valk"
    },
    {
      "@type": "Person",
      "@id": "https://joost.blog/#/schema.org/Person/borre",
      "name": "Borre de Valk"
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/agent-ready-plugins/",
      "url": "https://joost.blog/agent-ready-plugins/",
      "name": "From installation to integration: Making plugins “agent-ready”",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/agent-ready-plugins/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/agent-ready-plugins/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/agent-ready-plugins/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-12-24T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/agent-ready-plugins/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/agent-ready-plugins/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "From installation to integration: Making plugins “agent-ready”",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/agent-ready-plugins/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/agent-ready-plugins/#primaryimage"
      },
      "description": "In my last post, I discussed why a design system is the “visual rail” AI needs. But the “Architect” I’ve been describing doesn’t just care about how a site look",
      "inLanguage": "en-US",
      "datePublished": "2025-12-24T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "Development",
      "wordCount": 689
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/agent-ready-plugins/#primaryimage",
      "url": "https://joost.blog/og/agent-ready-plugins.png",
      "contentUrl": "https://joost.blog/og/agent-ready-plugins.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "AI optimization is replaying early SEO, just faster",
          "item": {
            "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/",
      "url": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/",
      "name": "AI optimization is replaying early SEO, just faster",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-03-11T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "AI optimization is replaying early SEO, just faster",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/#primaryimage"
      },
      "description": "If you were around for early SEO, the current AI-content wave should feel familiar. The difference is speed: what used to take years now takes weeks.",
      "inLanguage": "en-US",
      "datePublished": "2026-03-11T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "SEO",
      "wordCount": 969
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/ai-optimization-is-replaying-early-seo-just-faster/#primaryimage",
      "url": "https://joost.blog/og/ai-optimization-is-replaying-early-seo-just-faster.png",
      "contentUrl": "https://joost.blog/og/ai-optimization-is-replaying-early-seo-just-faster.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/ai-powered-answers-ask-joost/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Ask Joost: AI-powered answers from my blog",
          "item": {
            "@id": "https://joost.blog/ai-powered-answers-ask-joost/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/ai-powered-answers-ask-joost/",
      "url": "https://joost.blog/ai-powered-answers-ask-joost/",
      "name": "Ask Joost: AI-powered answers from my blog",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/ai-powered-answers-ask-joost/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/ai-powered-answers-ask-joost/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/ai-powered-answers-ask-joost/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-03-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/ai-powered-answers-ask-joost/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/ai-powered-answers-ask-joost/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Ask Joost: AI-powered answers from my blog",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/ai-powered-answers-ask-joost/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/ai-powered-answers-ask-joost/#primaryimage"
      },
      "description": "I built an AI-powered Q&A feature that lets you ask questions about anything I've written. Here's how it works, and why I built it on Cloudflare Workers AI.",
      "inLanguage": "en-US",
      "datePublished": "2026-03-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Development",
      "wordCount": 1365
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/ai-powered-answers-ask-joost/#primaryimage",
      "url": "https://joost.blog/og/ai-powered-answers-ask-joost.png",
      "contentUrl": "https://joost.blog/og/ai-powered-answers-ask-joost.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/astro-seo-complete-guide/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Astro SEO: the definitive guide",
          "item": {
            "@id": "https://joost.blog/astro-seo-complete-guide/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/astro-seo-complete-guide/",
      "url": "https://joost.blog/astro-seo-complete-guide/",
      "name": "Astro SEO: the definitive guide",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/astro-seo-complete-guide/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/astro-seo-complete-guide/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/astro-seo-complete-guide/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-04-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/astro-seo-complete-guide/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/astro-seo-complete-guide/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Astro SEO: the definitive guide",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/astro-seo-complete-guide/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/astro-seo-complete-guide/#primaryimage"
      },
      "description": "In 2008 I wrote \"WordPress SEO: the definitive guide.\" Eighteen years later, this is the Astro version. The full SEO stack: linked JSON-LD graphs, per-collection sitemaps, auto-generated OG images, IndexNow, schema endpoints for agent discovery, and why keyphrase optimization matters less than you think.",
      "inLanguage": "en-US",
      "datePublished": "2026-04-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "SEO",
      "wordCount": 3240
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/astro-seo-complete-guide/#primaryimage",
      "url": "https://joost.blog/og/astro-seo-complete-guide.png",
      "contentUrl": "https://joost.blog/og/astro-seo-complete-guide.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/automatically-convert-webp-files-to-png/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Productivity hacks",
          "item": "https://joost.blog/blog/category/productivity-hacks/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Automatically convert WebP files to PNG",
          "item": {
            "@id": "https://joost.blog/automatically-convert-webp-files-to-png/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/automatically-convert-webp-files-to-png/",
      "url": "https://joost.blog/automatically-convert-webp-files-to-png/",
      "name": "Automatically convert WebP files to PNG",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/automatically-convert-webp-files-to-png/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/automatically-convert-webp-files-to-png/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/automatically-convert-webp-files-to-png/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2020-02-08T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2020
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/automatically-convert-webp-files-to-png/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/automatically-convert-webp-files-to-png/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Automatically convert WebP files to PNG",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/automatically-convert-webp-files-to-png/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/automatically-convert-webp-files-to-png/#primaryimage"
      },
      "description": "I love CloudFlare. It makes websites lots faster. One of the things it does is change PNG files to WebP automatically when your browser (f.i. Google Chrome) sup",
      "inLanguage": "en-US",
      "datePublished": "2020-02-08T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2020,
      "articleSection": "Productivity hacks",
      "wordCount": 366
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/automatically-convert-webp-files-to-png/#primaryimage",
      "url": "https://joost.blog/og/automatically-convert-webp-files-to-png.png",
      "contentUrl": "https://joost.blog/og/automatically-convert-webp-files-to-png.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/autonomous-feedback-agent/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Building an Autonomous Feedback Agent",
          "item": {
            "@id": "https://joost.blog/autonomous-feedback-agent/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/autonomous-feedback-agent/",
      "url": "https://joost.blog/autonomous-feedback-agent/",
      "name": "Building an Autonomous Feedback Agent",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/autonomous-feedback-agent/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/autonomous-feedback-agent/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/autonomous-feedback-agent/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-02-14T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/autonomous-feedback-agent/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/autonomous-feedback-agent/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Building an Autonomous Feedback Agent",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/autonomous-feedback-agent/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/autonomous-feedback-agent/#primaryimage"
      },
      "description": "What if your users could submit a bug report and have a pull request ready for review before you’ve even seen the ticket? That’s what we built for Rondo Club, a",
      "inLanguage": "en-US",
      "datePublished": "2026-02-14T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Development",
      "wordCount": 1950
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/autonomous-feedback-agent/#primaryimage",
      "url": "https://joost.blog/og/autonomous-feedback-agent.png",
      "contentUrl": "https://joost.blog/og/autonomous-feedback-agent.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/blogging-about-not-seo/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Blogging about not SEO",
          "item": {
            "@id": "https://joost.blog/blogging-about-not-seo/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/blogging-about-not-seo/",
      "url": "https://joost.blog/blogging-about-not-seo/",
      "name": "Blogging about not SEO",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/blogging-about-not-seo/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/blogging-about-not-seo/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/blogging-about-not-seo/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2017-01-14T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2017
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/blogging-about-not-seo/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/blogging-about-not-seo/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Blogging about not SEO",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/blogging-about-not-seo/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/blogging-about-not-seo/#primaryimage"
      },
      "description": "I’ve been wanting to do this for a while: blogging for fun, on a domain separate from Yoast.com. Blogging about stuff I do outside of Yoast, which, surprisingly",
      "inLanguage": "en-US",
      "datePublished": "2017-01-14T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2017,
      "articleSection": "SEO",
      "wordCount": 126
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/blogging-about-not-seo/#primaryimage",
      "url": "https://joost.blog/og/blogging-about-not-seo.png",
      "contentUrl": "https://joost.blog/og/blogging-about-not-seo.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/build-websites-like-2005/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Build websites like it’s 2005 (and win in 2025)",
          "item": {
            "@id": "https://joost.blog/build-websites-like-2005/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/build-websites-like-2005/",
      "url": "https://joost.blog/build-websites-like-2005/",
      "name": "Build websites like it’s 2005 (and win in 2025)",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/build-websites-like-2005/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/build-websites-like-2005/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/build-websites-like-2005/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-03-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/build-websites-like-2005/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/build-websites-like-2005/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Build websites like it’s 2005 (and win in 2025)",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/build-websites-like-2005/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/build-websites-like-2005/#primaryimage"
      },
      "description": "Last week was a whirlwind, first diving deep into AI and WordPress while working with the WP CLI as MCP host team at Cloudfest, then heading off to SMX Munich f",
      "inLanguage": "en-US",
      "datePublished": "2025-03-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "SEO",
      "wordCount": 618
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/build-websites-like-2005/#primaryimage",
      "url": "https://joost.blog/og/build-websites-like-2005.png",
      "contentUrl": "https://joost.blog/og/build-websites-like-2005.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/building-a-trusted-web-step-1/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Building a trusted web, step 1.",
          "item": {
            "@id": "https://joost.blog/building-a-trusted-web-step-1/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/building-a-trusted-web-step-1/",
      "url": "https://joost.blog/building-a-trusted-web-step-1/",
      "name": "Building a trusted web, step 1.",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/building-a-trusted-web-step-1/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/building-a-trusted-web-step-1/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/building-a-trusted-web-step-1/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2020-10-28T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2020
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/building-a-trusted-web-step-1/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/building-a-trusted-web-step-1/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Building a trusted web, step 1.",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/building-a-trusted-web-step-1/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/building-a-trusted-web-step-1/#primaryimage"
      },
      "description": "One of the biggest long-term trust problems of the web is reliably figuring out who published something first. Who was first has deep implications for ownership",
      "inLanguage": "en-US",
      "datePublished": "2020-10-28T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2020,
      "articleSection": "WordPress",
      "wordCount": 497
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/building-a-trusted-web-step-1/#primaryimage",
      "url": "https://joost.blog/og/building-a-trusted-web-step-1.png",
      "contentUrl": "https://joost.blog/og/building-a-trusted-web-step-1.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Cleaning up WordPress option clutter",
          "item": {
            "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/",
      "url": "https://joost.blog/cleaning-up-wordpress-option-clutter/",
      "name": "Cleaning up WordPress option clutter",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/cleaning-up-wordpress-option-clutter/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-02-29T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Cleaning up WordPress option clutter",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/#primaryimage"
      },
      "description": "Note: this plugin has received a ton of updates since its inception. It’s now been moved to Progress Planner, where the team there (including myself) are develo",
      "inLanguage": "en-US",
      "datePublished": "2024-02-29T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Development",
      "wordCount": 561
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/cleaning-up-wordpress-option-clutter/#primaryimage",
      "url": "https://joost.blog/og/cleaning-up-wordpress-option-clutter.png",
      "contentUrl": "https://joost.blog/og/cleaning-up-wordpress-option-clutter.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/clickable-whatsapp-links/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Clickable WhatsApp links",
          "item": {
            "@id": "https://joost.blog/clickable-whatsapp-links/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/clickable-whatsapp-links/",
      "url": "https://joost.blog/clickable-whatsapp-links/",
      "name": "Clickable WhatsApp links",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/clickable-whatsapp-links/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/clickable-whatsapp-links/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/clickable-whatsapp-links/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2023-12-30T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/clickable-whatsapp-links/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/clickable-whatsapp-links/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Clickable WhatsApp links",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/clickable-whatsapp-links/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/clickable-whatsapp-links/#primaryimage"
      },
      "description": "The simple things make life easy. One of them is WhatsApp. And more specifically: customer service through WhatsApp. I love it when companies offer WhatsApp sup",
      "inLanguage": "en-US",
      "datePublished": "2023-12-30T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023,
      "articleSection": "Development",
      "wordCount": 340
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/clickable-whatsapp-links/#primaryimage",
      "url": "https://joost.blog/og/clickable-whatsapp-links.png",
      "contentUrl": "https://joost.blog/og/clickable-whatsapp-links.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/cms-market-share-june-2024-commentary/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Market Share Analysis",
          "item": "https://joost.blog/blog/category/market-share-analysis/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "CMS market share June 2024 commentary",
          "item": {
            "@id": "https://joost.blog/cms-market-share-june-2024-commentary/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/cms-market-share-june-2024-commentary/",
      "url": "https://joost.blog/cms-market-share-june-2024-commentary/",
      "name": "CMS market share June 2024 commentary",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/cms-market-share-june-2024-commentary/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/cms-market-share-june-2024-commentary/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/cms-market-share-june-2024-commentary/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-07-02T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/cms-market-share-june-2024-commentary/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/cms-market-share-june-2024-commentary/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "CMS market share June 2024 commentary",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/cms-market-share-june-2024-commentary/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/cms-market-share-june-2024-commentary/#primaryimage"
      },
      "description": "This commentary focuses on the data found in my monthly CMS market share report, which is generated automatically every month. This is the first time I’m writin",
      "inLanguage": "en-US",
      "datePublished": "2024-07-02T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Market Share Analysis",
      "wordCount": 538
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/cms-market-share-june-2024-commentary/#primaryimage",
      "url": "https://joost.blog/og/cms-market-share-june-2024-commentary.png",
      "contentUrl": "https://joost.blog/og/cms-market-share-june-2024-commentary.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/cms-market-share-measured-right/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Market Share Analysis",
          "item": "https://joost.blog/blog/category/market-share-analysis/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "CMS Market share measured “right”",
          "item": {
            "@id": "https://joost.blog/cms-market-share-measured-right/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/cms-market-share-measured-right/",
      "url": "https://joost.blog/cms-market-share-measured-right/",
      "name": "CMS Market share measured “right”",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/cms-market-share-measured-right/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/cms-market-share-measured-right/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/cms-market-share-measured-right/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-07-02T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/cms-market-share-measured-right/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/cms-market-share-measured-right/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "CMS Market share measured “right”",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/cms-market-share-measured-right/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/cms-market-share-measured-right/#primaryimage"
      },
      "description": "Today, I’m introducing a new CMS market share report on this site based on the HTTP Archive’s dataset. This report will be updated – automatically – every month",
      "inLanguage": "en-US",
      "datePublished": "2024-07-02T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Market Share Analysis",
      "wordCount": 510
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/cms-market-share-measured-right/#primaryimage",
      "url": "https://joost.blog/og/cms-market-share-measured-right.png",
      "contentUrl": "https://joost.blog/og/cms-market-share-measured-right.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Open Source",
          "item": "https://joost.blog/blog/category/open-source/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "The silence is deafening: Google’s “agentic” future leaves the WordPress economy behind",
          "item": {
            "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/",
      "url": "https://joost.blog/deafening-silence-google-wordpress-agentic/",
      "name": "The silence is deafening: Google’s “agentic” future leaves the WordPress economy behind",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/deafening-silence-google-wordpress-agentic/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-01-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "The silence is deafening: Google’s “agentic” future leaves the WordPress economy behind",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/#primaryimage"
      },
      "description": "Google just announced a massive shift in how the internet shops, and the biggest platform on the web wasn’t even in the room.",
      "inLanguage": "en-US",
      "datePublished": "2026-01-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Open Source",
      "wordCount": 775
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/deafening-silence-google-wordpress-agentic/#primaryimage",
      "url": "https://joost.blog/og/deafening-silence-google-wordpress-agentic.png",
      "contentUrl": "https://joost.blog/og/deafening-silence-google-wordpress-agentic.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/defending-open-web-not-enough/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Open Source",
          "item": "https://joost.blog/blog/category/open-source/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Defending the open web is not enough",
          "item": {
            "@id": "https://joost.blog/defending-open-web-not-enough/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/defending-open-web-not-enough/",
      "url": "https://joost.blog/defending-open-web-not-enough/",
      "name": "Defending the open web is not enough",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/defending-open-web-not-enough/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/defending-open-web-not-enough/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/defending-open-web-not-enough/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-04-07T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/defending-open-web-not-enough/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/defending-open-web-not-enough/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Defending the open web is not enough",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/defending-open-web-not-enough/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/defending-open-web-not-enough/#primaryimage"
      },
      "description": "Anil Dash calls it the endgame for the open web, and he's right. But the structural collapse has already started. The indie web is mostly gone, the winners have already left, and defense alone won't fix it. The question isn't how to protect what remains. It's what to build next.",
      "inLanguage": "en-US",
      "datePublished": "2026-04-07T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Open Source",
      "wordCount": 2366
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/defending-open-web-not-enough/#primaryimage",
      "url": "https://joost.blog/og/defending-open-web-not-enough.png",
      "contentUrl": "https://joost.blog/og/defending-open-web-not-enough.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/democratizing-publishing/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Democratizing publishing",
          "item": {
            "@id": "https://joost.blog/democratizing-publishing/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/democratizing-publishing/",
      "url": "https://joost.blog/democratizing-publishing/",
      "name": "Democratizing publishing",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/democratizing-publishing/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/democratizing-publishing/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/democratizing-publishing/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2018-12-27T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2018
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/democratizing-publishing/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/democratizing-publishing/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Democratizing publishing",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/democratizing-publishing/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/democratizing-publishing/#primaryimage"
      },
      "description": "Matt blogged, in response to a question asked at WordCamp US: what does “democratizing publishing” mean to you? His answer:",
      "inLanguage": "en-US",
      "datePublished": "2018-12-27T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2018,
      "articleSection": "WordPress",
      "wordCount": 158
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/democratizing-publishing/#primaryimage",
      "url": "https://joost.blog/og/democratizing-publishing.png",
      "contentUrl": "https://joost.blog/og/democratizing-publishing.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Designing plugins to be uninstalled",
          "item": {
            "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/",
      "url": "https://joost.blog/designing-plugins-to-be-uninstalled/",
      "name": "Designing plugins to be uninstalled",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/designing-plugins-to-be-uninstalled/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-02-02T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Designing plugins to be uninstalled",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/#primaryimage"
      },
      "description": "I feel a particular class of plugins in the WordPress world should be more prominent. Plugins that help you do something, which you then delete when you’re done",
      "inLanguage": "en-US",
      "datePublished": "2024-02-02T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "WordPress",
      "wordCount": 521
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/designing-plugins-to-be-uninstalled/#primaryimage",
      "url": "https://joost.blog/og/designing-plugins-to-be-uninstalled.png",
      "contentUrl": "https://joost.blog/og/designing-plugins-to-be-uninstalled.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/do-you-need-a-cms/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Market Share Analysis",
          "item": "https://joost.blog/blog/category/market-share-analysis/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Do you need a CMS?",
          "item": {
            "@id": "https://joost.blog/do-you-need-a-cms/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/do-you-need-a-cms/",
      "url": "https://joost.blog/do-you-need-a-cms/",
      "name": "Do you need a CMS?",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/do-you-need-a-cms/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/do-you-need-a-cms/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/do-you-need-a-cms/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-03-21T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/do-you-need-a-cms/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/do-you-need-a-cms/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Do you need a CMS?",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/do-you-need-a-cms/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/do-you-need-a-cms/#primaryimage"
      },
      "description": "For twenty years, wanting a website meant needing a CMS. That's no longer true. The real question people ask now is simpler: how do I get my content on the web?",
      "inLanguage": "en-US",
      "datePublished": "2026-03-21T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Market Share Analysis",
      "wordCount": 856
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/do-you-need-a-cms/#primaryimage",
      "url": "https://joost.blog/og/do-you-need-a-cms.png",
      "contentUrl": "https://joost.blog/og/do-you-need-a-cms.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/docusign-to-documenso/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Open Source",
          "item": "https://joost.blog/blog/category/open-source/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Docusign to Documenso",
          "item": {
            "@id": "https://joost.blog/docusign-to-documenso/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/docusign-to-documenso/",
      "url": "https://joost.blog/docusign-to-documenso/",
      "name": "Docusign to Documenso",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/docusign-to-documenso/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/docusign-to-documenso/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/docusign-to-documenso/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-03-15T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/docusign-to-documenso/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/docusign-to-documenso/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Docusign to Documenso",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/docusign-to-documenso/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/docusign-to-documenso/#primaryimage"
      },
      "description": "In my quest to move most of my SaaS services to self-hosted open-source software, I’ve taken on the next step: our document signing infrastructure. Everyone see",
      "inLanguage": "en-US",
      "datePublished": "2024-03-15T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Open Source",
      "wordCount": 743
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/docusign-to-documenso/#primaryimage",
      "url": "https://joost.blog/og/docusign-to-documenso.png",
      "contentUrl": "https://joost.blog/og/docusign-to-documenso.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Market Share Analysis",
          "item": "https://joost.blog/blog/category/market-share-analysis/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Elementor: WordPress’ secret growth driver?",
          "item": {
            "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/",
      "url": "https://joost.blog/elementor-wordpress-secret-growth-driver/",
      "name": "Elementor: WordPress’ secret growth driver?",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/elementor-wordpress-secret-growth-driver/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2021-12-13T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2021
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Elementor: WordPress’ secret growth driver?",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/#primaryimage"
      },
      "description": "Is Elementor the secret behind WordPress’ growth in the last years? We know from my CMS market share analysis that WordPress has been growing fast. Could it be",
      "inLanguage": "en-US",
      "datePublished": "2021-12-13T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2021,
      "articleSection": "Market Share Analysis",
      "wordCount": 528
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/elementor-wordpress-secret-growth-driver/#primaryimage",
      "url": "https://joost.blog/og/elementor-wordpress-secret-growth-driver.png",
      "contentUrl": "https://joost.blog/og/elementor-wordpress-secret-growth-driver.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/emdash-cms/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "AI",
          "item": "https://joost.blog/blog/category/ai/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "EmDash: a CMS built for 2026",
          "item": {
            "@id": "https://joost.blog/emdash-cms/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/emdash-cms/",
      "url": "https://joost.blog/emdash-cms/",
      "name": "EmDash: a CMS built for 2026",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/emdash-cms/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/emdash-cms/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/emdash-cms/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-04-01T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/emdash-cms/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/emdash-cms/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "EmDash: a CMS built for 2026",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/emdash-cms/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/emdash-cms/#primaryimage"
      },
      "description": "Cloudflare just launched EmDash, a CMS designed for how we actually build in 2026: AI agents, structured content, edge deployment. Here's why it matters.",
      "inLanguage": "en-US",
      "datePublished": "2026-04-01T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "AI",
      "wordCount": 1488
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/emdash-cms/#primaryimage",
      "url": "https://joost.blog/og/emdash-cms.png",
      "contentUrl": "https://joost.blog/og/emdash-cms.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "FAIR, WordPress, and Knowing When to Stop",
          "item": {
            "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/",
      "url": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/",
      "name": "FAIR, WordPress, and Knowing When to Stop",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-02-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "FAIR, WordPress, and Knowing When to Stop",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/#primaryimage"
      },
      "description": "Over the past year, we, Karim & Joost, have written and talked extensively about the challenges facing WordPress. We’ve been critical. At times, very critical.",
      "inLanguage": "en-US",
      "datePublished": "2026-02-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "WordPress",
      "wordCount": 1341
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/fair-wordpress-and-knowing-when-to-stop/#primaryimage",
      "url": "https://joost.blog/og/fair-wordpress-and-knowing-when-to-stop.png",
      "contentUrl": "https://joost.blog/og/fair-wordpress-and-knowing-when-to-stop.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/github-actions-wordpress/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "GitHub Actions to keep your WordPress plugin healthy",
          "item": {
            "@id": "https://joost.blog/github-actions-wordpress/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/github-actions-wordpress/",
      "url": "https://joost.blog/github-actions-wordpress/",
      "name": "GitHub Actions to keep your WordPress plugin healthy",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/github-actions-wordpress/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/github-actions-wordpress/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/github-actions-wordpress/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-01-23T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/github-actions-wordpress/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/github-actions-wordpress/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "GitHub Actions to keep your WordPress plugin healthy",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/github-actions-wordpress/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/github-actions-wordpress/#primaryimage"
      },
      "description": "I absolutely love GitHub Actions and have been using them more and more for several purposes. As I’ve seen on some of the GitHub repositories I’ve been looking",
      "inLanguage": "en-US",
      "datePublished": "2024-01-23T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Development",
      "wordCount": 761
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/github-actions-wordpress/#primaryimage",
      "url": "https://joost.blog/og/github-actions-wordpress.png",
      "contentUrl": "https://joost.blog/og/github-actions-wordpress.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/good-looking-github-profile-pages/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Good-looking GitHub profile pages",
          "item": {
            "@id": "https://joost.blog/good-looking-github-profile-pages/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/good-looking-github-profile-pages/",
      "url": "https://joost.blog/good-looking-github-profile-pages/",
      "name": "Good-looking GitHub profile pages",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/good-looking-github-profile-pages/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/good-looking-github-profile-pages/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/good-looking-github-profile-pages/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2023-12-20T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/good-looking-github-profile-pages/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/good-looking-github-profile-pages/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Good-looking GitHub profile pages",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/good-looking-github-profile-pages/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/good-looking-github-profile-pages/#primaryimage"
      },
      "description": "After my blog post about healthy GitHub repositories, I learned that many people didn’t know how to create .github repositories and what you can do with those.",
      "inLanguage": "en-US",
      "datePublished": "2023-12-20T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023,
      "articleSection": "Development",
      "wordCount": 542
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/good-looking-github-profile-pages/#primaryimage",
      "url": "https://joost.blog/og/good-looking-github-profile-pages.png",
      "contentUrl": "https://joost.blog/og/good-looking-github-profile-pages.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Google’s robots changes, the web & the law",
          "item": {
            "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/",
      "url": "https://joost.blog/googles-robots-changes-the-web-the-law/",
      "name": "Google’s robots changes, the web & the law",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/googles-robots-changes-the-web-the-law/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2019-09-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Google’s robots changes, the web & the law",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/#primaryimage"
      },
      "description": "Google announced a few days ago that they would change the way rel=\"nofollow\" works for them. They would start treating nofollow as a “hint” instead of a “direc",
      "inLanguage": "en-US",
      "datePublished": "2019-09-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019,
      "articleSection": "SEO",
      "wordCount": 685
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/googles-robots-changes-the-web-the-law/#primaryimage",
      "url": "https://joost.blog/og/googles-robots-changes-the-web-the-law.png",
      "contentUrl": "https://joost.blog/og/googles-robots-changes-the-web-the-law.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Gravity Forms notification routing with a lookup table",
          "item": {
            "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/",
      "url": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/",
      "name": "Gravity Forms notification routing with a lookup table",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2023-02-16T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Gravity Forms notification routing with a lookup table",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/#primaryimage"
      },
      "description": "I had a need for complex routing of notification messages in Gravity Forms. The email could, depending on a dropdown field, go to some 50-60 different recipient",
      "inLanguage": "en-US",
      "datePublished": "2023-02-16T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023,
      "articleSection": "WordPress",
      "wordCount": 1180
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/gravity-forms-notification-routing-with-a-lookup-table/#primaryimage",
      "url": "https://joost.blog/og/gravity-forms-notification-routing-with-a-lookup-table.png",
      "contentUrl": "https://joost.blog/og/gravity-forms-notification-routing-with-a-lookup-table.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/gutenberg-and-yoast-seo/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Gutenberg and Yoast SEO",
          "item": {
            "@id": "https://joost.blog/gutenberg-and-yoast-seo/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/gutenberg-and-yoast-seo/",
      "url": "https://joost.blog/gutenberg-and-yoast-seo/",
      "name": "Gutenberg and Yoast SEO",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/gutenberg-and-yoast-seo/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/gutenberg-and-yoast-seo/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/gutenberg-and-yoast-seo/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2017-06-17T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2017
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/gutenberg-and-yoast-seo/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/gutenberg-and-yoast-seo/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Gutenberg and Yoast SEO",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/gutenberg-and-yoast-seo/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/gutenberg-and-yoast-seo/#primaryimage"
      },
      "description": "I’m typing this as I sit in Track 1 of WordCamp Europe in Paris. Matt Mullenweg just announced Gutenberg as a plugin is available, so I installed it on here and",
      "inLanguage": "en-US",
      "datePublished": "2017-06-17T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2017,
      "articleSection": "WordPress",
      "wordCount": 249
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/gutenberg-and-yoast-seo/#primaryimage",
      "url": "https://joost.blog/og/gutenberg-and-yoast-seo.png",
      "contentUrl": "https://joost.blog/og/gutenberg-and-yoast-seo.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/healthy-doubt/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Post from Joost",
          "item": "https://joost.blog/blog/category/post-from-joost/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Why healthy doubt beats AI confidence theater",
          "item": {
            "@id": "https://joost.blog/healthy-doubt/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/healthy-doubt/",
      "url": "https://joost.blog/healthy-doubt/",
      "name": "Why healthy doubt beats AI confidence theater",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/healthy-doubt/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/healthy-doubt/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/healthy-doubt/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-02-21T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/healthy-doubt/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/healthy-doubt/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Why healthy doubt beats AI confidence theater",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/healthy-doubt/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/healthy-doubt/#primaryimage"
      },
      "description": "AI will confidently sign off on anything. The question is whether you will too.",
      "inLanguage": "en-US",
      "datePublished": "2026-02-21T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Post from Joost",
      "wordCount": 1589
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/healthy-doubt/#primaryimage",
      "url": "https://joost.blog/og/healthy-doubt.png",
      "contentUrl": "https://joost.blog/og/healthy-doubt.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/healthy-github-repository/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "How to create a healthy GitHub repository",
          "item": {
            "@id": "https://joost.blog/healthy-github-repository/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/healthy-github-repository/",
      "url": "https://joost.blog/healthy-github-repository/",
      "name": "How to create a healthy GitHub repository",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/healthy-github-repository/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/healthy-github-repository/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/healthy-github-repository/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2023-12-19T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/healthy-github-repository/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/healthy-github-repository/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "How to create a healthy GitHub repository",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/healthy-github-repository/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/healthy-github-repository/#primaryimage"
      },
      "description": "As a result of investing in a fair few companies and getting a lot more requests to invest, I look at GitHub repositories a lot. I often run into GitHub reposit",
      "inLanguage": "en-US",
      "datePublished": "2023-12-19T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023,
      "articleSection": "Development",
      "wordCount": 890
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/healthy-github-repository/#primaryimage",
      "url": "https://joost.blog/og/healthy-github-repository.png",
      "contentUrl": "https://joost.blog/og/healthy-github-repository.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/helpscout-to-freescout/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Open Source",
          "item": "https://joost.blog/blog/category/open-source/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "HelpScout to Freescout",
          "item": {
            "@id": "https://joost.blog/helpscout-to-freescout/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/helpscout-to-freescout/",
      "url": "https://joost.blog/helpscout-to-freescout/",
      "name": "HelpScout to Freescout",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/helpscout-to-freescout/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/helpscout-to-freescout/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/helpscout-to-freescout/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-03-07T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/helpscout-to-freescout/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/helpscout-to-freescout/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "HelpScout to Freescout",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/helpscout-to-freescout/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/helpscout-to-freescout/#primaryimage"
      },
      "description": "Everyone uses a lot of SaaS applications to manage their day-to-day business. So much that the cost of it becomes prohibitive. I’ve decided that I’m going to tr",
      "inLanguage": "en-US",
      "datePublished": "2024-03-07T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Open Source",
      "wordCount": 826
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/helpscout-to-freescout/#primaryimage",
      "url": "https://joost.blog/og/helpscout-to-freescout.png",
      "contentUrl": "https://joost.blog/og/helpscout-to-freescout.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Productivity hacks",
          "item": "https://joost.blog/blog/category/productivity-hacks/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "How to get week numbers in your Mac menu bar",
          "item": {
            "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/",
      "url": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/",
      "name": "How to get week numbers in your Mac menu bar",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2020-04-24T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2020
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "How to get week numbers in your Mac menu bar",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/#primaryimage"
      },
      "description": "This post explains how to get the week number in your Mac’s menu bar. Simple enough, right? At some point, as you start planning ahead in basically anything, yo",
      "inLanguage": "en-US",
      "datePublished": "2020-04-24T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2020,
      "articleSection": "Productivity hacks",
      "wordCount": 432
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/how-to-get-week-numbers-in-your-mac-menu-bar/#primaryimage",
      "url": "https://joost.blog/og/how-to-get-week-numbers-in-your-mac-menu-bar.png",
      "contentUrl": "https://joost.blog/og/how-to-get-week-numbers-in-your-mac-menu-bar.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/innovation-in-wordpress/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Innovation in WordPress: a look at plugin development",
          "item": {
            "@id": "https://joost.blog/innovation-in-wordpress/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/innovation-in-wordpress/",
      "url": "https://joost.blog/innovation-in-wordpress/",
      "name": "Innovation in WordPress: a look at plugin development",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/innovation-in-wordpress/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/innovation-in-wordpress/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/innovation-in-wordpress/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-06-05T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/innovation-in-wordpress/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/innovation-in-wordpress/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Innovation in WordPress: a look at plugin development",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/innovation-in-wordpress/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/innovation-in-wordpress/#primaryimage"
      },
      "description": "Recent observations have highlighted a significant surge in new plugin submissions to the WordPress repository, as noted in this post. We also know that Automat",
      "inLanguage": "en-US",
      "datePublished": "2025-06-05T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "WordPress",
      "wordCount": 1803
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/innovation-in-wordpress/#primaryimage",
      "url": "https://joost.blog/og/innovation-in-wordpress.png",
      "contentUrl": "https://joost.blog/og/innovation-in-wordpress.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Introducing a new plugin: Progress Planner",
          "item": {
            "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/",
      "url": "https://joost.blog/introducing-a-new-plugin-progress-planner/",
      "name": "Introducing a new plugin: Progress Planner",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/introducing-a-new-plugin-progress-planner/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-06-07T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Introducing a new plugin: Progress Planner",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/#primaryimage"
      },
      "description": "Ever since Marieke and I left Yoast, we’ve considered building a new WordPress product. We love working on something that people can use—something that will imp",
      "inLanguage": "en-US",
      "datePublished": "2024-06-07T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "WordPress",
      "wordCount": 579
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/introducing-a-new-plugin-progress-planner/#primaryimage",
      "url": "https://joost.blog/og/introducing-a-new-plugin-progress-planner.png",
      "contentUrl": "https://joost.blog/og/introducing-a-new-plugin-progress-planner.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/karen-sparck-jones/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Short",
          "item": "https://joost.blog/blog/category/short/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Karen Sparck Jones",
          "item": {
            "@id": "https://joost.blog/karen-sparck-jones/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/karen-sparck-jones/",
      "url": "https://joost.blog/karen-sparck-jones/",
      "name": "Karen Sparck Jones",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/karen-sparck-jones/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/karen-sparck-jones/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/karen-sparck-jones/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2019-01-03T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/karen-sparck-jones/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/karen-sparck-jones/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Karen Sparck Jones",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/karen-sparck-jones/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/karen-sparck-jones/#primaryimage"
      },
      "description": "> “Computing is too important to be left to men.”",
      "inLanguage": "en-US",
      "datePublished": "2019-01-03T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019,
      "articleSection": "Short",
      "wordCount": 43
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/karen-sparck-jones/#primaryimage",
      "url": "https://joost.blog/og/karen-sparck-jones.png",
      "contentUrl": "https://joost.blog/og/karen-sparck-jones.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Personal stuff",
          "item": "https://joost.blog/blog/category/personal-stuff/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Leading marketing & communication for WordPress",
          "item": {
            "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/",
      "url": "https://joost.blog/leading-marketing-communication-for-wordpress/",
      "name": "Leading marketing & communication for WordPress",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/leading-marketing-communication-for-wordpress/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2019-01-21T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Leading marketing & communication for WordPress",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/#primaryimage"
      },
      "description": "Last week I was appointed Marketing & Communications Lead of WordPress. I think WordPress is one of the most essential platforms on the web and I’m really proud",
      "inLanguage": "en-US",
      "datePublished": "2019-01-21T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019,
      "articleSection": "Personal stuff",
      "wordCount": 1067
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/leading-marketing-communication-for-wordpress/#primaryimage",
      "url": "https://joost.blog/og/leading-marketing-communication-for-wordpress.png",
      "contentUrl": "https://joost.blog/og/leading-marketing-communication-for-wordpress.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/markdown-alternate/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Great minds think alike? My WordPress take on Markdown for Agents",
          "item": {
            "@id": "https://joost.blog/markdown-alternate/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/markdown-alternate/",
      "url": "https://joost.blog/markdown-alternate/",
      "name": "Great minds think alike? My WordPress take on Markdown for Agents",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/markdown-alternate/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/markdown-alternate/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/markdown-alternate/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-02-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/markdown-alternate/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/markdown-alternate/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Great minds think alike? My WordPress take on Markdown for Agents",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/markdown-alternate/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/markdown-alternate/#primaryimage"
      },
      "description": "Today, Cloudflare announced Markdown for Agents, a feature that automatically converts HTML to markdown at the edge when AI agents request it. Reading their ann",
      "inLanguage": "en-US",
      "datePublished": "2026-02-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Development",
      "wordCount": 669
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/markdown-alternate/#primaryimage",
      "url": "https://joost.blog/og/markdown-alternate.png",
      "contentUrl": "https://joost.blog/og/markdown-alternate.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/marketing-wordpress-first-steps/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Marketing WordPress – first steps",
          "item": {
            "@id": "https://joost.blog/marketing-wordpress-first-steps/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/marketing-wordpress-first-steps/",
      "url": "https://joost.blog/marketing-wordpress-first-steps/",
      "name": "Marketing WordPress – first steps",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/marketing-wordpress-first-steps/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/marketing-wordpress-first-steps/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/marketing-wordpress-first-steps/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2019-02-22T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/marketing-wordpress-first-steps/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/marketing-wordpress-first-steps/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Marketing WordPress – first steps",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/marketing-wordpress-first-steps/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/marketing-wordpress-first-steps/#primaryimage"
      },
      "description": "I’ve had the question a few times now of what I’ve been up to since I got appointed lead marketing for WordPress. The first few weeks have been busy, but very i",
      "inLanguage": "en-US",
      "datePublished": "2019-02-22T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019,
      "articleSection": "WordPress",
      "wordCount": 1025
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/marketing-wordpress-first-steps/#primaryimage",
      "url": "https://joost.blog/og/marketing-wordpress-first-steps.png",
      "contentUrl": "https://joost.blog/og/marketing-wordpress-first-steps.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Multi-currency awesomeness with EDD & Cloudflare",
          "item": {
            "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/",
      "url": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/",
      "name": "Multi-currency awesomeness with EDD & Cloudflare",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-01-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Multi-currency awesomeness with EDD & Cloudflare",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/#primaryimage"
      },
      "description": "We’re getting ready at Emilia Projects (which is the “run our own projects part” of Emilia Capital) to sell our first plugin, the Pro version of Fewer Tags. We",
      "inLanguage": "en-US",
      "datePublished": "2024-01-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "WordPress",
      "wordCount": 677
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/multi-currency-awesomeness-with-edd-cloudflare/#primaryimage",
      "url": "https://joost.blog/og/multi-currency-awesomeness-with-edd-cloudflare.png",
      "contentUrl": "https://joost.blog/og/multi-currency-awesomeness-with-edd-cloudflare.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/new-role-at-yoast/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Personal stuff",
          "item": "https://joost.blog/blog/category/personal-stuff/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Transitioning to a new role at Yoast",
          "item": {
            "@id": "https://joost.blog/new-role-at-yoast/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/new-role-at-yoast/",
      "url": "https://joost.blog/new-role-at-yoast/",
      "name": "Transitioning to a new role at Yoast",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/new-role-at-yoast/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/new-role-at-yoast/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/new-role-at-yoast/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2022-03-18T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/new-role-at-yoast/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/new-role-at-yoast/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Transitioning to a new role at Yoast",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/new-role-at-yoast/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/new-role-at-yoast/#primaryimage"
      },
      "description": "At the end of this month, I will transition to a different role at Yoast. No, I will not leave Yoast. But, I am going to pursue some other dreams outside of Yoa",
      "inLanguage": "en-US",
      "datePublished": "2022-03-18T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022,
      "articleSection": "Personal stuff",
      "wordCount": 516
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/new-role-at-yoast/#primaryimage",
      "url": "https://joost.blog/og/new-role-at-yoast.png",
      "contentUrl": "https://joost.blog/og/new-role-at-yoast.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/obsidian-agent-links/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Share Obsidian links that actually work everywhere",
          "item": {
            "@id": "https://joost.blog/obsidian-agent-links/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/obsidian-agent-links/",
      "url": "https://joost.blog/obsidian-agent-links/",
      "name": "Share Obsidian links that actually work everywhere",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/obsidian-agent-links/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/obsidian-agent-links/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/obsidian-agent-links/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-02-25T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/obsidian-agent-links/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/obsidian-agent-links/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Share Obsidian links that actually work everywhere",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/obsidian-agent-links/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/obsidian-agent-links/#primaryimage"
      },
      "description": "I’ve been playing with OpenClaw a lot, and I’m using Obsidian intensely with it. All my processes and even my OpenClaw’s core files live in my Obsidian vault. I",
      "inLanguage": "en-US",
      "datePublished": "2026-02-25T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Development",
      "wordCount": 282
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/obsidian-agent-links/#primaryimage",
      "url": "https://joost.blog/og/obsidian-agent-links.png",
      "contentUrl": "https://joost.blog/og/obsidian-agent-links.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/optimize-crawling-for-the-environment/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Optimize crawling, for the environment",
          "item": {
            "@id": "https://joost.blog/optimize-crawling-for-the-environment/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/optimize-crawling-for-the-environment/",
      "url": "https://joost.blog/optimize-crawling-for-the-environment/",
      "name": "Optimize crawling, for the environment",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/optimize-crawling-for-the-environment/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/optimize-crawling-for-the-environment/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/optimize-crawling-for-the-environment/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2022-05-24T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/optimize-crawling-for-the-environment/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/optimize-crawling-for-the-environment/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Optimize crawling, for the environment",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/optimize-crawling-for-the-environment/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/optimize-crawling-for-the-environment/#primaryimage"
      },
      "description": "Search engines rely on spiders / bots to crawl the web and find (new) content. Every time they find a URL, they crawl it and if it’s interesting to them, they’l",
      "inLanguage": "en-US",
      "datePublished": "2022-05-24T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022,
      "articleSection": "SEO",
      "wordCount": 1342
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/optimize-crawling-for-the-environment/#primaryimage",
      "url": "https://joost.blog/og/optimize-crawling-for-the-environment.png",
      "contentUrl": "https://joost.blog/og/optimize-crawling-for-the-environment.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Optimize crawling: let’s turn things around!",
          "item": {
            "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/",
      "url": "https://joost.blog/optimize-crawling-lets-turn-things-around/",
      "name": "Optimize crawling: let’s turn things around!",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/optimize-crawling-lets-turn-things-around/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2022-06-02T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Optimize crawling: let’s turn things around!",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/#primaryimage"
      },
      "description": "I wrote about crawl optimization last week, mostly about getting stuff that you don’t want crawled to not be crawled. There’s more to say about that, and I will",
      "inLanguage": "en-US",
      "datePublished": "2022-06-02T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022,
      "articleSection": "SEO",
      "wordCount": 931
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/optimize-crawling-lets-turn-things-around/#primaryimage",
      "url": "https://joost.blog/og/optimize-crawling-lets-turn-things-around.png",
      "contentUrl": "https://joost.blog/og/optimize-crawling-lets-turn-things-around.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/organize-screenshots-macos/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Productivity hacks",
          "item": "https://joost.blog/blog/category/productivity-hacks/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Organize your screenshots on MacOS",
          "item": {
            "@id": "https://joost.blog/organize-screenshots-macos/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/organize-screenshots-macos/",
      "url": "https://joost.blog/organize-screenshots-macos/",
      "name": "Organize your screenshots on MacOS",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/organize-screenshots-macos/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/organize-screenshots-macos/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/organize-screenshots-macos/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2021-07-22T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2021
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/organize-screenshots-macos/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/organize-screenshots-macos/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Organize your screenshots on MacOS",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/organize-screenshots-macos/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/organize-screenshots-macos/#primaryimage"
      },
      "description": "MacOS has great built-in screenshot functionality. The problem is that, by default, it saves screenshots to your Desktop, which in my case turned my Desktop int",
      "inLanguage": "en-US",
      "datePublished": "2021-07-22T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2021,
      "articleSection": "Productivity hacks",
      "wordCount": 356
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/organize-screenshots-macos/#primaryimage",
      "url": "https://joost.blog/og/organize-screenshots-macos.png",
      "contentUrl": "https://joost.blog/og/organize-screenshots-macos.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/path-forward-for-wordpress/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "A new path forward for WordPress, and for the open web",
          "item": {
            "@id": "https://joost.blog/path-forward-for-wordpress/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/path-forward-for-wordpress/",
      "url": "https://joost.blog/path-forward-for-wordpress/",
      "name": "A new path forward for WordPress, and for the open web",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/path-forward-for-wordpress/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/path-forward-for-wordpress/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/path-forward-for-wordpress/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-06-06T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/path-forward-for-wordpress/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/path-forward-for-wordpress/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "A new path forward for WordPress, and for the open web",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/path-forward-for-wordpress/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/path-forward-for-wordpress/#primaryimage"
      },
      "description": "In December, I wrote about the state of leadership in the WordPress ecosystem. I shared how too much power rests with one person, and how the lack of transparen",
      "inLanguage": "en-US",
      "datePublished": "2025-06-06T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "WordPress",
      "wordCount": 821
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/path-forward-for-wordpress/#primaryimage",
      "url": "https://joost.blog/og/path-forward-for-wordpress.png",
      "contentUrl": "https://joost.blog/og/path-forward-for-wordpress.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/people-behind-the-platform/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Open Source",
          "item": "https://joost.blog/blog/category/open-source/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "The People Behind the Platform: How WordPress’s Community Drives its Success",
          "item": {
            "@id": "https://joost.blog/people-behind-the-platform/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/people-behind-the-platform/",
      "url": "https://joost.blog/people-behind-the-platform/",
      "name": "The People Behind the Platform: How WordPress’s Community Drives its Success",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/people-behind-the-platform/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/people-behind-the-platform/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/people-behind-the-platform/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-10-31T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/people-behind-the-platform/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/people-behind-the-platform/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "The People Behind the Platform: How WordPress’s Community Drives its Success",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/people-behind-the-platform/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/people-behind-the-platform/#primaryimage"
      },
      "description": "By Marieke van de Rakt and Joost de Valk",
      "inLanguage": "en-US",
      "datePublished": "2024-10-31T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Open Source",
      "wordCount": 1145
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/people-behind-the-platform/#primaryimage",
      "url": "https://joost.blog/og/people-behind-the-platform.png",
      "contentUrl": "https://joost.blog/og/people-behind-the-platform.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/playground-blueprint-builder/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Playground Blueprint Builder",
          "item": {
            "@id": "https://joost.blog/playground-blueprint-builder/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/playground-blueprint-builder/",
      "url": "https://joost.blog/playground-blueprint-builder/",
      "name": "Playground Blueprint Builder",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/playground-blueprint-builder/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/playground-blueprint-builder/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/playground-blueprint-builder/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-03-06T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/playground-blueprint-builder/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/playground-blueprint-builder/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Playground Blueprint Builder",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/playground-blueprint-builder/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/playground-blueprint-builder/#primaryimage"
      },
      "description": "I have been playing with the WordPress Playground a lot. As I did, I wanted a way to quickly make a copy of an existing site to a new Playground. It seems an id",
      "inLanguage": "en-US",
      "datePublished": "2024-03-06T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "WordPress",
      "wordCount": 221
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/playground-blueprint-builder/#primaryimage",
      "url": "https://joost.blog/og/playground-blueprint-builder.png",
      "contentUrl": "https://joost.blog/og/playground-blueprint-builder.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Plugin demos with the WordPress playground",
          "item": {
            "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/",
      "url": "https://joost.blog/plugin-demos-with-the-wordpress-playground/",
      "name": "Plugin demos with the WordPress playground",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/plugin-demos-with-the-wordpress-playground/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2023-12-14T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Plugin demos with the WordPress playground",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/#primaryimage"
      },
      "description": "For years, plugin developers have been looking for ways to demo their plugins to users. Users don’t read readme.txt files or plugin pages on WordPress.org. They",
      "inLanguage": "en-US",
      "datePublished": "2023-12-14T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023,
      "articleSection": "WordPress",
      "wordCount": 526
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/plugin-demos-with-the-wordpress-playground/#primaryimage",
      "url": "https://joost.blog/og/plugin-demos-with-the-wordpress-playground.png",
      "contentUrl": "https://joost.blog/og/plugin-demos-with-the-wordpress-playground.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/plugin-security-issues/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "How to deal with plugin security issues",
          "item": {
            "@id": "https://joost.blog/plugin-security-issues/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/plugin-security-issues/",
      "url": "https://joost.blog/plugin-security-issues/",
      "name": "How to deal with plugin security issues",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/plugin-security-issues/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/plugin-security-issues/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/plugin-security-issues/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2023-04-11T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/plugin-security-issues/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/plugin-security-issues/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "How to deal with plugin security issues",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/plugin-security-issues/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/plugin-security-issues/#primaryimage"
      },
      "description": "Dealing with security issues for your WordPress plugin can be hard and even a bit scary, certainly when it’s happening to you for the first time. In this post I",
      "inLanguage": "en-US",
      "datePublished": "2023-04-11T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023,
      "articleSection": "WordPress",
      "wordCount": 1527
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/plugin-security-issues/#primaryimage",
      "url": "https://joost.blog/og/plugin-security-issues.png",
      "contentUrl": "https://joost.blog/og/plugin-security-issues.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/popover-contextmenu/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "A right-click / contextmenu logo popover",
          "item": {
            "@id": "https://joost.blog/popover-contextmenu/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/popover-contextmenu/",
      "url": "https://joost.blog/popover-contextmenu/",
      "name": "A right-click / contextmenu logo popover",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/popover-contextmenu/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/popover-contextmenu/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/popover-contextmenu/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-05-27T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/popover-contextmenu/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/popover-contextmenu/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "A right-click / contextmenu logo popover",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/popover-contextmenu/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/popover-contextmenu/#primaryimage"
      },
      "description": "I always like it when I right-click a logo on a website because I need to get the logo, and the site’s designer has thought about this. If you right-click on th",
      "inLanguage": "en-US",
      "datePublished": "2024-05-27T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Development",
      "wordCount": 460
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/popover-contextmenu/#primaryimage",
      "url": "https://joost.blog/og/popover-contextmenu.png",
      "contentUrl": "https://joost.blog/og/popover-contextmenu.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/redirect-by-http-headers/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Redirect-By HTTP headers",
          "item": {
            "@id": "https://joost.blog/redirect-by-http-headers/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/redirect-by-http-headers/",
      "url": "https://joost.blog/redirect-by-http-headers/",
      "name": "Redirect-By HTTP headers",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/redirect-by-http-headers/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/redirect-by-http-headers/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/redirect-by-http-headers/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-03-13T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/redirect-by-http-headers/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/redirect-by-http-headers/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Redirect-By HTTP headers",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/redirect-by-http-headers/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/redirect-by-http-headers/#primaryimage"
      },
      "description": "One of the things one runs into when you’re doing large migrations (between domains, or within a domain) is that you run into redirects that go “wrong”. A syste",
      "inLanguage": "en-US",
      "datePublished": "2025-03-13T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "SEO",
      "wordCount": 387
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/redirect-by-http-headers/#primaryimage",
      "url": "https://joost.blog/og/redirect-by-http-headers.png",
      "contentUrl": "https://joost.blog/og/redirect-by-http-headers.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Research: WordPress publications misuse tags",
          "item": {
            "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/",
      "url": "https://joost.blog/research-wordpress-publications-misuse-tags/",
      "name": "Research: WordPress publications misuse tags",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/research-wordpress-publications-misuse-tags/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-01-30T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Research: WordPress publications misuse tags",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/#primaryimage"
      },
      "description": "This post was migrated to this site in January 2025 when we took down the Fewer Tags project site.",
      "inLanguage": "en-US",
      "datePublished": "2024-01-30T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "WordPress",
      "wordCount": 1903
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/research-wordpress-publications-misuse-tags/#primaryimage",
      "url": "https://joost.blog/og/research-wordpress-publications-misuse-tags.png",
      "contentUrl": "https://joost.blog/og/research-wordpress-publications-misuse-tags.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/rise-architect/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "The death of Code Copyright (and the rise of the Architect)",
          "item": {
            "@id": "https://joost.blog/rise-architect/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/rise-architect/",
      "url": "https://joost.blog/rise-architect/",
      "name": "The death of Code Copyright (and the rise of the Architect)",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/rise-architect/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/rise-architect/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/rise-architect/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-12-21T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/rise-architect/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/rise-architect/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "The death of Code Copyright (and the rise of the Architect)",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/rise-architect/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/rise-architect/#primaryimage"
      },
      "description": "We are witnessing a strange paradox in software development. Thanks to AI code generation, more open source code is being created today than ever before. Yet, s",
      "inLanguage": "en-US",
      "datePublished": "2025-12-21T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "Development",
      "wordCount": 811
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/rise-architect/#primaryimage",
      "url": "https://joost.blog/og/rise-architect.png",
      "contentUrl": "https://joost.blog/og/rise-architect.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Yoast",
          "item": "https://joost.blog/blog/category/yoast/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Saying goodbye to Marieke at Yoast",
          "item": {
            "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/",
      "url": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/",
      "name": "Saying goodbye to Marieke at Yoast",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/saying-goodbye-to-marieke-at-yoast/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2023-06-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Saying goodbye to Marieke at Yoast",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/#primaryimage"
      },
      "description": "Last Friday (June 23rd 2023) we had Marieke‘s goodbye party from Yoast. With that, we’ve both completely stepped out at both Yoast and Newfold Digital, and can",
      "inLanguage": "en-US",
      "datePublished": "2023-06-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023,
      "articleSection": "Yoast",
      "wordCount": 840
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/saying-goodbye-to-marieke-at-yoast/#primaryimage",
      "url": "https://joost.blog/og/saying-goodbye-to-marieke-at-yoast.png",
      "contentUrl": "https://joost.blog/og/saying-goodbye-to-marieke-at-yoast.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/seo-graph/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Shipping pieces of the machine-readable web",
          "item": {
            "@id": "https://joost.blog/seo-graph/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/seo-graph/",
      "url": "https://joost.blog/seo-graph/",
      "name": "Shipping pieces of the machine-readable web",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/seo-graph/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/seo-graph/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/seo-graph/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-04-10T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/seo-graph/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/seo-graph/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Shipping pieces of the machine-readable web",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/seo-graph/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/seo-graph/#primaryimage"
      },
      "description": "I've been arguing that the next open web needs machine-readable architecture. So I built a piece: seo-graph, a schema.org JSON-LD graph engine that now powers four sites and a CMS plugin. Built in a single session with Claude Code.",
      "inLanguage": "en-US",
      "datePublished": "2026-04-10T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Development",
      "wordCount": 1361
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/seo-graph/#primaryimage",
      "url": "https://joost.blog/og/seo-graph.png",
      "contentUrl": "https://joost.blog/og/seo-graph.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/social-schema-images-naming-considerations/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Social & Schema images: naming considerations",
          "item": {
            "@id": "https://joost.blog/social-schema-images-naming-considerations/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/social-schema-images-naming-considerations/",
      "url": "https://joost.blog/social-schema-images-naming-considerations/",
      "name": "Social & Schema images: naming considerations",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/social-schema-images-naming-considerations/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/social-schema-images-naming-considerations/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/social-schema-images-naming-considerations/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2022-07-06T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/social-schema-images-naming-considerations/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/social-schema-images-naming-considerations/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Social & Schema images: naming considerations",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/social-schema-images-naming-considerations/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/social-schema-images-naming-considerations/#primaryimage"
      },
      "description": "I’ve been playing a lot with Schema and Social images recently and one thing has become clear: we need better naming of these images and we should probably impr",
      "inLanguage": "en-US",
      "datePublished": "2022-07-06T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022,
      "articleSection": "SEO",
      "wordCount": 605
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/social-schema-images-naming-considerations/#primaryimage",
      "url": "https://joost.blog/og/social-schema-images-naming-considerations.png",
      "contentUrl": "https://joost.blog/og/social-schema-images-naming-considerations.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/stepping-down-at-yoast/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Yoast",
          "item": "https://joost.blog/blog/category/yoast/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Stepping “down” at Yoast",
          "item": {
            "@id": "https://joost.blog/stepping-down-at-yoast/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/stepping-down-at-yoast/",
      "url": "https://joost.blog/stepping-down-at-yoast/",
      "name": "Stepping “down” at Yoast",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/stepping-down-at-yoast/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/stepping-down-at-yoast/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/stepping-down-at-yoast/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2019-01-24T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/stepping-down-at-yoast/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/stepping-down-at-yoast/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Stepping “down” at Yoast",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/stepping-down-at-yoast/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/stepping-down-at-yoast/#primaryimage"
      },
      "description": "Today we’ve announced that Marieke is the new CEO at Yoast, and I’m stepping down. With me recently stepping up as Marketing & Communications Lead for WordPress",
      "inLanguage": "en-US",
      "datePublished": "2019-01-24T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019,
      "articleSection": "Yoast",
      "wordCount": 352
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/stepping-down-at-yoast/#primaryimage",
      "url": "https://joost.blog/og/stepping-down-at-yoast.png",
      "contentUrl": "https://joost.blog/og/stepping-down-at-yoast.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/tailwind-paradox/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "The Tailwind paradox: the high price of “enough”",
          "item": {
            "@id": "https://joost.blog/tailwind-paradox/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/tailwind-paradox/",
      "url": "https://joost.blog/tailwind-paradox/",
      "name": "The Tailwind paradox: the high price of “enough”",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/tailwind-paradox/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/tailwind-paradox/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/tailwind-paradox/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-01-11T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/tailwind-paradox/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/tailwind-paradox/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "The Tailwind paradox: the high price of “enough”",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/tailwind-paradox/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/tailwind-paradox/#primaryimage"
      },
      "description": "The news hit the developer community like a cold bucket of water. Adam Wathan, the creator of Tailwind CSS, recently announced that he had to lay off 75% of his",
      "inLanguage": "en-US",
      "datePublished": "2026-01-11T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "Development",
      "wordCount": 880
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/tailwind-paradox/#primaryimage",
      "url": "https://joost.blog/og/tailwind-paradox.png",
      "contentUrl": "https://joost.blog/og/tailwind-paradox.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "After WCUS 2018: WordPress & Gutenberg FAQ",
          "item": {
            "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/",
      "url": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/",
      "name": "After WCUS 2018: WordPress & Gutenberg FAQ",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2018-12-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2018
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "After WCUS 2018: WordPress & Gutenberg FAQ",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/#primaryimage"
      },
      "description": "I just came back from WordCamp US in Nashville, which was awesome. In this post I want to address some of the questions I’ve had a couple of times. So here we g",
      "inLanguage": "en-US",
      "datePublished": "2018-12-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2018,
      "articleSection": "WordPress",
      "wordCount": 799
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/the-after-wcus-wordpress-gutenberg-faq/#primaryimage",
      "url": "https://joost.blog/og/the-after-wcus-wordpress-gutenberg-faq.png",
      "contentUrl": "https://joost.blog/og/the-after-wcus-wordpress-gutenberg-faq.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Transparency, Contribution, and the Future of WordPress",
          "item": {
            "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/",
      "url": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/",
      "name": "Transparency, Contribution, and the Future of WordPress",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-09-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Transparency, Contribution, and the Future of WordPress",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/#primaryimage"
      },
      "description": "When we sold Yoast to Newfold in 2021, I quickly learned we had been incredibly naive. While at Yoast, I hadn’t realized how many deals were made between big co",
      "inLanguage": "en-US",
      "datePublished": "2024-09-26T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "WordPress",
      "wordCount": 1049
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/transparency-contribution-and-the-future-of-wordpress/#primaryimage",
      "url": "https://joost.blog/og/transparency-contribution-and-the-future-of-wordpress.png",
      "contentUrl": "https://joost.blog/og/transparency-contribution-and-the-future-of-wordpress.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/traveling-to-peru/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Travel",
          "item": "https://joost.blog/blog/category/travel/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Traveling to Peru",
          "item": {
            "@id": "https://joost.blog/traveling-to-peru/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/traveling-to-peru/",
      "url": "https://joost.blog/traveling-to-peru/",
      "name": "Traveling to Peru",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/traveling-to-peru/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/traveling-to-peru/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/traveling-to-peru/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2019-06-17T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/traveling-to-peru/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/traveling-to-peru/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Traveling to Peru",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/traveling-to-peru/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/traveling-to-peru/#primaryimage"
      },
      "description": "At the end of April, beginning of May, 2019, Marieke and I visited Peru with our kids. The main reason for going to Peru was to attend the wedding of two of our",
      "inLanguage": "en-US",
      "datePublished": "2019-06-17T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019,
      "articleSection": "Travel",
      "wordCount": 437
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/traveling-to-peru/#primaryimage",
      "url": "https://joost.blog/og/traveling-to-peru.png",
      "contentUrl": "https://joost.blog/og/traveling-to-peru.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "SEO",
          "item": "https://joost.blog/blog/category/seo/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "The unintended consequences of making SEO “for everyone”",
          "item": {
            "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/",
      "url": "https://joost.blog/unintended-consequences-seo-for-everyone/",
      "name": "The unintended consequences of making SEO “for everyone”",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/unintended-consequences-seo-for-everyone/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-04-22T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "The unintended consequences of making SEO “for everyone”",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/#primaryimage"
      },
      "description": "At Yoast, we had one mission: make SEO easier. For a long time, SEO for everyone was Yoast’s tagline, and we meant it. We helped millions of people optimize the",
      "inLanguage": "en-US",
      "datePublished": "2025-04-22T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "SEO",
      "wordCount": 872
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/unintended-consequences-seo-for-everyone/#primaryimage",
      "url": "https://joost.blog/og/unintended-consequences-seo-for-everyone.png",
      "contentUrl": "https://joost.blog/og/unintended-consequences-seo-for-everyone.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/use-avif-webp-share-images/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Can I safely use AVIF or WebP share images?",
          "item": {
            "@id": "https://joost.blog/use-avif-webp-share-images/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/use-avif-webp-share-images/",
      "url": "https://joost.blog/use-avif-webp-share-images/",
      "name": "Can I safely use AVIF or WebP share images?",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/use-avif-webp-share-images/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/use-avif-webp-share-images/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/use-avif-webp-share-images/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-12-04T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/use-avif-webp-share-images/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/use-avif-webp-share-images/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Can I safely use AVIF or WebP share images?",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/use-avif-webp-share-images/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/use-avif-webp-share-images/#primaryimage"
      },
      "description": "AVIF and WebP are efficient image storage formats. They are smaller than their predecessors, PNG, JPG, and GIF. This leads to smaller images, which means faster",
      "inLanguage": "en-US",
      "datePublished": "2024-12-04T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Development",
      "wordCount": 665
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/use-avif-webp-share-images/#primaryimage",
      "url": "https://joost.blog/og/use-avif-webp-share-images.png",
      "contentUrl": "https://joost.blog/og/use-avif-webp-share-images.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/vibe-coding-trap-design-system/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Vibe coding is a trap: why WordPress needs a design system NOW",
          "item": {
            "@id": "https://joost.blog/vibe-coding-trap-design-system/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/vibe-coding-trap-design-system/",
      "url": "https://joost.blog/vibe-coding-trap-design-system/",
      "name": "Vibe coding is a trap: why WordPress needs a design system NOW",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/vibe-coding-trap-design-system/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/vibe-coding-trap-design-system/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/vibe-coding-trap-design-system/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-12-23T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/vibe-coding-trap-design-system/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/vibe-coding-trap-design-system/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Vibe coding is a trap: why WordPress needs a design system NOW",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/vibe-coding-trap-design-system/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/vibe-coding-trap-design-system/#primaryimage"
      },
      "description": "In my last post, I argued that WordPress needs to become a “Base AI”: a structured foundation that AI can understand and build upon. Before that, I wrote about",
      "inLanguage": "en-US",
      "datePublished": "2025-12-23T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "Development",
      "wordCount": 653
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/vibe-coding-trap-design-system/#primaryimage",
      "url": "https://joost.blog/og/vibe-coding-trap-design-system.png",
      "contentUrl": "https://joost.blog/og/vibe-coding-trap-design-system.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "(Why) I’m stepping down from my WordPress marketing role",
          "item": {
            "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/",
      "url": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/",
      "name": "(Why) I’m stepping down from my WordPress marketing role",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2019-06-05T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "(Why) I’m stepping down from my WordPress marketing role",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/#primaryimage"
      },
      "description": "I’m going to step away from my role as Marketing Lead. I consider this mostly a personal failure, both in correctly setting and getting expectations and in fitt",
      "inLanguage": "en-US",
      "datePublished": "2019-06-05T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2019,
      "articleSection": "WordPress",
      "wordCount": 874
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/why-im-stepping-down-from-my-wordpress-marketing-role/#primaryimage",
      "url": "https://joost.blog/og/why-im-stepping-down-from-my-wordpress-marketing-role.png",
      "contentUrl": "https://joost.blog/og/why-im-stepping-down-from-my-wordpress-marketing-role.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "WordPress 5.0 needs a different timeline",
          "item": {
            "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/",
      "url": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/",
      "name": "WordPress 5.0 needs a different timeline",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/wordpress-5-0-needs-a-different-timeline/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2018-11-06T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2018
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "WordPress 5.0 needs a different timeline",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/#primaryimage"
      },
      "description": "For the last few months, the WordPress developer community has been moving towards a release of WordPress 5.0. This is the highly anticipated release that will",
      "inLanguage": "en-US",
      "datePublished": "2018-11-06T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2018,
      "articleSection": "WordPress",
      "wordCount": 620
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/wordpress-5-0-needs-a-different-timeline/#primaryimage",
      "url": "https://joost.blog/og/wordpress-5-0-needs-a-different-timeline.png",
      "contentUrl": "https://joost.blog/og/wordpress-5-0-needs-a-different-timeline.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "WordPress’ admin UI needs to be better",
          "item": {
            "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/",
      "url": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/",
      "name": "WordPress’ admin UI needs to be better",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/wordpress-admin-ui-needs-to-be-better/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2023-01-25T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "WordPress’ admin UI needs to be better",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/#primaryimage"
      },
      "description": "The WordPress’ admin UI needs to be drastically improved. It should be improved not just for WordPress core itself, but it should implement a simple and clearly",
      "inLanguage": "en-US",
      "datePublished": "2023-01-25T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2023,
      "articleSection": "WordPress",
      "wordCount": 582
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/wordpress-admin-ui-needs-to-be-better/#primaryimage",
      "url": "https://joost.blog/og/wordpress-admin-ui-needs-to-be-better.png",
      "contentUrl": "https://joost.blog/og/wordpress-admin-ui-needs-to-be-better.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/wordpress-architecture-base-ai/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Development",
          "item": "https://joost.blog/blog/category/development/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "The generalization tax: why WordPress is still the smart architectural base",
          "item": {
            "@id": "https://joost.blog/wordpress-architecture-base-ai/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/wordpress-architecture-base-ai/",
      "url": "https://joost.blog/wordpress-architecture-base-ai/",
      "name": "The generalization tax: why WordPress is still the smart architectural base",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/wordpress-architecture-base-ai/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/wordpress-architecture-base-ai/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/wordpress-architecture-base-ai/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-12-22T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/wordpress-architecture-base-ai/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/wordpress-architecture-base-ai/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "The generalization tax: why WordPress is still the smart architectural base",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/wordpress-architecture-base-ai/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/wordpress-architecture-base-ai/#primaryimage"
      },
      "description": "In my previous post, I discussed the demise of code copyright and mentioned what Dries referred to as the generalization tax. This had me thinking more about wh",
      "inLanguage": "en-US",
      "datePublished": "2025-12-22T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "Development",
      "wordCount": 665
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/wordpress-architecture-base-ai/#primaryimage",
      "url": "https://joost.blog/og/wordpress-architecture-base-ai.png",
      "contentUrl": "https://joost.blog/og/wordpress-architecture-base-ai.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "WordPress comments, cookies and caching",
          "item": {
            "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/",
      "url": "https://joost.blog/wordpress-comment-cookies-and-caching/",
      "name": "WordPress comments, cookies and caching",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/wordpress-comment-cookies-and-caching/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2025-01-01T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "WordPress comments, cookies and caching",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/#primaryimage"
      },
      "description": "This post explains how WordPress uses comment cookies and why that is detrimental to your site’s caching. It then shows you how to fix this.",
      "inLanguage": "en-US",
      "datePublished": "2025-01-01T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2025,
      "articleSection": "WordPress",
      "wordCount": 1427
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/wordpress-comment-cookies-and-caching/#primaryimage",
      "url": "https://joost.blog/og/wordpress-comment-cookies-and-caching.png",
      "contentUrl": "https://joost.blog/og/wordpress-comment-cookies-and-caching.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/wordpress-leadership/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Breaking the Status Quo",
          "item": {
            "@id": "https://joost.blog/wordpress-leadership/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/wordpress-leadership/",
      "url": "https://joost.blog/wordpress-leadership/",
      "name": "Breaking the Status Quo",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/wordpress-leadership/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/wordpress-leadership/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/wordpress-leadership/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-12-20T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/wordpress-leadership/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/wordpress-leadership/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Breaking the Status Quo",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/wordpress-leadership/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/wordpress-leadership/#primaryimage"
      },
      "description": "WordPress is at a crossroads, now even more clearly then when I wrote my previous post on WordPress’s roadmap. I had very much intended to leave this topic alon",
      "inLanguage": "en-US",
      "datePublished": "2024-12-20T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "WordPress",
      "wordCount": 1620
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/wordpress-leadership/#primaryimage",
      "url": "https://joost.blog/og/wordpress-leadership.png",
      "contentUrl": "https://joost.blog/og/wordpress-leadership.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/wordpress-market-share-shrinking/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Market Share Analysis",
          "item": "https://joost.blog/blog/category/market-share-analysis/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "WordPress’ market share is shrinking",
          "item": {
            "@id": "https://joost.blog/wordpress-market-share-shrinking/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/wordpress-market-share-shrinking/",
      "url": "https://joost.blog/wordpress-market-share-shrinking/",
      "name": "WordPress’ market share is shrinking",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/wordpress-market-share-shrinking/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/wordpress-market-share-shrinking/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/wordpress-market-share-shrinking/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2022-05-11T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/wordpress-market-share-shrinking/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/wordpress-market-share-shrinking/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "WordPress’ market share is shrinking",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/wordpress-market-share-shrinking/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/wordpress-market-share-shrinking/#primaryimage"
      },
      "description": "There’s no more denying it: if you look at W3Techs CMS market share numbers, WordPress’ market share is shrinking, losing 0.4% market share since February. I do",
      "inLanguage": "en-US",
      "datePublished": "2022-05-11T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2022,
      "articleSection": "Market Share Analysis",
      "wordCount": 936
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/wordpress-market-share-shrinking/#primaryimage",
      "url": "https://joost.blog/og/wordpress-market-share-shrinking.png",
      "contentUrl": "https://joost.blog/og/wordpress-market-share-shrinking.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/wordpress-needs-more-dev-rel/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "WordPress needs more dev-rel",
          "item": {
            "@id": "https://joost.blog/wordpress-needs-more-dev-rel/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/wordpress-needs-more-dev-rel/",
      "url": "https://joost.blog/wordpress-needs-more-dev-rel/",
      "name": "WordPress needs more dev-rel",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/wordpress-needs-more-dev-rel/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/wordpress-needs-more-dev-rel/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/wordpress-needs-more-dev-rel/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-01-01T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/wordpress-needs-more-dev-rel/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/wordpress-needs-more-dev-rel/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "WordPress needs more dev-rel",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/wordpress-needs-more-dev-rel/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/wordpress-needs-more-dev-rel/#primaryimage"
      },
      "description": "The WordPress ecosystem is very good at talking to each other. We do so on platforms like the official WordPress Slack, Post Status, Twitter, and many other pla",
      "inLanguage": "en-US",
      "datePublished": "2024-01-01T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "WordPress",
      "wordCount": 479
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/wordpress-needs-more-dev-rel/#primaryimage",
      "url": "https://joost.blog/og/wordpress-needs-more-dev-rel.png",
      "contentUrl": "https://joost.blog/og/wordpress-needs-more-dev-rel.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/wordpress-refactor-not-redecorate/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "WordPress",
          "item": "https://joost.blog/blog/category/wordpress/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "WordPress needs to refactor, not redecorate",
          "item": {
            "@id": "https://joost.blog/wordpress-refactor-not-redecorate/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/wordpress-refactor-not-redecorate/",
      "url": "https://joost.blog/wordpress-refactor-not-redecorate/",
      "name": "WordPress needs to refactor, not redecorate",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/wordpress-refactor-not-redecorate/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/wordpress-refactor-not-redecorate/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/wordpress-refactor-not-redecorate/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-04-03T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/wordpress-refactor-not-redecorate/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/wordpress-refactor-not-redecorate/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "WordPress needs to refactor, not redecorate",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/wordpress-refactor-not-redecorate/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/wordpress-refactor-not-redecorate/#primaryimage"
      },
      "description": "WordPress's deepest problems aren't cosmetic, they're architectural. The responses to EmDash from Matt Mullenweg, Hendrik Luehrsen, and Brian Coords crystallize what needs to change: the data model, content storage, and plugin permissions.",
      "inLanguage": "en-US",
      "datePublished": "2026-04-03T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2026,
      "articleSection": "WordPress",
      "wordCount": 2331
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/wordpress-refactor-not-redecorate/#primaryimage",
      "url": "https://joost.blog/og/wordpress-refactor-not-redecorate.png",
      "contentUrl": "https://joost.blog/og/wordpress-refactor-not-redecorate.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/wordpress-roadmap/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Market Share Analysis",
          "item": "https://joost.blog/blog/category/market-share-analysis/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "WordPress, and what should be on its roadmap",
          "item": {
            "@id": "https://joost.blog/wordpress-roadmap/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/wordpress-roadmap/",
      "url": "https://joost.blog/wordpress-roadmap/",
      "name": "WordPress, and what should be on its roadmap",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/wordpress-roadmap/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/wordpress-roadmap/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/wordpress-roadmap/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2024-12-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/wordpress-roadmap/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/wordpress-roadmap/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "WordPress, and what should be on its roadmap",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/wordpress-roadmap/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/wordpress-roadmap/#primaryimage"
      },
      "description": "I was reading Hendrik Luehrsen’s excellent post “WordPress isn’t WordPress anymore“, and I decided I had to write more about this. I recently spoke at WordCamp",
      "inLanguage": "en-US",
      "datePublished": "2024-12-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2024,
      "articleSection": "Market Share Analysis",
      "wordCount": 1686
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/wordpress-roadmap/#primaryimage",
      "url": "https://joost.blog/og/wordpress-roadmap.png",
      "contentUrl": "https://joost.blog/og/wordpress-roadmap.png",
      "width": 1200,
      "height": 630
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://joost.blog/yoast-joins-newfold/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://joost.blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": {
            "@id": "https://joost.blog/blog/#blog"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Yoast",
          "item": "https://joost.blog/blog/category/yoast/"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Yoast joins Newfold",
          "item": {
            "@id": "https://joost.blog/yoast-joins-newfold/"
          }
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://joost.blog/yoast-joins-newfold/",
      "url": "https://joost.blog/yoast-joins-newfold/",
      "name": "Yoast joins Newfold",
      "isPartOf": {
        "@id": "https://joost.blog/#/schema.org/WebSite"
      },
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://joost.blog/yoast-joins-newfold/"
          ]
        }
      ],
      "breadcrumb": {
        "@id": "https://joost.blog/yoast-joins-newfold/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://joost.blog/yoast-joins-newfold/#primaryimage"
      },
      "inLanguage": "en-US",
      "datePublished": "2021-08-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2021
    },
    {
      "@type": "BlogPosting",
      "@id": "https://joost.blog/yoast-joins-newfold/#article",
      "isPartOf": [
        {
          "@id": "https://joost.blog/yoast-joins-newfold/"
        },
        {
          "@id": "https://joost.blog/blog/#blog"
        }
      ],
      "author": {
        "name": "Joost de Valk",
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "headline": "Yoast joins Newfold",
      "mainEntityOfPage": {
        "@id": "https://joost.blog/yoast-joins-newfold/"
      },
      "publisher": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "image": {
        "@id": "https://joost.blog/yoast-joins-newfold/#primaryimage"
      },
      "description": "Today we announced that Yoast will join Newfold Digital. Marieke and myself, as well as Omar, Chaya and Thijs have sold our shares. We will, however, all remain",
      "inLanguage": "en-US",
      "datePublished": "2021-08-12T00:00:00.000Z",
      "copyrightHolder": {
        "@id": "https://joost.blog/about-me/#/schema.org/Person"
      },
      "copyrightYear": 2021,
      "articleSection": "Yoast",
      "wordCount": 451
    },
    {
      "@type": "ImageObject",
      "@id": "https://joost.blog/yoast-joins-newfold/#primaryimage",
      "url": "https://joost.blog/og/yoast-joins-newfold.png",
      "contentUrl": "https://joost.blog/og/yoast-joins-newfold.png",
      "width": 1200,
      "height": 630
    }
  ]
}