s://weston.ruter.net/category/wordpress/feed/#demos\">demos below</a> for the impact this has on browsing.</p>\n\n\n\n<p>The speed of page navigations in WordPress has seen a big boost in 6.8 with the introduction of <a href=\"https://make.wordpress.org/core/2025/03/06/speculative-loading-in-6-8/\">Speculative Loading</a>. When paired with the original <a href=\"https://wordpress.org/plugins/speculation-rules/\">feature plugin</a>, site visitors can experience instant page navigations thanks to its opt-ins for prerendering and “moderate eagerness”. However, WordPress does not enable such instant navigations by default. WordPress core must take a conservative approach since prerendering may cause compatibility problems, like with analytics or ads. There is also a sustainability concern with moderate prerendering since a user may momentarily hover over a link but not intend to follow it at all; this results in an unused prerender, which can waste a user&#8217;s bandwidth (and CPU to a limited extent) as well as increase the load on the web server (which can be problematic on shared hosts without page caching). Furthermore, even when prerendering is enabled, not all visitors may be able to experience instant page loads because: </p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Moderate eagerness is limited on mobile devices (where there is no hover heuristic on touch screens).</li>\n\n\n\n<li>Speculative Loading is not enabled when a user is logged in. (<strong>Updates:</strong> See <a href=\"https://github.com/WordPress/performance/pull/2097\">PR</a> which introduces a frontend opt-in, and the <a href=\"https://github.com/westonruter/speculative-loading-admin\">Speculative Loading Admin</a> plugin for a backend opt-in.)</li>\n\n\n\n<li>The Speculation Rules API is currently only <a href=\"https://caniuse.com/mdn-html_elements_script_type_speculationrules\">supported</a> in Chromium, leaving Safari and Firefox users out.</li>\n</ol>\n\n\n\n<p>Nevertheless, there is a much older web platform technology that enables “prerendering” <em>and</em> which is supported in all browsers: the <a href=\"https://developer.mozilla.org/en-US/docs/Glossary/bfcache\">back/forward cache</a> (bfcache). This instant page navigation involves no network traffic and no CPU load. Previously visited pages are stored in memory as a snapshot with their entire state so that they can be restored instantly. Navigating to pages stored in bfcache is as fast as switching open browser tabs.</p>\n\n\n\n<p>Back/forward history navigations are very common, as according to the <a href=\"https://web.dev/articles/bfcache\">web.dev article</a> on bfcache:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Chrome usage data shows that 1 in 10 navigations on desktop and 1 in 5 on mobile are either back or forward. With bfcache enabled, browsers could eliminate the data transfer and time spent loading for billions of web pages every single day!</p>\n</blockquote>\n\n\n\n<p>Also learn more via the <a href=\"https://youtu.be/Y2IVv5KnrmI\">following video</a>:</p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n\n\n\n<p>While Speculative Loading enables prerendering, bfcache involves “pre<em>vious</em>-rendering”.</p>\n\n\n\n<p>The good news is that 84% of WordPress origins in <a href=\"https://httparchive.org/\">HTTP Archive</a> are already bfcache-eligible (based on <a href=\"https://gist.github.com/gilbertococchi/083c1516149cf5f70b103451d1790cbc\">this query</a> from <a href=\"https://github.com/gilbertococchi\">Gilberto Cocchi</a>). <strong>However, the most frequent user of your site may still not be able to experience instant page navigations via bfcache: <em>you!</em></strong> While browsing around the WP Admin and navigating the frontend of your site, the pages most likely aren&#8217;t eligible for bfcache due to various <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/Monitoring_bfcache_blocking_reasons#blocking_reasons\">blocking reasons</a>. This sluggish experience extends not only to administrators but also to users of sites which require authentication, including e-commerce (e.g. WooCommerce), social (e.g. BuddyPress), and any membership sites. The 84% metric above doesn&#8217;t take into account these types of WordPress sites since HTTP Archive exclusively crawls public URLs without authentication. Users browsing WordPress sites on shared hosts or when on a slow connection will be especially frustrated by slow back/forward navigations. Enabling instant back/forward navigations will not only make your users happier (especially you), but it can also improve your <abbr title=\"Core Web Vitals\">CWV</abbr> passing rate <a href=\"https://developer.chrome.com/blog/crux-navigation-types\">in <abbr title=\"Chrome User Experience Report\">CrUX</abbr></a>.</p>\n\n\n\n<p>I&#8217;ve been on a mission to bring back bfcache (or rather to bring it forward).</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"stale-content-in-page-caches\">Stale Content in Page Caches</h2>\n\n\n\n<p>Before going further, I wanted to call out a potentially negative consequence of navigating cached pages. While instant back/forward navigations can provide a big performance boost to the user experience, they can also be a source of confusion when navigating to a cached page with stale content. </p>\n\n\n\n<p>Consider the case of an e-commerce site, where a user is on the shopping cart page. From there, they click a link to a related product, and from that product page they add it to the cart dynamically (e.g. via Ajax). At this point, if they hit the back button to return to the cart page and the cart is restored from a page cache, they may not see the newly added product in the cart. A user can simply reload the page to fix this, but this can also be handled automatically. </p>\n\n\n\n<p>As described in the “<a href=\"https://web.dev/articles/bfcache#update-data-after-restore\">Update stale or sensitive data after bfcache restore</a>” section of the web.dev post, the <code>pageshow</code> event with the <code>persisted</code> property (further <a href=\"https://weston.ruter.net/category/wordpress/feed/#jit-page-cache-invalidation\">discussed</a> below) indicates when a page was restored from bfcache. This event can be used to update the DOM with the latest shopping cart details. In fact, WooCommerce already <a href=\"https://github.com/woocommerce/woocommerce/blob/47845a498f0918a90d60ab3adca204d13a712cde/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/cart/use-store-cart-event-listeners.ts#L40-L50\">implements this</a> for its cart:</p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-typescript\"><span class=\"hljs-keyword\">const</span> refreshCachedCartData = ( event: PageTransitionEvent ): <span class=\"hljs-function\"><span class=\"hljs-params\">void</span> =&gt;</span> {\n	<span class=\"hljs-keyword\">if</span> ( event?.persisted || getNavigationType() === <span class=\"hljs-string\">\'back_forward\'</span> ) {\n		dispatch( cartStore ).invalidateResolutionForStore();\n	}\n};\n<span class=\"hljs-comment\">/* ... */</span>\n<span class=\"hljs-built_in\">window</span>.addEventListener( <span class=\"hljs-string\">\'pageshow\'</span>, refreshCachedCartData );</code></span></pre>\n\n\n<p>Simply searching a plugin&#8217;s codebase for “pageshow” (e.g. <a href=\"https://github.com/search?q=repo%3Awoocommerce%2Fwoocommerce%20pageshow&amp;type=code\">in Woo</a>) should indicate whether bfcache navigations are accounted for. </p>\n\n\n\n<p>Note also that stale content is also an issue <a href=\"https://github.com/WordPress/performance/issues/1774\">we&#8217;ve faced</a> with Speculative Loading, especially when using non-conservative eagerness.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Breaking Caching to Preserve Privacy</h2>\n\n\n\n<p>My bfcache work began two years ago when I started collaborating on <a href=\"https://core.trac.wordpress.org/ticket/55491\">#55491</a> to eliminate the use of the <a href=\"https://developer.chrome.com/docs/web-platform/deprecating-unload\">deprecated</a> <code>unload</code> event handler in WordPress core. Not only does this event fire unreliably, but it also has the side effect of making a page <a href=\"https://web.dev/articles/bfcache#never-use-the-unload-event\">ineligible for bfcache</a> via the “<a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/Monitoring_bfcache_blocking_reasons#unload-listener\">unload-listener</a>” blocking reason. I had <a href=\"https://github.com/GoogleChromeLabs/wpp-research/pull/75\">queried</a> HTTP Archive myself at the time, and I found it to be the second most common blocking reason. So in <a href=\"https://core.trac.wordpress.org/changeset/56809\">r56809</a> we eliminated all uses of <code>unload</code>, including from:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Heartbeat API</li>\n\n\n\n<li>Post locking in the classic editor</li>\n\n\n\n<li>Post previews</li>\n</ul>\n\n\n\n<p>However, even with the use of <code>unload</code> eliminated, I was confused why I wasn&#8217;t finding pages to be eligible for bfcache in my testing. (The removal of <code>unload</code> in core likely didn&#8217;t make a dent in bfcache eligibility in HTTP Archive since only <a href=\"https://github.com/GoogleChromeLabs/wpp-research/pull/75#:~:text=Lastly%2C%20in%20heartbeat%2Dscript%2Dpresence.sql%20I%20check%20to%20see%20how%20common%20the%20Heartbeat%20script%20actually%20is%3A\">0.25%</a> of unauthenticated pages had the Heartbeat API present.) It turns out that several weeks before I started working on this, a <a href=\"https://core.trac.wordpress.org/changeset/55968\">commit</a> had landed which <em>intentionally</em> broke browser page caching (both bfcache and HTTP cache): the <code>no-store</code> directive was added to the <code>Cache-Control</code> response header for logged-in users. (Specifically, this was added to the <code><a href=\"https://developer.wordpress.org/reference/functions/wp_get_nocache_headers/\">wp_get_nocache_headers()</a></code> function.) This introduced the “<a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/Monitoring_bfcache_blocking_reasons#response-cache-control-no-store\">response-cache-control-no-store</a>” bfcache blocking reason, which was actually the <a href=\"https://github.com/GoogleChromeLabs/wpp-research/pull/75#:~:text=Pages%20whose%20main%20resource%20has%20cache%2Dcontrol%3Ano%2Dstore%20cannot%20enter%20back/forward%20cache.\">most common reason for ineligibility</a>, just above <code>unload</code> in my HTTP Archive query. The reason for adding this is found in <a href=\"https://core.trac.wordpress.org/ticket/21938\">#21938</a> which proposed adding the <code>no-store</code> directive in order to explicitly <em>disable</em> caching so that authenticated pages do not get stored in the browser cache. This was followed up with <a href=\"https://core.trac.wordpress.org/ticket/61942\">#61942</a> to also send <code>no-store</code> on the frontend while a user is logged in. The rationale for this is rooted in privacy, per the commit message:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The intention behind this change is to prevent sensitive data in responses for logged in users being cached and available to others, for example via the browser history after the user logs out.</p>\n</blockquote>\n\n\n\n<p>Consider an administrator who is logged in to WordPress on a shared computer and is working on something sensitive, like managing API keys on an admin screen. A malicious person could navigate back to that admin screen via the back button after the user had logged out. Nevertheless, the “bad guy” will need to act fast because a browser won&#8217;t store cached pages indefinitely; Chrome, for example, holds onto pages in bfcache for <a href=\"https://developer.chrome.com/docs/web-platform/bfcache-ccns#:~:text=The%20bfcache%20timeout%20for%20Cache%2DControl%3A%20no%2Dstore%20pages%20is%20also%20reduced%20to%203%20minutes%20(from%2010%20minutes%20used%20for%20pages%20which%20don%27t%20use%20Cache%2DControl%3A%20no%2Dstore)%20to%20further%20reduce%20risk.\">10 minutes</a>. (Tip: When using a shared computer, always exit the browser after logging out of all sites when ending work.) So while <code>no-store</code> here does improve privacy, it does so at the expense of the user experience by degrading the performance of back/forward navigations. Even when pages aren&#8217;t eligible for bfcache, removing <code>no-store</code> still improves back/forward navigation performance since pages can be served from the browser&#8217;s HTTP cache (although the DOM has to be re-built and scripts have to be re-executed).</p>\n\n\n\n<p><strong>Surely there must be a way to preserve privacy and promote performance together.</strong></p>\n\n\n\n<p>It&#8217;s important to note that the <code>no-store</code> directive not only prevents pages from being cached by the browser, but it also preserves privacy by preventing proxies from caching pages, per <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control#no-store\">MDN</a>:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The <code>no-store</code> response directive indicates that any caches of any kind (private or shared) should not store this response.  </p>\n</blockquote>\n\n\n\n<p>Keeping authenticated pages out of page caches prevents embarrassing scenarios like serving a user the shopping cart page for another user. Nevertheless, there is a more tailored <code>Cache-Control</code> mechanism for this purpose: the <code>private</code> directive. Again, per <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control#private\">MDN</a>:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The private response directive indicates that the response can be stored only in a private cache (e.g., local caches in browsers). ¶ You should add the private directive for user-personalized content, especially for responses received after login and for sessions managed via cookies. ¶ If you forget to add private to a response with personalized content, then that response can be stored in a shared cache and end up being reused for multiple users, which can cause personal information to leak.</p>\n</blockquote>\n\n\n\n<p>This is what was originally requested in <a href=\"https://core.trac.wordpress.org/ticket/57627\">#57627</a>, but both <code>private</code> and <code>no-store</code> were added together, with the <a href=\"https://core.trac.wordpress.org/changeset/55968\">commit</a> message reasoning:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The <code>private</code> directive complements the <code>no-store</code> directive by specifying that the response contains private information that should not be stored in a public cache. Some proxy caches may ignore the <code>no-store</code> directive but respect the <code>private</code> directive, thus it is included.</p>\n</blockquote>\n\n\n\n<p>So how can the <code>private</code> directive be retained for proxies, while removing the <code>no-store</code> directive so that a user can benefit from browser caching but not at the expense of privacy?</p>\n\n\n\n<h2 class=\"wp-block-heading\">Preserving Privacy while Caching</h2>\n\n\n\n<p>In order to omit the <code>no-store</code> directive and enable instant back/forward navigations while preserving privacy, a way is needed to evict pages from the browser cache when a user logs out. In my research, there are three mechanisms to do this, with various degrees of browser support.</p>\n\n\n\n<h3 class=\"wp-block-heading\">The <code>Clear-Site-Data</code> Header</h3>\n\n\n\n<p>The most straightforward mechanism to invalidate pages from bfcache would at first seem to be the <code>Clear-Site-Data</code> HTTP response header. This is supposedly Baseline 2023 Newly Available, but there is an asterisk: “Some parts of this feature may have varying levels of support.” Per <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Clear-Site-Data\">MDN</a>, this header “sends a signal to the client that it should remove all browsing data of certain types (cookies, storage, cache) associated with the requesting website.” In fact, the <code>cache</code> directive for this header seems to be exactly what is needed, as it even <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Clear-Site-Data#cache\">explicitly calls</a> out bfcache:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The server signals that the client should remove locally cached data (the browser cache, see <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Caching\">HTTP caching</a>) for the origin of the response URL. Depending on the browser, this might also clear out things like pre-rendered pages, <a href=\"https://developer.mozilla.org/en-US/docs/Glossary/bfcache\">backwards-forwards cache</a>, script caches, WebGL shader caches, or address bar suggestions.</p>\n</blockquote>\n\n\n\n<p>However, note the word “might”. In my testing, sending this header does currently evict pages from bfcache in Chrome. But, there is an <a href=\"https://github.com/w3c/webappsec-clear-site-data/issues/73\">open spec question</a> for whether Clear-Site-Data should clear bfcache; it mentions <a href=\"https://github.com/w3c/webappsec-clear-site-data/issues/68\">dropping</a> the <code>cache</code> directive entirely, and it suggests that a different <code>executionContexts</code> directive may be more appropriate (but its browser support is even worse and it may be <a href=\"https://github.com/w3c/webappsec-clear-site-data/issues/59\">dropped</a> from the spec). Firefox <a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=1671182\">dropped support</a> for the <code>cache</code> directive but then <a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=1930500\">restored</a> it, although in testing it seems Firefox only evicts pages from the HTTP cache and not from bfcache. Finally, Safari doesn&#8217;t seem to evict pages from either the HTTP cache or bfcache when this header is sent. </p>\n\n\n\n<p>When/if browser support for this is improved, implementing eviction of pages from browser caches could be as simple as:</p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-php\">add_action(\n	<span class=\"hljs-string\">\'clear_auth_cookie\'</span>,\n	<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span> <span class=\"hljs-params\">()</span> </span>{\n		header( <span class=\"hljs-string\">\'Clear-Site-Data: \"cache\"\'</span> );\n	}\n);</code></span></pre>\n\n\n<p>Ultimately, while this header seems to be tailor-made for evicting pages from browser caches, it cannot be relied on since it is clearly not widely available in Baseline, and not even “newly available” either. There is also a Chromium bug (<a href=\"https://issues.chromium.org/issues/40233601\">40233601</a>) where sending this header can greatly delay page response times, possibly causing a logout link to take half a minute to respond. The final mark against <code>Clear-Site-Data</code> is that the header requires a secure context (HTTPS), so the WordPress sites still on HTTP could not evict pages from browser caches using this header (although privacy could be the last of their concerns at this point).</p>\n\n\n\n<p>So to preserve privacy, another browser page cache invalidation method is currently needed.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Broadcast Channel</h3>\n\n\n\n<p>Going back to the aforementioned bfcache <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/Monitoring_bfcache_blocking_reasons#blocking_reasons\">blocking reasons</a>, one of them is “<a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/Monitoring_bfcache_blocking_reasons#broadcastchannel-message\">broadcastchannel-message</a>”:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>While the page was stored in back/forward cache, a <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\">BroadcastChannel</a> connection on the page received a message to trigger a <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent\">message</a> event.</p>\n</blockquote>\n\n\n\n<p>I went down a rabbit hole with this one, thinking I could leverage this blocking reason as a bfcache eviction mechanism. In my discarded implementation, all authenticated pages include a script which listens to a broadcast channel such as “auth_change”. Then, to evict authenticated pages from bfcache upon a successful logout (or logging in as another user), a script can be included on the page which simply broadcasts an arbitrary message to this same “auth_change” broadcast channel. This causes the eviction of any authenticated pages in bfcache which are listening to messages from this broadcast channel.</p>\n\n\n\n<p>I was seeing very promising results with this approach, where pages were being successfully evicted from bfcache in Chromium (Chrome/Edge) and Firefox. Nevertheless, eviction was not happening in Safari, which apparently has not yet implemented this blocking reason. <em>However</em>, this approach fell apart once I closed DevTools.</p>\n\n\n\n<p>Normally when DevTools is open I have “Disable cache” checked in the Network panel. This disables the HTTP cache, but not the bfcache. What I would see then is if I navigated around the WP Admin and then logged out in a second tab, hitting the back button in the first tab would immediately take me to the login screen. This is exactly what I wanted. However, once I closed DevTools, I started seeing pages served from the browser&#8217;s HTTP cache when navigating back/forward. Because the <code>no-store</code> directive is removed, this means the browser may actually serve pages from HTTP cache when navigating back/forward, even when the <code>Cache-Control</code> header has <code>no-cache</code>, <code>must-revalidate</code>, and <code>max-age=0</code>. And here, when the user logged out, they shouldn&#8217;t be served from either HTTP cache or bfcache to preserve privacy. So this was not a viable approach in the end.</p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"jit-page-cache-invalidation\">Just-in-time Page Cache Invalidation</h3>\n\n\n\n<p>Ultimately, the most reliable solution I&#8217;ve found to invalidate pages from both bfcache and the HTTP cache is to do so just-in-time with JavaScript: When a page is restored from a browser cache and it is determined to be stale, the page contents are wiped and the page is reloaded. This approach is also referenced in the aforementioned “<a href=\"https://web.dev/articles/bfcache#minimize-no-store\">Update stale or sensitive data after bfcache restore</a>” section on web.dev, although I&#8217;m accounting for pages not only restored from bfcache but also the HTTP cache. </p>\n\n\n\n<p>My implementation involves the creation of a new session token when the user authenticates. This session token is served in the HTML with each authenticated page, and it is also set as a <code>wordpress_​bfcache_​session_​{COOKIEHASH}</code> cookie which can be read by JavaScript. When a user logs out, this session token cookie is cleared. Whenever a page is loaded, the session token in the HTML is compared with the current session token in the cookie. When they don&#8217;t match, then the page is invalidated. If a page is served from bfcache, then the <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event\"><code>pageshow</code> event</a> (with <code>persisted</code> true) is used to do this check; if a page is served from the HTTP cache, then the check is done when the script module is executed. If the user had logged out, then reloading the page will take them to the login screen which, after authenticating, will redirect them back to the page they had been on.</p>\n\n\n\n<p>As this page cache invalidation mechanism depends on JavaScript, scripting must be enabled to be eligible to omit the <code>no-store</code> directive from the <code>Cache-Control</code> header. This JavaScript detection can be done when the user submits the login form.</p>\n\n\n\n<p>This implementation has been made available in a new plugin: <strong>No-cache BFCache</strong>. It is available <a href=\"https://wordpress.org/plugins/nocache-bfcache/\">on WordPress.org</a> and <a href=\"https://github.com/westonruter/nocache-bfcache/\">on GitHub</a>. This is a feature plugin to implement <a href=\"https://core.trac.wordpress.org/ticket/63636\">#63636</a> in WordPress core.</p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-plugin-directory wp-block-embed-plugin-directory\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\"><a href=\"https://wordpress.org/plugins/nocache-bfcache/\">No-cache BFCache</a></blockquote>\n</div></figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"demos\">Demos</h2>\n\n\n\n<p>In the following demos, I have Slow 4G network emulation enabled along with CPU throttling. This is in order to better simulate what an average user may experience when navigating, such as on a mid-range device potentially with a WordPress site on a shared host.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Demo: Navigating the WordPress Admin</h3>\n\n\n\n<p>After navigating from the Dashboard to the posts list table and then opening a post to edit, you can see the difference in speed navigating back and forth through the browser history:</p>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading has-text-align-center\">Without bfcache</h4>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading has-text-align-center\">With bfcache</h4>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n</div>\n\n\n\n<h3 class=\"wp-block-heading\">Demo: Navigating the WordPress Frontend</h3>\n\n\n\n<p>Here you can see me draft a message in a BuddyPress activity update. Then I navigate to another URL, and then I go back and forward:</p>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading has-text-align-center\">Without bfcache</h4>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div><figcaption class=\"wp-element-caption\">The drafted BuddyPress activity update is lost when navigating away from the page before submitting. The activity feed and Tweet have to be reconstructed with each back/forward navigation.</figcaption></figure>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading has-text-align-center\">With bfcache</h4>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div><figcaption class=\"wp-element-caption\">The drafted BuddyPress activity update is preserved when navigating away from the page without submitting. The activity feed and Tweet do not have to be reconstructed when navigating to previously visited pages via the back/forward buttons.</figcaption></figure>\n</div>\n</div>\n\n\n\n<h2 class=\"wp-block-heading\">Appendix</h2>\n\n\n\n<p>WooCommerce has been serving pages with <code>no-store</code> even for unauthenticated users on its Cart, Checkout, and Account pages. This slowed down navigating a store, even though Woo already implements support for ensuring a cart is up-to-date via the <code>pageshow</code> event, as <a href=\"https://weston.ruter.net/category/wordpress/feed/#stale-content-in-page-caches\">mentioned</a> above. The lack of bfcache means not only that navigating back to the cart is much slower than it needs to be, but there can also be data loss, for example an entered coupon but accidentally not applied. In PR <a href=\"https://github.com/woocommerce/woocommerce/pull/58445\">#58445</a> the sending of <code>no-store</code> was removed. This is slated to be part of v10.1. See <a href=\"https://github.com/woocommerce/woocommerce/pull/58445#issuecomment-3014404754\">before/after demo videos</a>.</p>\n\n\n\n<p>Similarly, in Jetpack certain admin screens are sending <code>no-store</code> which slow down back/forward navigations. In Jetpack 14.9, PR <a href=\"https://github.com/Automattic/jetpack/pull/44322\">#44322</a> removes this and greatly speeds up navigating to/from Jetpack admin screens, as seen in the <a href=\"https://github.com/Automattic/jetpack/pull/44322#:~:text=no%2Dstore.-,Demo%20Video,-Compare%20navigating%20back\">demo videos</a>.</p>\n\n\n\n<p>Sometimes the instantaneous navigations enabled by bfcache (and prerendering in Speculative Loading) can be a bit jarring, since pages load faster than expected. So the No-cache BFCache pairs well with the <a href=\"https://wordpress.org/plugins/view-transitions/\">View Transitions</a> plugin which now features an Admin View Transitions opt-in. This helps smooth the overall experience.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" />\n\n\n\n<p>Special thanks to <a href=\"https://kinsta.com/\">Kinsta</a> for <a href=\"https://github.com/sponsors/westonruter\">sponsoring</a> part of my time contributing to WordPress while I&#8217;ve been <a href=\"https://weston.ruter.net/2025/05/14/a-decade-as-a-core-committer-my-wordpress-contribution-history/\">between full time roles</a>. I also <a href=\"https://www.youtube.com/watch?v=d_I_JsFi2M0&amp;t=842s\">discussed</a> this bfcache project in my “<a href=\"https://youtu.be/d_I_JsFi2M0\">From Cassette Tapes to Core Commits: Weston Ruter’s WordPress Journey</a>” interview with <a href=\"https://www.linkedin.com/in/rogerwilliamsmedia?lipi=urn%3Ali%3Apage%3Ad_flagship3_profile_view_base_contact_details%3BSVYGJ1iQReyyHVN4aXnkag%3D%3D\">Roger Williams</a> last week.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" />\n\n\n\n<p class=\"has-medium-font-size\">Where I&#8217;ve shared this, if you want to boost:</p>\n\n\n\n<ul class=\"wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://www.linkedin.com/posts/westonruter_instant-backforward-navigations-in-wordpress-activity-7353696655562452995-zu-E?utm_source=share&#038;utm_medium=member_desktop&#038;rcm=ACoAAACIeJ0BUsdEu-G5aiGg1JkXrMQ-C6tbCsI\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"></path></svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn</span></a></li>\n\n<li class=\"wp-social-link wp-social-link-bluesky  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://bsky.app/profile/weston.ruter.net/post/3lumkutpuv22l\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z\"></path></svg><span class=\"wp-block-social-link-label screen-reader-text\">Bluesky</span></a></li>\n\n<li class=\"wp-social-link wp-social-link-mastodon  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://mastodon.social/@westonruter/114901525584434540\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z\"></svg><span class=\"wp-block-social-link-label screen-reader-text\">Mastodon</span></a></li>\n\n<li class=\"wp-social-link wp-social-link-twitter  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://x.com/westonruter/status/1947932105599815923\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z\"></path></svg><span class=\"wp-block-social-link-label screen-reader-text\">Twitter</span></a></li>\n\n<li class=\"wp-social-link wp-social-link-threads  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://www.threads.com/@westonruter/post/DMcW7QUOfrC?xmt=AQF0RmSf6xjzbuDgVlvigocp0pk-4R0eBjA7GUIEXS4bQw\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16.3 11.3c-.1 0-.2-.1-.2-.1-.1-2.6-1.5-4-3.9-4-1.4 0-2.6.6-3.3 1.7l1.3.9c.5-.8 1.4-1 2-1 .8 0 1.4.2 1.7.7.3.3.5.8.5 1.3-.7-.1-1.4-.2-2.2-.1-2.2.1-3.7 1.4-3.6 3.2 0 .9.5 1.7 1.3 2.2.7.4 1.5.6 2.4.6 1.2-.1 2.1-.5 2.7-1.3.5-.6.8-1.4.9-2.4.6.3 1 .8 1.2 1.3.4.9.4 2.4-.8 3.6-1.1 1.1-2.3 1.5-4.3 1.5-2.1 0-3.8-.7-4.8-2S5.7 14.3 5.7 12c0-2.3.5-4.1 1.5-5.4 1.1-1.3 2.7-2 4.8-2 2.2 0 3.8.7 4.9 2 .5.7.9 1.5 1.2 2.5l1.5-.4c-.3-1.2-.8-2.2-1.5-3.1-1.3-1.7-3.3-2.6-6-2.6-2.6 0-4.7.9-6 2.6C4.9 7.2 4.3 9.3 4.3 12s.6 4.8 1.9 6.4c1.4 1.7 3.4 2.6 6 2.6 2.3 0 4-.6 5.3-2 1.8-1.8 1.7-4 1.1-5.4-.4-.9-1.2-1.7-2.3-2.3zm-4 3.8c-1 .1-2-.4-2-1.3 0-.7.5-1.5 2.1-1.6h.5c.6 0 1.1.1 1.6.2-.2 2.3-1.3 2.7-2.2 2.7z\"></svg><span class=\"wp-block-social-link-label screen-reader-text\">Threads</span></a></li></ul>\n\n\n\n<p></p>\n<p>The post <a href=\"https://weston.ruter.net/2025/07/23/instant-back-forward-navigations-in-wordpress/\">Instant Back/Forward Navigations in WordPress</a> appeared first on <a href=\"https://weston.ruter.net\">Weston Ruter</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 23 Jul 2025 07:51:21 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Weston Ruter\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:21;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:82:\"Jonathan Desrosiers: Implementing AI in Open Source Without Losing the Human Touch\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:38:\"https://jonathandesrosiers.com/?p=6434\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:101:\"https://jonathandesrosiers.com/2025/07/implementing-ai-in-open-source-without-losing-the-human-touch/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14043:\"<p class=\"\">AI is reshaping how we interact with technology and with each other. In large, collaborative Open Source communities like <a href=\"https://wordpress.org/\">WordPress</a>, the shift towards AI is exciting, but it brings unique challenges when applied across a global contributor base.</p>\n\n\n\n<p class=\"\">There are extreme stances on both sides of the argument. On one side: &#8220;AI everything.&#8221; On the other: &#8220;AI has no place here.&#8221; I am somewhere in the middle. Watching. Listening. Experimenting.</p>\n\n\n\n<p class=\"\">I spend a lot of time <a href=\"https://jonathandesrosiers.com/2019/06/wordpress-triage-team-3-month-reflection/\">thinking about contributor workflows and triage</a>. This post is a reflection on how we might integrate AI into those areas in thoughtful ways, without losing the human qualities that make Open Source great.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ai-is-just-the-newest-kind-of-automation\">AI Is Just the Newest Kind of Automation</h2>\n\n\n\n<p class=\"\">Automation is not new. WordPress has embraced automation in many forms over the years: build scripts, linting tools, unit testing, continuous integration workflows, and more. AI is simply another form of automation. It only does what we configure it to do. We haven’t reached any kind of singularity just yet.</p>\n\n\n\n<p class=\"\">But with great power comes great responsibility. Just because we can doesn’t mean we should. Every proposed use of AI should be <a href=\"https://maintaine.rs/desrosj\">measured against</a> our <a href=\"https://wordpress.org/about/philosophy/\">core values</a>: putting the users first, backwards compatibility, democratizing publishing, and making WordPress welcoming to contributors of all skill levels.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-should-always-be-human\">What Should Always Be Human?</h2>\n\n\n\n<p class=\"\">Before we introduce AI into the community, we need to answer one critical question: What <em><strong>must</strong></em> be human? If we first identify those things and declare them sacred, we can then begin to explore how to best surround and support them with AI-related tools.</p>\n\n\n\n<p class=\"\">Related to that is another important question: What do people <em><strong>expect</strong></em> to be human? And where do those expectations align or conflict with perception, or the tasks that actually make us more productive?</p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full wp-lightbox-container\"><img alt=\"A person standing alone in front of a large, bright white screen, with only their silhouette visible against the light background.\" class=\"wp-image-6439 not-transparent\" height=\"1707\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/07/96466603e98a99495.95027958-scaled.jpg\" width=\"2560\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\"><a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0</a> licensed <a href=\"https://wordpress.org/photos/photo/untitled-post-submission-621/\">photo</a> by <a href=\"https://www.nilovelez.com/\">Nilo Velez</a> from the <a href=\"https://wordpress.org/photos/\">WordPress Photo Directory</a>.</figcaption></figure>\n\n\n\n<p class=\"\">From personal experience, I hate when I’m forced to interact with AI or a chat bot when I was instead expecting (or hoping for) a human. Rarely am I surprised in a good way. More often I’m frustrated and disappointed by limitations and rigid structure. Expectations matter.</p>\n\n\n\n<p class=\"\">The right approach could be to let each contributor configure the level of AI support they want to meet their needs and expectations.</p>\n\n\n\n<p class=\"\">Some common-sense boundaries might include the following:</p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-the-first-and-last-interaction-on-every-ticket-should-always-be-human\">The first and last interaction on every ticket should always be human</h3>\n\n\n\n<p class=\"\">Creating a ticket in a large project takes courage. A human response is a sign of respect and gratitude. Every reporter is owed at least two human responses. That human interaction sets the tone, builds trust, and encourages continued participation. Tactfully sprinkling AI in the middle is acceptable.</p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ai-should-not-be-used-for-evaluating-ideas-or-making-decisions\">AI should not be used for evaluating ideas or making decisions</h3>\n\n\n\n<p class=\"\">Verifying a patch, helping adhere to coding standards, providing suggestions for improvement, or flagging potential issues based on past commit activity are all great opportunities to use AI. But using AI to actually make decisions becomes quite risky.</p>\n\n\n\n<p class=\"\">I think it’s safe to say that the overwhelming majority of contributors expect final decisions to be made by humans. However, AI could support the evaluation of ideas by identifying possible consequences, providing historical context, fact-checking, and validating rationale.</p>\n\n\n\n<p class=\"\">There could also be an option to request deeper AI insight using a keyword, like <code>needs-ai-feedback</code>, when necessary.</p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ai-can-break-down-cultural-and-language-barriers\">AI can break down cultural and language barriers</h3>\n\n\n\n<p class=\"\">Global collaboration is a strength of Open Source, but it also introduces communication challenges. Language barriers, social norms, and tone differences can unintentionally create friction. AI has the potential to help us bridge those gaps. It can assist with translating intent, softening language, and suggesting more inclusive phrasing. By helping contributors express themselves clearly and interpret others more generously, AI can promote empathy and reduce misunderstandings.</p>\n\n\n\n<p class=\"\">While there are <a href=\"https://es.wordpress.org/support/\">localized support resources</a> for the WordPress project, it&#8217;s generally expected that when contributing you are doing so in English. But what if AI were used to automatically translate any message, allowing someone to contribute in their native tongue? <a href=\"https://jonathandesrosiers.com/2025/07/the-ghosts-of-unactivated-contributors/\">How many more contributors could we activated</a> with something like this?</p>\n\n\n\n<p class=\"\">When used thoughtfully, AI can enhance human conversations across cultures rather than replace them.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ai-as-a-contributor-onboarding-tool\">AI as a Contributor Onboarding Tool</h2>\n\n\n\n<p class=\"\">AI is great for handling beginner-leaning tasks. So how can we use AI to level up contributors that are just getting involved?</p>\n\n\n\n<p class=\"\">This is also tricky because Open Source projects <em>need</em> contributors of all levels to ensure a healthy pipeline. We don’t want to replace them since the novice contributors of today are potentially future maintainers and leaders. Instead, we should focus on how to support and empower them.</p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full wp-lightbox-container\"><img alt=\"A large, empty auditorium with rows of numbered blue seats with yellow trim.\" class=\"wp-image-6444 not-transparent\" height=\"1707\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/07/957645e31e382a517.41452423-scaled.jpg\" width=\"2560\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\"><a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0</a> licensed <a href=\"https://wordpress.org/photos/photo/957645e31e/\">photo</a> by <a href=\"https://wordpress.org/photos/author/tomlach/\">Tomek Lach</a> from the <a href=\"https://wordpress.org/photos/\">WordPress Photo Directory</a>.</figcaption></figure>\n\n\n\n<p class=\"\">AI could assist new contributors in a number of ways: explaining the history behind a change, suggesting further reading, answering questions, and setting expectations by describing what usually happens next for similar tickets.</p>\n\n\n\n<p class=\"\">The number one thing I hear from new contributors is that it’s too hard to find something to do. That’s ironic, given how much work there is. Unfortunately, most of it just isn’t easy to find.</p>\n\n\n\n<p class=\"\">With the right prompts, AI could help new contributors by doing things like:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"\">Ask qualifying questions and use its understanding of contributor expectations and process to suggest appropriate tickets.</li>\n\n\n\n<li class=\"\">Provide detailed descriptions of what needs to be done and why it matters.</li>\n\n\n\n<li class=\"\">Recommend logical next steps or related tickets based on interest and skill level.</li>\n</ul>\n\n\n\n<p class=\"\">These types of interaction could help people get started and build confidence more quickly.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-preserving-the-human-voice\">Preserving the Human Voice</h2>\n\n\n\n<p class=\"\">Another fun idea: What if we trained AI bots in the style of long-time contributors? That kind of tool could preserve institutional knowledge while making expert guidance more accessible.</p>\n\n\n\n<p class=\"\">Many have joked before: &#8220;If only we could clone <a href=\"https://profiles.wordpress.org/sergeybiryukov/\">Sergey</a>.&#8221; Maybe AI makes the kind of mentorship our most prolific contributors provide more scalable. With well-documented public contributions, we could build agents trained on a contributor’s feedback patterns (with clear disclaimers that they are approximations, not endorsements, of course).</p>\n\n\n\n<p class=\"\">It could also be component-specific. Perhaps there’s a Jonathan bot that responds to feedback requests on Build/Test Tool tickets. Or perhaps a <a href=\"https://aaron.jorb.in/\">Jorbin bot</a> that offers a clever pun before sharing deep historical context. These bots wouldn’t replace the people behind them; they could help scale their impact and preserve bandwidth. Of course, we’d need community agreement, ethical safeguards, and consent before simulating the voice of any individual contributor.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-strengthening-ai-tools-through-documentation\">Strengthening AI Tools Through Documentation</h2>\n\n\n\n<p class=\"\">Cross-team collaboration and documentation could benefit greatly from AI. But AI is only as good as the data it&#8217;s trained on. That makes clear, consistent documentation essential, not just helpful.</p>\n\n\n\n<p class=\"\">For AI to be successfully implemented, our processes, workflows, and expectations all need to be clearly documented. Now is the time to take stock of our processes, standards, and documentation gaps. This includes teams like Performance, Accessibility, Internationalization, Design, and AI itself.</p>\n\n\n\n<p class=\"\">There are already areas where automation could be introduced thoughtfully. Trac, for example, uses a s<a href=\"https://make.wordpress.org/core/handbook/contribute/trac/keywords/\">et of action and status keywords</a> that are excellent candidates for AI-assisted workflows. A keyword like <code>fixed-major</code> could automatically trigger a pull request backport. Similarly, AI could suggest keywords, help verify whether a keyword is appropriate, or identify when something has been overlooked. But the documentation around these keywords is basic at best.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-building-educational-content\">Building Educational Content</h2>\n\n\n\n<p class=\"\">Another promising area is summarizing complex or repetitive concepts. AI excels at distilling large volumes of discussion and activity into summaries, tutorials, or templates. This could be especially useful for the Learn team, where AI might monitor contributor activity and auto-draft course outlines or video scripts for tasks that are frequently repeated.</p>\n\n\n\n<p class=\"\">Creating this content can take a considerable amount of time, and contributors who perform these tasks often don’t have the bandwidth to document them as well.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-closing-thoughts\">Closing Thoughts</h2>\n\n\n\n<p class=\"\">AI holds enormous potential to make Open Source more welcoming, efficient, and inclusive. But that’s only possible if we use it with intention. We should approach AI the same way we approach any other major change to the project. It should be evaluated like everything else: carefully, collaboratively, and with the long-term health of the community in mind.</p>\n\n\n\n<p class=\"\">How do we avoid creating more work for our future selves?</p>\n\n\n\n<p class=\"\">Let’s not just ask what AI can do. Let’s ask what it should do, what it should never replace, and how we can answer those questions together as humans.</p>\n\n\n\n<p class=\"has-text-align-right has-small-font-size\"><em>Featured image credit: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0</a> licensed <a href=\"https://wordpress.org/photos/photo/844634897d/\">photo</a> by <a href=\"https://wordpress.org/photos/author/jenniferbourn/\">Jennifer Bourn</a> from the <a href=\"https://wordpress.org/photos/\">WordPress Photo Directory</a>.</em></p>\n<p>The post <a href=\"https://jonathandesrosiers.com/2025/07/implementing-ai-in-open-source-without-losing-the-human-touch/\">Implementing AI in Open Source Without Losing the Human Touch</a> appeared first on <a href=\"https://jonathandesrosiers.com\">Jonathan Desrosiers</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 22 Jul 2025 18:05:39 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"Tammie Lister: Optimizing triage with AI starting points\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://binatethoughts.com/?p=2398\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://binatethoughts.com/optimizing-triage-with-ai-starting-points/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7860:\"<p>Back in June, I wrote about how <a href=\"https://binatethoughts.com/optimising-triage-and-review-processes-in-wordpress-using-ai/\">triage and reviews</a> in WordPress could be optimized with the help of AI. Since then, discussions have taken place, and last week, James LePage released the <a href=\"https://github.com/Jameswlepage/trac-mcp\">Trac MCP Server</a>, which is now capable of interacting with Claude and ChatGPT. A demo of the MCP server is available <a href=\"https://mcp-server-wporg-trac-staging.a8cai.workers.dev\">here</a>. With this in mind, I would like to share my perspective on how this can be applied now.</p>\n\n\n\n<p>Before I dive in, it&#8217;s worth noting that this isn&#8217;t a problem that can be solved by one person or one view. It also doesn&#8217;t just solve looking at one tool or Trac, GitHub alone. It happens during discussions, when multiple people think about this and then explorations take place. It does, however, need to start, and we can do that without disrupting our existing flows. AI can empower us, and tools like this can improve and boost our flows today.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>MCP Servers: Lightweight programs that each expose specific capabilities through the standardized Model Context Protocol</p>\n\n\n\n<p class=\"has-medium-font-size\"><a href=\"https://modelcontextprotocol.io/introduction\">https://modelcontextprotocol.io/introduction</a></p>\n</blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">The issue</h2>\n\n\n\n<p>WordPress has thousands of open tickets spanning many years. Humans are not as good at pattern matching as AI. We do, however, pattern match, and we work well when they are brought to our attention. Whilst closing all tickets via automation would be a friction point, using AI to support, guide and surface what should be worked on makes a lot of sense. Traditional triage is manual, often even though we can use the best reports, which are not as scalable as we would like.</p>\n\n\n\n<p>The current reporting tools in Trac are limited to the interface. They are bound by query construction and are not often created using natural language, so their formation is disjointed and frequently problematic for many to access.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Starting with prompts</h2>\n\n\n\n<p>This is where tools like the Trac MCP Server can be beneficial. For example, Claude allows you to prompt to get an output. If we think of these as &#8216;reports&#8217; in the loose term, they can be tested in triage sessions.</p>\n\n\n\n<p>The Trac MCP Server unlocks the data and could, through Claude or ChatGPT, even surface the project&#8217;s health. A key point, though, is not to use it to replicate the tasks that reports do today. It can do more and should do.</p>\n\n\n\n<p>Building up fidelity like this is a process we are all familiar with in engineering. You algorithmic work out something, then you build it, then you automate it. If you utilise AI, you can achieve better results, and we all know this. It&#8217;s just tempting to skip to the good part of letting AI hallucinate a prompt sometimes.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Not just triage, context</h2>\n\n\n\n<p>Through this MCP server, access is available to all WordPress development history in Trac. Every bug, enhancement, discussion and decision. This goes beyond triage, so worth noting. Imagine you want, for example, context on decisions. You can do that by querying a ticket. I decided to go on a little journey.</p>\n\n\n\n<p>For example, consider the following prompt: <strong>&#8220;What is happening in WordPress development right now?&#8221;</strong></p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-2422\" height=\"1024\" src=\"https://binatethoughts.com/wp-content/uploads/2025/07/image-2-910x1024.png\" width=\"910\" /></figure>\n\n\n\n<p>Perhaps you&#8217;d like to delve a bit deeper into: <strong>&#8220;What types of tickets are sitting open vs. getting fixed?&#8221;</strong></p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-2424\" height=\"1024\" src=\"https://binatethoughts.com/wp-content/uploads/2025/07/image-3-891x1024.png\" width=\"891\" /></figure>\n\n\n\n<p>I then went a little more into things: <strong>&#8220;Can I predict which tickets need attention?&#8221;</strong>. I began thinking about a severity classification framework in collaboration with Claude; by doing this, I could create a report that queried. This would give me an action list to compare against the predictions. This is how to level up this type of data.</p>\n\n\n\n<p>The key issue to resolve here is figuring out which classification framework to use and how an agreement is reached. It&#8217;s all well and suitable for each of us to use a different one that we vibe with, but there needs to be a standard for the project. This is achievable, though, and it starts with using all we know and use daily in triage. Once we have that, we can have a standard to measure by.</p>\n\n\n\n<p>This can be used in a variety of applications, from triage to product management and writing posts to providing context for yourself. Having this type of easy, natural access unlocks the hidden history of WordPress development.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Extra level</h2>\n\n\n\n<p>If the reports are consistently surfacing correct results, we should add even proposed closings. We only do that once the reports are consistent. An MCP server delivers data, allowing AI to access it, and that&#8217;s where the power comes in.</p>\n\n\n\n<p>This may not require an interface. At some point, perhaps, but right now, exploring what can be unlocked by prompting is where the true power lies. You can pipe it in and generate something. You can vibe a dashboard (I did for a timebox fun), but that&#8217;s a nice-to-have tool, or at least distracts from how useful this can be if the prompting can be refined and data dug into. The more personally I use tools like this, the less I want an interface beyond a prompt, at least to start. I want to work out how they will be helpful.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Considerations</h2>\n\n\n\n<p>As with anything freshly baked like this, there are considerations and caveats. Trac is just one place where things happen; GitHub is the other, so we do need a way to see a holistic picture to know the entire state. Other things we likely need are an easier way to query based on users, although the reports in Trac are well-suited for that purpose. We need to be continuously mindful that this is not to replicate or replace those, but go beyond and give us something they don&#8217;t, not be bound by the reporting tool&#8217;s interface.</p>\n\n\n\n<p>Access to this meant I used my Claude account, and while many have this, we need to be considerate that not everyone has access to these tools yet at the paid tiers. That was why seeing ChatGPT support added was great. Overall, though, the barrier to entry is low, and I encourage people to explore and see what they can create. </p>\n\n\n\n<h2 class=\"wp-block-heading\">Reflections</h2>\n\n\n\n<p>The future of open source development isn&#8217;t just about better code; it&#8217;s about better intelligence on how we build that code. We need that access where we work. One pattern I have noticed with this MCP server is how useful it is to have it exist for me. Simply knowing I can prompt like this means I do. There is a strong case to be made for no interface, but reusable prompting at least while we work out agentic approaches to triage.</p>\n\n\n\n<p>I find myself exploring this data because it is accessible to me. I say that as someone who can create reports in Trac. But, there is something much more human about the way we create prompts. This is also the first week of the Trac MCP server. Let&#8217;s see what the next iterations bring and where others take this.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 22 Jul 2025 11:22:42 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"binatethoughts.com\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:23;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"Open Channels FM: The Indonesia WordPress Community Gets Ready for WordCamp Asia\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=103551\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"https://openchannels.fm/the-indonesia-wordpress-community-gets-ready-for-wordcamp-asia/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:206:\"In the final WordPress Event Talk, the Indonesian community discussed Indonesia\'s readiness to host WordCamp Asia, emphasizing local strengths, challenges, and the need for a phased approach to preparation.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 22 Jul 2025 05:56:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"Open Channels FM: The Power (and Profits) of Being a Generalist in WordPress Consulting\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=101221\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"https://openchannels.fm/the-power-and-profits-of-being-a-generalist-in-wordpress-consulting/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:217:\"Three WordPress veterans argue that generalists are valuable in tech, emphasizing adaptability, effective communication, and problem-solving abilities over narrow specialization for achieving higher consultancy rates.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 21 Jul 2025 12:12:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:25;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:120:\"Gutenberg Times: AI Building Blocks, WordCamp US, WordPress 6.9 Planning, Block Developer Cookbook—Weekend Edition 334\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=40875\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:126:\"https://gutenbergtimes.com/ai-building-blocks-wordcamp-us-wordpress-6-9-planning-block-developer-cookbook-weekend-edition-334/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:23102:\"<p>Hi there, </p>\n\n\n\n<p>It&#8217;s good to be back from vacation! Norway is a great country with a rich history, excellent food, great culture, and huge prices. It is absolutely worth it, though. </p>\n\n\n\n<p>While I was away, some great educational programs came online. I am glad <strong>Destiny Kanno</strong> published <a href=\"https://make.wordpress.org/community/2025/07/18/how-to-talk-about-and-support-the-new-wordpress-education-initiatives/\">How to Talk About and Support the New WordPress Education Initiatives</a> to catch me and you up on all the fabulous opportunities to help young folks get acquainted with WordPress and learn some life skills, too. </p>\n\n\n\n<p>For the first time in three years, I will be back at <strong>WordCamp US in Portland, OR, August 26 to 29, 2025</strong>. Will you be there? I would love to see you again in person. It&#8217;s been too long! <a href=\"https://us.wordcamp.org/2025/tickets/\">Get your ticket now.</a> The organizer <a href=\"https://x.com/WordCampUS/status/1946313007815893102\">started announcing speakers</a>. </p>\n\n\n\n<p>And now back to regular programming. Enjoy the newsletter. </p>\n\n\n\n<p>Yours, <img alt=\"💕\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f495.png\" style=\"height: 1em;\" /><br /><em>Birgit</em></p>\n\n\n<section class=\"wp-block-newsletterglue-group\" style=\"padding-top: 10px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; margin-top: 0px; margin-bottom: 0px;\">\n<div class=\"wp-block-group has-light-background-background-color has-background\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p><strong>Table of Contents</strong></p>\n\n\n\n<nav class=\"wp-block-table-of-contents\"><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/ai-building-blocks-wordcamp-us-wordpress-6-9-planning-block-developer-cookbook-weekend-edition-334/#0-word-press-release-information\">Developing Gutenberg and WordPress</a></li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/ai-building-blocks-wordcamp-us-wordpress-6-9-planning-block-developer-cookbook-weekend-edition-334/#0-p\">Plugins, Themes, and tools for #nocode site builders and owners</a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/ai-building-blocks-wordcamp-us-wordpress-6-9-planning-block-developer-cookbook-weekend-edition-334/#new-and-updated-plugins\">New and updated Plugins</a></li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/ai-building-blocks-wordcamp-us-wordpress-6-9-planning-block-developer-cookbook-weekend-edition-334/#classic-vs-blocks-vs-page-builders\">Classic vs. Blocks vs. Page Builders</a></li></ol></li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/ai-building-blocks-wordcamp-us-wordpress-6-9-planning-block-developer-cookbook-weekend-edition-334/#2-word-press-6-0-1-and-6-1-scheduled\">Theme Development for Full Site Editing and Blocks</a></li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/ai-building-blocks-wordcamp-us-wordpress-6-9-planning-block-developer-cookbook-weekend-edition-334/#3-building-themes-for-fse-and-word-press\">Building Blocks and Tools for the Block editor.</a></li></ol></nav>\n</div></div>\n</section>\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\"></div>\n\n\n<h2 class=\"wp-block-heading\" id=\"0-word-press-release-information\">Developing Gutenberg and WordPress</h2>\n\n\n\n<p><a href=\"https://wordpress.org/news/2025/07/wordpress-6-8-2-maintenance-release/\"><strong>WordPress 6.8.2 Maintenance Release</strong></a> came out this week. Release lead <strong>Jean Baptist Audras</strong> mentioned in his release post that <a href=\"https://core.trac.wordpress.org/query?resolution=fixed&amp;milestone=6.8.2&amp;group=component&amp;col=id&amp;col=summary&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=status&amp;col=priority&amp;order=priority\">20 core</a> and <a href=\"https://github.com/WordPress/gutenberg/pull/70557\">15 </a>bloc<a href=\"https://github.com/WordPress/gutenberg/pull/70557\">k editor</a> fixes were included in this minor release. Update now to benefit from these bug fixes. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>Core committer <strong>Jeffrey Paul</strong> posted the <strong><a href=\"https://make.wordpress.org/core/2025/07/11/wordpress-6-9-planning-proposal-and-call-for-volunteers/\">WordPress 6.9 Planning Proposal and Call for Volunteers</a>.</strong> The deadline to apply for the release squad is July 25th, 2025. Beta 1 is scheduled for October 21, RC 1 for November 11, and the final release date is December 2, 2025.</p>\n\n\n\n<p>Just doing some quick calculations here: It looks like the upcoming release is going to pack in all the goodies from Gutenberg versions 20.5 to 21.9, assuming we keep up that two-week release schedule.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Justin Tadlock</strong> published <a href=\"https://developer.wordpress.org/news/2025/07/whats-new-for-developers-july-2025/\"><strong>What&#8217;s new for Developer (July 2025)</strong></a> and lists phased plugin updates, custom social icons, and more in this summer edition of the monthly WordPress developer roundup. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>Speaking of the WordPress Developer Blog, <strong>Mary Baum</strong> put out a call for writers! If you like writing technical tutorials and sharing your learnings or research with WordPress developers, get the skinny from her post: <a href=\"https://developer.wordpress.org/news/2025/07/the-developer-blog-needs-you/\"><strong>The Developer Blog needs you!</strong></a></p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Hector Prieto</strong> just managed the release of <a href=\"https://github.com/WordPress/gutenberg/releases/tag/v21.2.0\"><strong>Gutenberg 21.2.</strong></a> It brings further refinements to the interface , Dataviews and continued progress on toolspanel implementation. You can read the full release post with details <a href=\"https://make.wordpress.org/core/2025/07/18/whats-new-in-gutenberg-21-2-16-july/\"><strong>on what’s new in Gutenberg 21.2? (16 July)</strong></a></p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>James LePage</strong> gives you a run down of the <strong><a href=\"https://make.wordpress.org/ai/2025/07/17/ai-building-blocks/\">AI Building Blocks for WordPress</a>.</strong> Each building block is listed with a brief description and a more detailed overview article linked for further reading.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://make.wordpress.org/ai/2025/07/17/php-ai-api/\">PHP AI Client SDK</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/ai/2025/07/17/abilities-api\">Abilities API</a> (former Feature API) </li>\n\n\n\n<li><a href=\"https://make.wordpress.org/ai/2025/07/17/mcp-adapter\">MCP Adapter</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/ai/2025/07/17/ai-experiments-plugin\">AI Experiments Plugin</a></li>\n</ul>\n\n\n\n<p>The plugins will be worked on as canonical/feature plugins to avoid early lock-in in a space that moves really, really fast at the moment. LePage also gives context to how this work overlaps with the initiatives of Gutenberg Phase 3: new admin design, collaborative editing, and the work on revamping the Media Library. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>In this week&#8217;s live stream, <strong>JuanMa Garrido</strong> covered each of the <strong>building blocks</strong>. You can watch the recording on YouTube: <a href=\"https://www.youtube.com/watch?v=Ban33rXA9as\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>Core projects for AI in WordPress</strong></a></p>\n\n\n\n\n\n<div class=\"wp-block-group has-light-background-background-color has-background\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><img alt=\"🎙\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f399.png\" style=\"height: 1em;\" /> The latest episode is <a href=\"https://gutenbergtimes.com/podcast/gutenberg-changelog-119-wordpress-6-8-2-and-6-9-gutenberg-21-1-21-2-and-21-3-releases/\">Gutenberg Changelog 119—WordPress 6.8.2 and 6.9, Gutenberg 21.1, 21.2, and 21.3 Releases</a> with Tammie Lister. </p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-no-vertical-margin\"><img alt=\"Tammie Lister and Birgit Pauli-Haack recording Gutenberg Changelog 119\" class=\"wp-image-40972\" height=\"184\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2025/07/Screenshot-2025-07-25-at-10.53.45.png?resize=652%2C184&#038;ssl=1\" width=\"652\" /></figure>\n\n\n\n<p class=\"has-small-font-size\"><em>If you are listening via Spotify, please leave a comment. If you listen via other podcast apps, please leave a review. It&#8217;ll help with the distribution.</em></p>\n</div></div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"0-p\">Plugins, Themes, and tools for #nocode site builders and owners</h2>\n\n\n\n<p>In his latest video, <strong><a href=\"https://www.youtube.com/watch?v=bHVpoYVDXeg\">Designing with the Columns block</a></strong>, <strong>Wes Theron</strong> guides you through how to use the columns block to build various layouts to build sites. He covers how to structure and organize your content. He’ll show you how to add, customize, and design layouts with multiple columns—ideal for displaying text, images, and other blocks side by side.</p>\n\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n\n\n<h3 class=\"wp-block-heading\" id=\"new-and-updated-plugins\">New and updated Plugins</h3>\n\n\n\n<p><strong>Brian Coords</strong>, developer advocate at Woo, announced &#8220;<a href=\"https://developer.woocommerce.com/2025/07/14/woocommerce-10-0-investing-in-accessibility/\" rel=\"noreferrer noopener\" target=\"_blank\">WooCommerce 10.0 is here!</a> </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Major frontend accessibility improvements</li>\n\n\n\n<li>Shareable checkout URLs</li>\n\n\n\n<li>Coupon enhancements</li>\n\n\n\n<li>A better product importer.</li>\n\n\n\n<li>And over 400 commits from 67 contributors!&#8217;</li>\n</ul>\n\n\n\n<p>The <a href=\"https://developer.woocommerce.com/2025/07/14/woocommerce-10-0-investing-in-accessibility/\">release notes</a> have all the details including screenshots and links. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Remote Data Blocks</strong> is a WordPress plugin by Automattic&#8217;s WordPressVIP team. It lets you fetch and display remote data in Gutenberg using customizable blocks. It’s ideal for flat, consistent data sources like APIs or Google Sheets. You map data to layouts, and the plugin handles fetching, caching, and rendering inside the block editor. <a href=\"https://remotedatablocks.com/docs/\">Documentation is available on this site</a>. You can <a href=\"https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/Automattic/remote-data-blocks/trunk/blueprint.json\">test it with Playground.</a></p>\n\n\n\n<p><strong>Stephen Edde</strong> blogged about it: <a href=\"https://wpvip.com/blog/bring-content-to-life-with-remote-data-blocks/\"><strong>Bring Your Content to Life With Remote Data Blocks</strong></a>. He also invites you to the webinar <a href=\"https://wpvip.com/event/launched-wordpress-vips-newest-product-solutions/\">Launched: The Newest Product Solutions</a> from WordPress VIP on August 21, 2025, at 18:00 UTC <br /></p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Nathan Wrigley</strong> and <strong>Dan Maby</strong> have just rolled out the beta version of their awesome new <a href=\"https://www.podcasterplus.com\">Podcaster Plus plugin</a>! It makes building podcast websites easy without any coding. It pulls your RSS feed automatically to show episodes and offers customizable blocks and a responsive player which works well on any device. It’s designed for podcasters and agencies managing multiple shows, focusing on quick setup and flexible layouts within WordPress. Or so the promise. You can sign up for the beta<a href=\"https://www.podcasterplus.com/beta/\"> version</a> with your email address.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Lesley Sim</strong> and <strong>Ahmed Fouad</strong> are the awesome duo behind Newsletter Glue, and guess what? They just sold it! <img alt=\"🎉\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f389.png\" style=\"height: 1em;\" /> Now, they’ve rolled out their new project, <strong><a href=\"https://eventkoi.com/\">EventKoi</a></strong>, which is a super cool events calendar plugin for WordPress fans. Want to know more about what they’re up to? Check out the sneak peek video and hop on that waitlist!</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Marco Almeida</strong> from Naked Cat Plugins just published a free plugin called <a href=\"https://wordpress.org/plugins/lang-attribute-blocks/\"><strong>Language Attribute for Container Blocks</strong></a>. Once you install it, you can easily add an <code>lang</code> HTML attribute to your Group, Columns, and Cover blocks on your site. It helps accessibility tools and browsers figure out the language of different sections on your page. The readme file mentions that it came to pass as a community collaboration out of WordCamp Europe.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Paul Halfpenny</strong> announced <a href=\"https://personalizewp.com/blog/announcements/personalizewp-pro-is-now-completely-free-choose-your-perfect-personalization-solution/\"><strong>PersonalizeWP Pro Is Now Completely Free: Choose Your Perfect Personalization Solution</strong></a>. &#8220;WordPress personalization just became accessible to everyone.&#8221; It also meant as a contribution to help WordPress stay competitive with other platforms that offer personalization out of the box. Halfpenny explains about the two version, PersonalizeWP Lite and Pro, for different use cases. The plugin helps site owners to provide different content depending on user behavior or make it visible under different conditions, depending on user types. while keeping within privacy guidelines.</p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"classic-vs-blocks-vs-page-builders\">Classic vs. Blocks vs. Page Builders</h3>\n\n\n\n<p><strong>Sagar Sharma</strong>, from Lubus, just dropped a post titled <a href=\"https://lubus.in/blog/migrated-to-wordpress-block-editor-fse\"><strong>Embracing What We Preach: Our Journey Migrating to WordPress Block Editor &amp; Full Site Editing</strong></a>. It’s all about their journey moving the agency&#8217;s website from the old-school WordPress setup to the new block editor and block theme. Why? To get more flexibility, speed things up, cut down on plugins, and keep the design consistent. You&#8217;ll get the scoop on their rebranding, how they rolled out the FSE migration step by step, and how they’re fine-tuning things along the way. Sharma also shares how they empowered non-tech folks to handle content and how this switch seriously leveled up user experience and SEO scores.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>While Lubus works with middle and large clients, <strong>Patricia Brun Torre</strong> tells a similar story on why she <a href=\"https://patriciabt.com/blog/i-love-the-wp-block-editor-site-editor-and-the-gutenberg-project\"><strong>loves the WP block editor, site editor, and the Gutenberg project</strong></a>. She raves about how the WordPress block editor and site editor are super fast, easy to use, work without extra plugins and make teaching clients a breeze. She loves how everything is intuitive, copy-paste just works, and you can design full sites—including headers, footers, and layouts—without touching code.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>At WordCamp Krakow, a panel discussion was held around Page Builders. Magdalena Pjoreck, former freelancer and now developer at a hosting company; Raitis Sevelis, owner of WPBakery; and Robert Windisch, owner of Syde, an enterprise agency, all come to the discussion from different angles. The conversation was recorded and is <a href=\"https://wordpress.tv/2025/07/14/panel-discussion-page-builders/\">available on WordPressTV</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2-word-press-6-0-1-and-6-1-scheduled\">Theme Development for Full Site Editing and Blocks</h2>\n\n\n\n<p><strong>Bud Kraus</strong> published a new tutorial on how to apply <a href=\"https://kinsta.com/blog/customize-block-in-child-theme/\"><strong>custom styling for WordPress block themes using a child theme</strong></a>. He explains that child themes remain essential for customizing WordPress block themes, allowing safe style overrides and customizations without altering parent theme files. Kraus details how, despite the flexibility of block themes and theme.json, child themes are still crucial for advanced customization in WordPress. He demonstrates creating a child theme for the Twenty Twenty-Five theme, using its own style.css and functions.php to safely override styles, define custom block styles, and set up style variations, ensuring control without modifying parent theme files. <a href=\"https://kinsta.com/blog/customize-block-in-child-theme/\">​</a></p>\n\n\n<section class=\"wp-block-newsletterglue-callout undefined not-color-set\" style=\"border-color: #f9f9e5; border-radius: 22px; border-style: solid; border-width: 0; padding-top: 20px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; text-align: left; margin-left: 0; margin-right: 0; margin-top: 0px; margin-bottom: 0px; background-color: #f9f9e5;\">\n<p><strong> <a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/\" rel=\"noreferrer noopener\" target=\"_blank\">&#8220;Keeping up with Gutenberg—Index 2025&#8221;</a> </strong><br />A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. The previous years are also available: <strong><strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2020/\">2020</a> | <a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2021/\">2021</a></strong> | <strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2022/\">2022</a></strong></strong> | <strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2023\">2023</a></strong> | <a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2024/\"><strong>2024</strong></a></p>\n</section>\n\n\n<h2 class=\"wp-block-heading\" id=\"3-building-themes-for-fse-and-word-press\">Building Blocks and Tools for the Block editor.</h2>\n\n\n\n<p><strong>Ryan Welcher</strong> has been working on his <a href=\"https://blockdevelopercookbook.com/\">Block Developer Cookbook</a> for a few years. Hundreds of developers worked through examples at workshops at WordCamp Asia and WordCamp Europe. Now he brought it all to YouTube in one big livestream session. <a href=\"https://www.youtube.com/watch?v=NJsncDuSc94\"><strong>The Block Developer Cookbook: Live Stream Edition</strong></a>. You can use it to learn how to build custom WordPress blocks or freshen up on certain aspects of it. The video is full of real-world block development techniques , including custom blocks, variations, transforms, interactivity, and more. </p>\n\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>In this week&#8217;s stream, Jonathan Bossenger covered Feature API updates &amp; building a block with Claude Code. He wrote, &#8220;This week, I reviewed the latest update to the Feature API and tested it against my course creation flow. After that, I wanted to see how easy it would be to build a block based on existing HTML/CSS and JS, but only using Claude Code in PhpStorm. The results were pretty impressive, but not perfect, so I decided to try coding it myself. However, I soon discovered that it had been so long since I built a block that I&#8217;d forgotten how to do it.&#8221;</p>\n\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n\n<section class=\"wp-block-newsletterglue-callout undefined not-color-set\" style=\"border-color: #eeeeee; border-radius: 26px; border-style: solid; border-width: 0; padding-top: 20px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; text-align: left; margin-left: 0; margin-right: 0; margin-top: 0px; margin-bottom: 0px; background-color: #f3efe9;\">\n<p><strong><a href=\"https://gutenbergtimes.com/need-a-zip-from-master/\">Need a plugin .zip from Gutenberg&#8217;s master branch?</a></strong><br />Gutenberg Times provides daily builds for testing and review.</p>\n\n\n\n<p>Now also available via <a href=\"https://playground.wordpress.net/?blueprint-url=https://gutenbergtimes.com/wp-content/uploads/2020/11/playnightly.json\">WordPress Playground</a>. There is no need for a test site locally or on a server. Have you been using it? <a href=\"mailto:pauli@gutenbergtimes.com\">Email me </a>with your experience</p>\n\n\n\n<p><img alt=\"GitHub all releases\" src=\"https://img.shields.io/github/downloads/bph/gutenberg/total?style=for-the-badge\" /></p>\n</section>\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>Questions? Suggestions? Ideas? </em><br /><em>Don&#8217;t hesitate to send <a href=\"mailto:pauli@gutenbergtimes.com\">them via email</a> or</em><br /><em> send me a message on WordPress Slack or Twitter @bph</em>.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" />\n\n\n\n<p class=\"has-text-align-center has-small-font-size\">For questions to be answered on the <a href=\"http://gutenbergtimes.com/podcast\">Gutenberg Changelog</a>, <br />send them to <a href=\"mailto:changelog@gutenbergtimes.com\">changelog@gutenbergtimes.com</a></p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 19 Jul 2025 00:16:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:26;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"Felix Arntz: How Open Source Contributions Elevate Your Professional Journey\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://felix-arntz.me/?p=2173\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://felix-arntz.me/blog/open-source-contributions-elevate-your-professional-journey/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9299:\"<p>In <a href=\"https://felix-arntz.me/blog/10-lessons-from-10-years-of-contributing-to-wordpress-core/\" rel=\"noreferrer noopener\" target=\"_blank\">my last post, I shared 10 lessons from 10 years of contributing to WordPress Core</a>. If you&#8217;re new to open source, I encourage you to review those insights. But today, I want to talk about something different: Even though you hopefully contribute out of passion and goodwill, giving back to an open source project can also give something significant back to you. Some of it my previous post may hint at, but in this post I&#8217;d like to look at it more broadly.</p>\n\n\n\n<p>As I mentioned in my previous post, contributing to WordPress Core has changed my career, and indirectly even many other aspects of my life, for the better in so many ways. And while my experience is rooted in WordPress Core, the benefits that OSS contributions can have for your professional development largely apply to almost any sizable open source project.</p>\n\n\n\n<span id=\"more-2173\"></span>\n\n\n\n<p>One of the most profound advantages of contributing to a popular open source project is the unparalleled experience of working on software with a massive and diverse user base. Imagine a project used by hundreds of thousands, or in WordPress&#8217;s case, millions of sites globally. This kind of scale exposes you to a multitude of edge cases, performance considerations, and accessibility challenges that are rarely encountered in smaller, internal projects. Outside of open source projects, this hands-on experience is often only accessible through roles at large tech corporations or highly successful startups with popular products, with complex eligibility requirements. That barrier of entry is wildly different for open source: Established project contributors are typically more welcoming to contributors, as support is almost always needed and appreciated.</p>\n\n\n\n<p>An open source project doesn&#8217;t demand five years of professional experience, a specific degree, or a list of impressive previous projects. You can simply show up and demonstrate your capabilities through initiative, passion, dedication, understanding, and persistence. As long as you are interested in supporting the project and maintain a curious and kind mindset, you can learn and grow simply by contributing to the project itself.</p>\n\n\n\n<p>The experience you gain from working on something large that impacts countless people globally, while distinct from a corporate product, can be immensely beneficial for your general professional development. This experience can even be a significant asset in landing a job at one of those larger tech companies, if that&#8217;s something you&#8217;re interested in.</p>\n\n\n\n<p>The more involved you become in an open source project, especially one relevant to the broader tech industry, the more you start to build a reputation. This reputation could be for being a reliable, efficient, nuanced, or benevolent contributor, or a combination of these traits. You&#8217;ll find people who appreciate your work, potentially even individuals you&#8217;ve long looked up to. While there might occasionally be disagreements or condescending voices, the positive feedback and support will almost certainly be the majority.</p>\n\n\n\n<p>As you consistently show up to contribute and do the work, it can also significantly help you build relationships with peers from whom you can learn, and perhaps even forge lasting friendships. For contractors, it can lead to more interesting gigs, and in some cases, companies might even reach out to you directly rather than you having to pursue them. And, with time, dedication, and a bit of luck, even those bigger job opportunities may find you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">My Personal Journey: From Imposter Syndrome to Google</h2>\n\n\n\n<p>Let me share a bit of my own story and how contributing to WordPress has shaped my career. When I first started contributing to WordPress Core in 2015, I battled a strong case of imposter syndrome. It took several months for me to truly grasp that I, too, could make substantial contributions, just like others, all while continuing to learn – after all, everyone has their unique strengths. Eventually, I found myself leading the development of new features that would land directly in WordPress Core, something I couldn&#8217;t have imagined when I started. A special shoutout goes to <a href=\"https://jeremyfelt.com/\" rel=\"noreferrer noopener\" target=\"_blank\">Jeremy Felt</a>, who welcomed me into the WordPress Multisite team and empowered me as a contributor. I also want to thank <a href=\"https://profiles.wordpress.org/mahype/\" rel=\"noreferrer noopener\" target=\"_blank\">Sven Wagener</a> for trusting me early on with exciting open source freelancing work.</p>\n\n\n\n<p>The contributions I made, coupled with actively participating in community events like WordCamps, meeting new people, and nurturing my curiosity are a huge part of where I am today. Sometimes, I want to say that being a little bold also helped – but then again, as I&#8217;m writing this I wonder whether I only <em>thought</em> of some of my actions as bold <em>because</em> I was feeling like an imposter, and maybe those were just little moments where I overcame it.</p>\n\n\n\n<p>During my time as a freelancer, I saw a significant increase in interesting contracts as my reputation as a contributor grew and I became more recognized within the WordPress community. I ended up contracting for some of the largest companies in the ecosystem, and often, these collaborations simply arose from casual conversations at events.</p>\n\n\n\n<p>I always loved being a freelancer. Something that only some friends know about me is that I used to say, &#8220;I&#8217;m never going to quit freelancing, except maybe for Google.&#8221; To be clear, I mostly said that to emphasize how much I enjoyed freelancing. While I always thought working for Google would be incredible, I never in my wildest dreams believed it would become a realistic option for me.</p>\n\n\n\n<p>However, what transpired in 2018 completely blew me away. At that time, I had read a blog post by a Googler named Alberto Medina, announcing that Google was hiring for a new team focused on the WordPress ecosystem. Even though I had already achieved certain things as a contributor that made me proud, I found myself battling imposter syndrome again. &#8220;Sure, things are going well, but Google? Don&#8217;t these companies hire the most talented engineers in the world? That&#8217;s not me.&#8221; This was early 2018. Fast forward to WordCamp Europe 2018, I was exploring the Google booth when my friend <a href=\"https://weston.ruter.net/\" rel=\"noreferrer noopener\" target=\"_blank\">Weston Ruter</a> introduced me to <a href=\"https://profiles.wordpress.org/albertomedina/\" rel=\"noreferrer noopener\" target=\"_blank\">Alberto Medina</a> – yes, the same Alberto who worked at Google and wrote the post I mentioned earlier. One of the first things that emerged in our conversation was that Alberto already knew who I was. OMG! I kept my cool externally, but I was completely taken aback! Over the course of the WordCamp, we continued our conversations about the opportunity at Google. Eventually, I applied for a role on the new team. With Alberto&#8217;s continued support throughout the application process and a lot of preparation on my part, I went through the interviews and ultimately received a job offer. And to make the deal even sweeter, I learned I would be working alongside a few other WordPress folks whom I already considered friends. This is how I started working for Google, and I&#8217;m still here today.</p>\n\n\n\n<p>Please forgive the detour, but this is my personal prime example of how contributing to open source, specifically WordPress, significantly propelled my professional career. Selfishly, I also love to reminisce about this exciting time – it completely turned my life upside down, in so many positive ways.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Explore Open Source – It Might Be a Game Changer for Your Career</h2>\n\n\n\n<p>Contributing to open source can be a huge lever for your career. If you haven&#8217;t yet worked on the massively impactful projects that many job openings seem to demand, or if you&#8217;re fresh out of college, I strongly encourage you to explore open source. Heck, take some time to look into it even if you&#8217;re <em>in</em> college. For me, that was a time where I had less financial responsibility, which allowed me to put in several hours contributing to WordPress Core each week, alongside the freelancing I was doing at the same time.</p>\n\n\n\n<p>But at the end of the day, don&#8217;t contribute to OSS solely for professional gain, but do it for your passion. Find an open source project that genuinely interests you and that you can get excited about. That could be any relatively popular open source project – or it could be WordPress. I would certainly love to welcome you as a WordPress Core contributor.</p>\n<p>The post <a href=\"https://felix-arntz.me/blog/open-source-contributions-elevate-your-professional-journey/\">How Open Source Contributions Elevate Your Professional Journey</a> appeared first on <a href=\"https://felix-arntz.me\">felix-arntz.me</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 17 Jul 2025 16:27:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"Felix\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:27;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"Open Channels FM: Democratizing Publishing Beyond Business Content\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100681\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"https://openchannels.fm/democratizing-publishing-beyond-business-content/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:183:\"The future of online publishing is all about personal expression, not just business stuff. WordPress needs to embrace short videos and everyday moments to stay relevant and inclusive.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 17 Jul 2025 11:13:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"Akismet: Version 5.5 of the Akismet WordPress plugin is available now\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"http://akismet.com/?p=284578\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:37:\"https://akismet.com/blog/akismet-5-5/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1133:\"<p>Version 5.5 of <a href=\"http://wordpress.org/plugins/akismet/\">the Akismet plugin for WordPress</a> is now available. This update contains the following improvements:</p>\n\n\n<ul class=\"wp-block-list\"><li>We&#8217;ve enabled webhooks for all users. Webhooks allow the Akismet servers to do extra processing for certain comments without making your site wait for a response. If a comment is determined to be spam, the Akismet server will notify your site once the extra processing is done. This should reduce spam without affecting performance, and that&#8217;s a Good Thing.</li>\n\n<li>We&#8217;ve ensured that the CSS for the Akismet widget is only included when the widget is included. And that&#8217;s a Good Thing.</li>\n\n<li>We&#8217;ve improved the color contrast on certain buttons for better accessibility. And that&#8217;s a Good Thing.</li></ul>\n\n\n<p>To upgrade, visit the Updates page of your WordPress dashboard and follow the instructions. If you need to download the plugin zip file directly, links to all versions are available in <a href=\"http://wordpress.org/plugins/akismet/\">the WordPress plugins directory</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 16 Jul 2025 18:25:06 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:17:\"Christopher Finke\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:29;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"WPTavern: #177 – Charlotte Bax on Reducing Your Website’s Carbon Footprint\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=197651\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"https://wptavern.com/podcast/177-charlotte-bax-on-reducing-your-websites-carbon-footprint\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:46635:\"<details>Transcript<div>\n<p>[00:00:19] <strong>Nathan Wrigley:</strong> Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.</p>\n\n\n\n<p>Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, reducing your WordPress website&#8217;s carbon footprint.</p>\n\n\n\n<p>If you&#8217;d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast. And you can copy that URL into most podcast players.</p>\n\n\n\n<p>If you have a topic that you&#8217;d like us to feature on the podcast, I&#8217;m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.</p>\n\n\n\n<p>So on the podcast today we have Charlotte Bax. Charlotte is a sustainable web designer with a background in both environmentally conscious living and technology. Beginning her journey as a sustainable lifestyle blogger, she soon merged her passion for sustainability with her skills in web design, rebranding herself as Digihobbit.</p>\n\n\n\n<p>For several years now, Charlotte has been focused on building websites that prioritize low carbon footprints, and she is also the founder of the climate tech startup ENNOR Toolbox for Online Sustainability, which helps measure the CO2 emissions of websites and web applications.</p>\n\n\n\n<p>When we made this recording, Charlotte had just finished presenting at WordCamp Europe on the topic of how to make your website more sustainable, and her presentation is the topic of the podcast today.</p>\n\n\n\n<p>We talk about digital environmental impact, the hidden pollution our websites create through their energy use and infrastructure. Charlotte explains some striking facts about the carbon footprint of ICT, noting that if the internet were a country, it would be the seventh largest polluter globally.</p>\n\n\n\n<p>She shares a wide array of practical steps for web professionals to reduce the environmental impact of their sites. You&#8217;ll hear about the benefits of green web hosting, using modern image formats like WebP and AVIF, optimizing architecture and UX to minimize unnecessary page loads, the crucial role of caching, as well as some new innovations like grid aware websites, which adapt themselves based on the renewable energy mix available to users in real time.</p>\n\n\n\n<p>The conversation also touches on Charlotte&#8217;s involvement in WordPress sustainability initiatives. The importance of multiplying small improvements across high traffic sites, and the moral imperative web creators have to help shape a greener internet.</p>\n\n\n\n<p>If you&#8217;ve ever wondered how digital choices impact the planet, and what steps you can take to help, this episode is for you.</p>\n\n\n\n<p>If you&#8217;re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you&#8217;ll find all the other episodes as well.</p>\n\n\n\n<p>And so. Without further delay, I bring you Charlotte Bax.</p>\n\n\n\n<p>I am joined on the podcast by Charlotte Bax. Hello Charlotte.</p>\n\n\n\n<p>[00:03:29] <strong>Charlotte Bax:</strong> Hello Nathan, and thank you for having me.</p>\n\n\n\n<p>[00:03:31] <strong>Nathan Wrigley:</strong> You are very welcome. Charlotte and I are having a conversation at WordCamp Europe. We&#8217;re in Basel, and we&#8217;re going to be talking today about the environmental impact of your website, whether that be WordPress, or any other platform that you might be using.</p>\n\n\n\n<p>In order to establish your credential, Charlotte, would you just for maybe a minute or something like that, just tell us a little bit about you, your relationship with technology. And I guess if you lean into your sustainability credentials, what you&#8217;ve been doing in the past, that would be helpful too.</p>\n\n\n\n<p>[00:03:59] <strong>Charlotte Bax:</strong> Yes. Well, I started out as a sustainable lifestyle blogger, really, like in 2000 and something. And I didn&#8217;t really feel like I was at the right place in my work at that time. I was doing a job at the service center for ICT. It was really overwhelming. So I decided to make my hobby into my work and I chose the web design side. And after only a year, I think I stumbled upon a sustainable website challenge by some Dutch guys, that I got to know them. And that was the missing link between my sustainable lifestyle and my work as a web designer.</p>\n\n\n\n<p>So I really went down that digital sustainability rabbit hole, and I sort of rebranded myself as a sustainable web designer in the name of Digihobbit. Well, so I&#8217;m building sustainable websites for quite some years now.</p>\n\n\n\n<p>Two years ago, I really wanted a tool to make estimating the CO2 emissions of websites easier because, for example, Website Carbon by Whole Grain Digital, I love that tool. And there&#8217;s also some other tools I really loved, but you have to copy paste every single page of a website in there.</p>\n\n\n\n<p>So I wanted a tool to do that in bulk. So I asked a friend to build me a tool to do that really easily, and he did. And that sort of escalated into a full blown startup. So since August, 2024, I also have a climate tech startup called ENNOR Toolbox for Online Sustainability, in which we build software to measure the CO2 emissions of websites and web applications.</p>\n\n\n\n<p>[00:05:37] <strong>Nathan Wrigley:</strong> Wow, that&#8217;s fascinating. You&#8217;re the first person that I&#8217;ve spoken to who&#8217;s actually finished their talk at WordCamp Europe. Your presentation was, I&#8217;m sure you know, how to make your website more sustainable. So very quickly, how did it go?</p>\n\n\n\n<p>[00:05:49] <strong>Charlotte Bax:</strong> It was amazing. Like the room was so full. It was such an amazing experience, and it went so good. And yeah, I&#8217;m just still riding that high.</p>\n\n\n\n<p>[00:05:59] <strong>Nathan Wrigley:</strong> Do you feel, I mean, obviously there&#8217;s tons of topics on here and there&#8217;s many, many tracks, and the fact that you filled yours up, do you sense that sustainability is a thing which web developers are latching onto, that they find important, that they&#8217;re curious about?</p>\n\n\n\n<p>[00:06:14] <strong>Charlotte Bax:</strong> Yes, I think so. Especially the curiosity part. I&#8217;ve done presentations in the Netherlands also for some government entities, and there were some senior developers. They talked to me afterwards and they said like, I have never thought of this before. Just, yeah, like spreading that awareness, planting those seeds. I think really nice to do that.</p>\n\n\n\n<p>[00:06:34] <strong>Nathan Wrigley:</strong> Yeah, I think that it&#8217;s a topic which many people will not even have given any thought to. Because, we were talking just before we hit record about how clean and sterile our technology feels in our lives. You know, I&#8217;m staring at a laptop, and I&#8217;ve got a microphone in my hand, I&#8217;ve got a phone over to my side here, and none of it emits anything by itself.</p>\n\n\n\n<p>You know, it&#8217;s clean. If I hold it in my hand, I&#8217;m not going to breathe any toxic fumes in from it. And yet all of the technology that we&#8217;re surrounded by in some way, shape, or form will have been produced, there&#8217;ll be some pollution that&#8217;s associated with that. But also particularly around ICT, the mere fact that it&#8217;s switched on and is consuming electricity, well, that electricity has to be generated in some way.</p>\n\n\n\n<p>And you put a really interesting statistic on the blurb for your presentation, which says that 8 to 10% of all energy, and I think I&#8217;m saying that right, yeah, all energy that&#8217;s produced globally, 8 to 10% is related to ICT. I would never have suspected it because it&#8217;s completely divorced. I switch my computer on, there&#8217;s no pollution in my house because of that. It&#8217;s happening elsewhere.</p>\n\n\n\n<p>So how does ICT rate? If it&#8217;s 8 to 10%, where does it sort of slot into all the other industries?</p>\n\n\n\n<p>[00:07:57] <strong>Charlotte Bax:</strong> Well, it&#8217;s more than aviation. There&#8217;s this book, Sustainable Web Design by Tom Greenwood. There is this graph somewhere, quite in the beginning, that puts the internet, if it were a country, it would be the seventh biggest polluter in the world. So that&#8217;s really, really big. And you don&#8217;t see it because all the pollution happens elsewhere. Like, you don&#8217;t have a data center, or an energy plant, in your backyard. It&#8217;s all hidden away. Or there&#8217;s those big boxes next to the highway, you know? You don&#8217;t see it. And in Dutch we call it far from your bed show. And that is a really nice comparison I think.</p>\n\n\n\n<p>[00:08:36] <strong>Nathan Wrigley:</strong> Yeah, I think if I was to ask you to stand behind my car and I rev the engine, so I use the car, you are going to be really reluctant to stand behind my car because you know that out of the back of the car is coming a lot of terrible gases that you don&#8217;t wish to consume. And yet my computer, in a remote destination that I am not standing anywhere near, is doing basically the same thing.</p>\n\n\n\n<p>[00:09:05] <strong>Charlotte Bax:</strong> More or less.</p>\n\n\n\n<p>[00:09:06] <strong>Nathan Wrigley:</strong> Yeah, I mean it may not be the same gases or what have you, but there is a pollution component to that.</p>\n\n\n\n<p>[00:09:10] <strong>Charlotte Bax:</strong> Yes, there&#8217;s a pollution component indeed.</p>\n\n\n\n<p>[00:09:11] <strong>Nathan Wrigley:</strong> But every bit of technology that I own, I sense none of that. And so that&#8217;s a really interesting disconnect. And I guess that promotes us, well, not promotes us, I guess it allows us to ignore the problem because we do not see it.</p>\n\n\n\n<p>[00:09:28] <strong>Charlotte Bax:</strong> Yes. That is exactly the right wording for that. It allows us to ignore it because we do not see it. It&#8217;s not just like there&#8217;s this energy usage, for example, data centers and routers and your own devices, of course. But there&#8217;s also so much more. There&#8217;s this embodied carbon from producing all that hardware. And that&#8217;s not just the machines that we see around us, your laptop, my laptop, your phone. It&#8217;s also like the data centres, the servers, the wifi box, the routers, satellites, et cetera, cables.</p>\n\n\n\n<p>Producing electronics is really dirty. It takes up a lot of resources and energy. Data centers, they use up a lot of water for cooling. And at the end of the day, most of those things, they become e-waste, because electronics don&#8217;t get recycled that much yet.</p>\n\n\n\n<p>[00:10:21] <strong>Nathan Wrigley:</strong> Yeah, I guess given the nature of this podcast, we probably won&#8217;t focus on all of the different bits and pieces that are involved in all of that. You know, we can&#8217;t talk so much about how a phone ought to be recycled. Well, we could, but we are going to talk about websites.</p>\n\n\n\n<p>And again, the disconnect is so profound. I go to a website, any website, there is no connection in my head between browsing that website and the consequences to the environment. Essentially, in my head, and probably the heads of many people listening to this podcast, it&#8217;s entirely benign. I&#8217;m doing no harm whatsoever. Of course, on some level, intellectually, if I apply thought to it, of course I know that I am, but it&#8217;s way easier for me to ignore that.</p>\n\n\n\n<p>So then that leads to the question, what on earth can people like you, like me, like the people listening to this podcast who create websites, what on earth can they do? What are the little things that they can pick out that they can change about their website in order to make them less polluting, more sustainable, whichever term you&#8217;d like to use?</p>\n\n\n\n<p>[00:11:26] <strong>Charlotte Bax:</strong> Oh boy. I don&#8217;t think we have enough time in this podcast to touch on all of that. But in my talk I sort of, yeah, I had a list of certain areas where you could make sustainable choices, and they also arrange really widely. For example, your web hosting, choose a green web host. It makes such a difference. Renewable energy. Not all web hosts are hosting on green energy. And there is this really nice organisation, the Green Web Foundation, they have this database of web hosting providers that are using renewable energy.</p>\n\n\n\n<p>And they have a tool, you can put in your website and see if your website runs on renewables. And if you are a web hosting provider, you can send evidence to the Green Web Foundation that your data centers are running on renewables, so they can add you to that database, which is also very good for your reputation as a web host.</p>\n\n\n\n<p>[00:12:23] <strong>Nathan Wrigley:</strong> Right, okay. So as you say the things that you mentioned in your talk, I&#8217;ll throw them back at you just so that we&#8217;re absolutely certain what we&#8217;re talking about.</p>\n\n\n\n<p>So every website obviously, well, most of them need some kind of hosting environment. And what you&#8217;re saying is go out and be proactive. Look for this badge, this Green Web Foundation badge. They&#8217;ve done the hard work, if you like. You can be certain that if there&#8217;s a Green Web Foundation sticker on there, there has been an exchange, to and fro, between the host and the Green Web Foundation, and they classify that as sustainable. What does that mean? Does it mean that, like, is it 80% of their energy consumption is renewable or a hundred percent or do you know?</p>\n\n\n\n<p>[00:12:59] <strong>Charlotte Bax:</strong> I don&#8217;t know that exactly. You should ask Chris Adams. But they&#8217;re also, yeah, I learned that also from that book from Tom Greenwood. You can make a difference between certain ways of using renewable energy, such as like actually producing your own renewable energy by having solar panels on the data center, for example.</p>\n\n\n\n<p>You can invest in green energy. You can buy it from a green energy supplier.</p>\n\n\n\n<p>And there&#8217;s a fourth thing, and it is that you buy certificates from other countries and that, yeah, I think that&#8217;s greenwashing.</p>\n\n\n\n<p>But as far as I know, they don&#8217;t show that yet in the Green Web Foundation database. I have contacted them like months, maybe more than a year ago about it, whether they would do that. And they were open to the idea. I think someone was even working on it. But it just takes a long time because they are not a commercial party of course. They also just run on subsidies and they have just so many resources.</p>\n\n\n\n<p>[00:14:02] <strong>Nathan Wrigley:</strong> Okay, so there&#8217;s the first piece. There&#8217;s one thing that you can do. That&#8217;s a really easy concrete thing to do. We all need the hosting. So when you go, go and look and have some trust in the Green Web Foundation&#8217;s badge, if you like. You trust that they&#8217;ve done the due diligence and that that is in some way superior, in the way that that energy is captured or what have you.</p>\n\n\n\n<p>[00:14:24] <strong>Charlotte Bax:</strong> Yes, yes. But I have a little disclaimer. Not all green web hosting providers are in the database yet, and not all of them show the badge. But it&#8217;s really easy just to check your own website through the tool on their home page.</p>\n\n\n\n<p>[00:14:39] <strong>Nathan Wrigley:</strong> Okay. Thank you. Okay, what was next? What did you have next on your list?</p>\n\n\n\n<p>[00:14:43] <strong>Charlotte Bax:</strong> Well, you can make sustainable choices in your architecture and your UX design. Just make it very easy for your visitors to find things on your website, so they don&#8217;t have to go here and there to search for stuff and produce lots of unnecessary page views. Because that&#8217;s all data traffic and that&#8217;s all CO2 emissions. That&#8217;s a thing you can do. Just think really good about that website architecture.</p>\n\n\n\n<p>[00:15:12] <strong>Nathan Wrigley:</strong> So the idea there is that every time we produce a page, the server at some point is having to do some work. That work requires electricity. If we can cut 10 visits down to 5 visits, there&#8217;s an, obviously a 50% reduction in the amount of pages that are loaded. And again, it&#8217;s so hard in my head to encapsulate what that is doing because it just, I&#8217;m just thinking, okay, i&#8217;ve saved time. But obviously, you know, now that we&#8217;re having this chat, I&#8217;m now beginning to think more, okay, not only am I saving time, I&#8217;m actually saving electricity and therefore it&#8217;s more sustainable.</p>\n\n\n\n<p>So that has a knock on consequence of course, in that nobody wants to go to 10 pages if you could go to five pages anyway. So figuring all that stuff out from the start is a good idea. Okay, lovely. Next one.</p>\n\n\n\n<p>[00:15:58] <strong>Charlotte Bax:</strong> Next one is design and content creation. Yeah, what your website looks like. There&#8217;s lots of sustainable choices you can make in the assets that are shown on the front end, such as images, video, audio, the fonts that you use, the CSS styling, et cetera. We could do a whole podcast on that alone. So things I talked about previously this morning is scaling your images. Be very picky in your images.</p>\n\n\n\n<p>Also sometimes I see websites that have so many pictures on it. I think people are afraid to be boring or something. But use the images that are actually valuable to your content, to tell a story instead of just putting a thousand pictures on there just because. Because images, they tell more than a thousand words, but also images are very, very heavy compared to just plain text.</p>\n\n\n\n<p>[00:16:52] <strong>Nathan Wrigley:</strong> So I guess it&#8217;s, couple of things there. The first thing is use images when necessary. So that there&#8217;s not unnecessary images being loaded. But also I&#8217;m imagining that we&#8217;re probably trying to lean into newer image formats. So not only reducing the scale of the image so that it&#8217;s the correct dimensions and it&#8217;s not, you know, this giant image which is being shrunk in the browser, needlessly downloading a four megabyte image that really is like 150 kilobytes.</p>\n\n\n\n<p>[00:17:19] <strong>Charlotte Bax:</strong> I saw this like on a government website that I tested and there was this, a really small icon, it was like 36 pixels wide or something. And there was an image like 6,000 by 8,000 pixels loaded for that. And I was, my heart bleeded.</p>\n\n\n\n<p>[00:17:36] <strong>Nathan Wrigley:</strong> Yeah, this should have been about 3K and it was probably more in the sort of four or five megabyte territory.</p>\n\n\n\n<p>[00:17:41] <strong>Charlotte Bax:</strong> Yes, yes. I don&#8217;t know the exact numbers, but terrible.</p>\n\n\n\n<p>[00:17:44] <strong>Nathan Wrigley:</strong> But image formats are changing as well, aren&#8217;t they? You know, in the past we were, everybody familiar with PNGs and JPEGs and things like that. And now we&#8217;ve got things like WebP and AVIF images as well. My understanding is that they are significantly reduced in their scale, with no measurable difference in the way that you can see them. They look basically identical.</p>\n\n\n\n<p>[00:18:06] <strong>Charlotte Bax:</strong> Yes, yes. That&#8217;s really nice. WebP and AVIF, they are web friendly formats for your images and they are really lightweight. They also, they support transparent background and animation, so they are also really good alternatives to PNG and GIF, not only to JPEG.</p>\n\n\n\n<p>And what I also like is that you can change the image quality when exporting to that format. Just like with JPEG, you can say, I want quality of 90, or image quality of 80% or even less. And when you&#8217;re choosing something between 80 and 90%, usually you don&#8217;t really see the difference. You can just play around with that on your computer. But it&#8217;s significantly reduces the file size.</p>\n\n\n\n<p>[00:18:53] <strong>Nathan Wrigley:</strong> Yeah, I was playing around with something the other day and I was converting a JPEG image to a WebP image. And I went to a service, which enabled me to do that, and at 80% I genuinely couldn&#8217;t see any, I was really staring hard and I could not see a single pixel that was different.</p>\n\n\n\n<p>I think, you know, maybe if it was some incredibly detailed picture of some medical procedure or something like that, maybe. But in most cases it&#8217;s not necessary. But also if it&#8217;s going to represent a tiny icon on the website, upload an image which is a tiny icon in size. Don&#8217;t upload the big one and the browser handle that.</p>\n\n\n\n<p>[00:19:28] <strong>Charlotte Bax:</strong> Yeah, but also for icons, you can much better choose like a vector image, like SVG, because vector images when done right, I have seen it done wrong, which is terrible, but when done right, they are really lightweight and they are scalable without limits and without any loss of quality. And that&#8217;s really suitable for logos, for icons, for certain illustration styles. You can also use SVG really well.</p>\n\n\n\n<p>[00:19:56] <strong>Nathan Wrigley:</strong> Yeah, so that&#8217;s a really good point. So for what you might call like a bitmap image, you&#8217;ve got AVIF and WebP, they seem to be the ones that are out in the front at the moment. And then for things like logos, then some kind of vector based image, like an SVG where essentially it&#8217;s data, you know, it&#8217;s bezier curves and things like that. So it can really scale up, and it will still look just as good if it&#8217;s gigantic.</p>\n\n\n\n<p>So definitely listener, if you&#8217;re hearing this, go and explore those, it&#8217;s well worth it. I would say that WordPress, by default won&#8217;t allow you to upload an SVG image. You might need to get a plugin to help you out with that.</p>\n\n\n\n<p>[00:20:28] <strong>Charlotte Bax:</strong> My favorite for that is Safe SVG. I just put it on there as soon as I start a new website and then just put all the SVGs on there.</p>\n\n\n\n<p>[00:20:36] <strong>Nathan Wrigley:</strong> Yeah, it&#8217;s curious. It&#8217;s because it&#8217;s not truly an image. It&#8217;s kind of like a file format and so it potentially could contain some code which might be harmful to your website. But those plugins strip out all of that. That&#8217;s my understanding anyway.</p>\n\n\n\n<p>[00:20:47] <strong>Charlotte Bax:</strong> Yes. So indeed, if you use plugins like that, you are at less risk of malfunctioning code, not malfunction, maleficent code.</p>\n\n\n\n<p>[00:20:56] <strong>Nathan Wrigley:</strong> Yeah, like malware. You know, security problems, things like that.</p>\n\n\n\n<p>[00:20:59] <strong>Charlotte Bax:</strong> Yeah, but if you make your SVGs yourself, well, then you have control over that. You know there&#8217;s no malware in that, unless you put it there yourself.</p>\n\n\n\n<p>[00:21:06] <strong>Nathan Wrigley:</strong> I don&#8217;t know if you have an answer to this, but obviously video is really important on the web. You know, certain types of things that people are doing online, maybe not quite so much websites but, you know, things like Instagram and TikTok and things like that, it&#8217;s really, really popular.</p>\n\n\n\n<p>Do you know if there&#8217;s any similar thing happening like WebP and AVIF with movie formats? Is there anybody trying to compress those in a way that WebP and AVIF have been?</p>\n\n\n\n<p>[00:21:29] <strong>Charlotte Bax:</strong> I haven&#8217;t dived into that that much, but I know there is WebM I think. But also, MPEG and or MP4. They are really good compression techniques and as lightweight as you can make it.</p>\n\n\n\n<p>[00:21:45] <strong>Nathan Wrigley:</strong> I guess the same rules apply for images as for video though. You don&#8217;t needlessly put video on the website. And certainly it&#8217;s possible to deploy video in a way that it&#8217;s not as environmentally profound. You know, for example, auto play switched off.</p>\n\n\n\n<p>[00:22:00] <strong>Charlotte Bax:</strong> I really hate those websites with this automatically playing background video. I must admit, when I started out as a web designer, some of my first clients, they really wanted that, so I did it. But I had an opinion on that and I explained, I didn&#8217;t know anything about the sustainability part yet by then, but I explained that it is a big file that gets loaded automatically. It really slows down your website also, so it&#8217;s a bad user experience. So I recommend that they didn&#8217;t do it, but they really wanted to.</p>\n\n\n\n<p>But I really hate how some websites shove like an enormous amount of megabytes down your throat as a visitor by those autoplay background videos.</p>\n\n\n\n<p>[00:22:43] <strong>Nathan Wrigley:</strong> Yeah, and also I think there&#8217;s a move to make it so that, and I don&#8217;t know if the block editor, the video block automatically does this, I could be wrong about that. The idea of having an image placeholder instead of the video itself, because the mere putting the iframe onto the page, there&#8217;s some communication between, let&#8217;s say YouTube, if you&#8217;re embedding something from YouTube. Whereas really, you don&#8217;t need to engage YouTube until somebody&#8217;s actually clicked the play button. So having some placeholder there, click the button, click the image, and then the video begins to load. I guess there&#8217;s something there. That&#8217;s a good idea.</p>\n\n\n\n<p>[00:23:18] <strong>Charlotte Bax:</strong> I have a trick for that. When you embed a YouTube video or a Vimeo, they do the preload is none thing really good, which is nice, so you don&#8217;t shove that many megabytes through someone&#8217;s throat. But what YouTube does, and Vimeo also but less, is they put a lot of tracking scripts in that embed.</p>\n\n\n\n<p>So what I like to do is, so something I did for one of my latest websites for the Rotterdam Metal Band, Ann My Dice, they have this show reel of their newest songs on top of their homepage. And I put an image thumbnail there. And when you click that, it opens a modal. So the video and all those tracking scripts, they are loaded only when you click on a thumbnail to open the modal. That&#8217;s a nice little trick to work around that.</p>\n\n\n\n<p>[00:24:04] <strong>Nathan Wrigley:</strong> Yeah, so video and images, that&#8217;s a really easy win. There&#8217;s loads of things that you can do.</p>\n\n\n\n<p>There&#8217;s lots of services out there, both on your computer, but online where you can compress the images. And obviously we&#8217;ve talked about the different formats and not necessarily loading video.</p>\n\n\n\n<p>Okay, should we move on? Is there anything else on there?</p>\n\n\n\n<p>[00:24:21] <strong>Charlotte Bax:</strong> Yeah, yeah. There is caching of course, which can make a huge difference. WordPress is based on a database. So in theory, every time someone visits a page on your website, the server has to calculate the webpage and then send it over to your visitor.</p>\n\n\n\n<p>But if you use, for example, server side caching, you can do that once and send the generated page to all your visitors. So that saves a lot of computing energy server side. But there&#8217;s also browser caching, which means that certain assets that you can reuse, for example, your CSS style sheets, and your fonts, you can retain in a browser. So they don&#8217;t need to get loaded on every page your visitor goes to.</p>\n\n\n\n<p>[00:25:06] <strong>Nathan Wrigley:</strong> There&#8217;s so many different ways of tackling this, isn&#8217;t there? Whether that&#8217;s through your web host or a collection of plugins that you might use. But yeah, caching, the idea being that it&#8217;s stored somewhere, kind of ready to go. It&#8217;s already been created. Somebody just comes along and if you like, just picks it up.</p>\n\n\n\n<p>Whereas in the typical WordPress way, there&#8217;s this whole crunching of data. There&#8217;s all this PHP being rendered in the background. And the database is being called to construct the page. And really, if the page isn&#8217;t being changed from minute to minute, there&#8217;s no need for all of that. You can just have a cached version. And increasingly, you know, you don&#8217;t even have to make that cached version travel across the globe, because you can put it at the edge in different countries and so on and so forth. So there&#8217;s a whole load of interesting stuff. But caching enforce that where possible.</p>\n\n\n\n<p>[00:25:54] <strong>Charlotte Bax:</strong> If you have a, I always recommend people to look at their target audience for choosing their hosting. For example, I live in the Netherlands and my target audience is mostly Dutch companies and Dutch governments. So it makes sense for me to host my website in the Netherlands. But if your target audience is all over the world, I really recommend using a CDN to distribute all your cached web pages. It makes it more sustainable and it also makes it a lot quicker.</p>\n\n\n\n<p>[00:26:23] <strong>Nathan Wrigley:</strong> It&#8217;s curious that one, isn&#8217;t it? Because in many ways, using a CDN, you are creating a bigger footprint because there&#8217;s more, you know, instead of it being cached in one place, it&#8217;s now cached in multiple places. So there&#8217;s more caching happening. But the people who are absorbing that cache, using that cache, there&#8217;s a net benefit there because they have to travel less distance.</p>\n\n\n\n<p>So for example, if there&#8217;s a cache data center in Sydney, and some Australian user is using that, it doesn&#8217;t have to come all the way, for example, to London and then back again. So even though you are storing multiple versions of the cache around the world, the traffic that&#8217;s going backwards and forwards from that cache often will make up for that.</p>\n\n\n\n<p>[00:27:01] <strong>Charlotte Bax:</strong> Yeah, it&#8217;s really dependent on the situation and the size of your target audience because obviously if you only have like one visitor from Australia every month, it&#8217;s not worth it. So it&#8217;s also sort of, look at your own situation and make choices based on that.</p>\n\n\n\n<p>I always think about, like sustainability is not something like what you can and cannot do, but I like to view it as more as inspiring people and giving them the tools to actually make conscious choices instead of just doing what the masses do and what is easy.</p>\n\n\n\n<p>[00:27:37] <strong>Nathan Wrigley:</strong> Yeah, there&#8217;s no destination, is there, probably? It&#8217;s more of a journey. You&#8217;re kind of trying to do little bits, and chisel away the bits that you can. Okay, so caching is a whole other topic. You can no doubt go down that rabbit hole and spend the rest of your life there.</p>\n\n\n\n<p>[00:27:49] <strong>Charlotte Bax:</strong> Yes, yes. If you want to know more about caching, I think Ramon Fincken from Halvar knows more about that.</p>\n\n\n\n<p>[00:27:56] <strong>Nathan Wrigley:</strong> Okay, thank you. Okay, so there&#8217;s another one we&#8217;ve ticked off. Anything else on your list?</p>\n\n\n\n<p>[00:28:00] <strong>Charlotte Bax:</strong> Yes. There&#8217;s visitor management, because obviously the page weight is not the only factor of a website, but also you have to multiply that with all the page visits to get your total CO2 emissions over time.</p>\n\n\n\n<p>So if you have a lot of visitors, and that&#8217;s not only the human visitors, but also the bots of course, then that&#8217;s a lot of CO2 emissions. And that can be up to hundreds of times more than you actually realise.</p>\n\n\n\n<p>Joost de Valk had a really great talk about that a few years ago, 2022 at WordCamp Netherlands. I wasn&#8217;t there myself, but I have seen a YouTube video and I really, really recommend people checking that out because he can explain that really well.</p>\n\n\n\n<p>[00:28:44] <strong>Nathan Wrigley:</strong> So this is to do with the amount of traffic that you are getting.</p>\n\n\n\n<p>[00:28:47] <strong>Charlotte Bax:</strong> Yes, yes. The amount of traffic. So page weight times traffic is CO2 emissions basically.</p>\n\n\n\n<p>[00:28:53] <strong>Nathan Wrigley:</strong> Okay, interesting.</p>\n\n\n\n<p>[00:28:54] <strong>Charlotte Bax:</strong> Yes.</p>\n\n\n\n<p>[00:28:54] <strong>Nathan Wrigley:</strong> Okay. Next one.</p>\n\n\n\n<p>[00:28:56] <strong>Charlotte Bax:</strong> That&#8217;s the last one in my list. And that is sort of the cherry on top. And that is to make your website grid aware. I don&#8217;t know if you&#8217;re familiar with Fershad Irani. No. He is one of the pioneers in website sustainability. He does a lot of projects for the Green Web Foundation. And currently he is working on grid aware websites toolkits to make your website responsive to the energy mix on the local energy grid from your visitor. And he does that with Cloudflare CDN workers. I hope I explained that right because that&#8217;s an area that I&#8217;m less familiar with.</p>\n\n\n\n<p>But what it does, for example, if your website visitor is in an area where the energy grid is mostly running on fossil fuel energy, then it shows a more minimal experience of your website to the visitor. And when they are in an area where the grid is a big percentage renewable energy, then it shows a more rich experience of your website.</p>\n\n\n\n<p>[00:30:01] <strong>Nathan Wrigley:</strong> Gosh, that&#8217;s fascinating. So it&#8217;s like progressive enhancement, but for sustainability.</p>\n\n\n\n<p>[00:30:07] <strong>Charlotte Bax:</strong> Yes.</p>\n\n\n\n<p>[00:30:07] <strong>Nathan Wrigley:</strong> So I might see an entirely different page with, let&#8217;s say, I don&#8217;t know, a greater number of images on it or something like that, given the awareness that the website has of where I&#8217;m viewing it, or where it is being hosted? I wasn&#8217;t sure about that bit. Is it more about the visitor or more about the location of the hosting of that?</p>\n\n\n\n<p>[00:30:26] <strong>Charlotte Bax:</strong> It&#8217;s about the visitor in this case, yeah. And I think he does that in a really, really smart way. There&#8217;s also sort of a version of the toolkit that does it browser based. I don&#8217;t know enough about that to explain that right I think.</p>\n\n\n\n<p>[00:30:39] <strong>Nathan Wrigley:</strong> Genuinely, that&#8217;s fascinating. That really feels like he&#8217;s pushing the boundaries. What I&#8217;ll do is I&#8217;ll try to find a link to something.</p>\n\n\n\n<p>[00:30:46] <strong>Charlotte Bax:</strong> There is a page on the website of the Green Web Foundation, and if you contact Fershad through LinkedIn or Mastodon, or I&#8217;m happy to link you with him. He is currently working on it and he is looking for people and websites to experiment with it. I think it&#8217;s a really nice experiment to see how much effect this can have. I&#8217;m really curious.</p>\n\n\n\n<p>[00:31:07] <strong>Nathan Wrigley:</strong> It kind feels like a technology which is going to be very difficult to pull off, but very profound if it is pulled off. You can imagine high traffic websites, and I&#8217;m thinking of news organisations, for example, the BBC or something like that, that just have millions of views every few minutes, I would&#8217;ve thought, and could really benefit from something like that. You know, showing a different website. I&#8217;d never heard of that. That&#8217;s fascinating.</p>\n\n\n\n<p>[00:31:29] <strong>Charlotte Bax:</strong> Yeah, it&#8217;s a really new project. He&#8217;s still developing the toolkit right now. I think it&#8217;s a really amazing project and that could be really impactful for, yeah, those really high traffic websites. I have seen, earlier this week I had a video call with Fershad, and he showed me a demo version on, oh, I don&#8217;t know the name, I can&#8217;t recall it, but it was like an online magazine.</p>\n\n\n\n<p>There was this menu, there was just this dropdown in the menu bar with four items, live low, medium, and high. So you could choose the settings yourself, or you just could go with the live thing, based on your own energy grid where you were localised.</p>\n\n\n\n<p>[00:32:08] <strong>Nathan Wrigley:</strong> So like a demo, and you can pick how you would like to see it in four different versions. Okay.</p>\n\n\n\n<p>[00:32:12] <strong>Charlotte Bax:</strong> Yeah, yeah. The live version is like how it is shown based on your energy grid. But as a visitor, you can also choose your own way if you want to see the more rich version or the more minimised version. And the information on the website, it just stays the same of course, but it shows less images and that kind of stuff. But if you view it in the, like the minimalist version, you can still opt to see images if you want to by just clicking on it. It&#8217;s a really smart way he does that.</p>\n\n\n\n<p>[00:32:43] <strong>Nathan Wrigley:</strong> Yeah, it&#8217;s fascinating. So in my email client, for example, I have it set up, the default is do not show me images, and I just click a button, display images, and they all come in. I can&#8217;t pick which images, they all just come. But there&#8217;s a decision there, you know, it is like I&#8217;ve decided not to see all the images off the bat. Click a button and in they come.</p>\n\n\n\n<p>That is really interesting. So I presume the text would stay the same, because that&#8217;s the core of what the website is probably offering, text. But, you know, do you want a heavy experience in terms of data? Well, there it is. There&#8217;s all the images and the videos. Yeah, okay, I will follow that up. That sounds fascinating.</p>\n\n\n\n<p>So we&#8217;re at we WordCamp EU. This is all about WordPress. How do you feel WordPress, by default, so ignoring any plugins, if I just chuck a default version of WordPress, a vanilla version of WordPress out there, how does it do in terms of sustainability compared to other things in the environment?</p>\n\n\n\n<p>[00:33:33] <strong>Charlotte Bax:</strong> Oh, that&#8217;s really funny because I haven&#8217;t really done any research into that. What I have done is I made, it&#8217;s some time ago, but I checked some of the WordPress vanilla themes against some of my favorite themes, just making a staging website with only lorem ipsum paragraph, and just the vanilla theme, and then checking how much page weight it is, and how much CO2 emissions on first load. But that&#8217;s ages ago. And I, maybe you just sort of started a new project in my head.</p>\n\n\n\n<p>[00:34:05] <strong>Nathan Wrigley:</strong> Ah, nice.</p>\n\n\n\n<p>[00:34:07] <strong>Charlotte Bax:</strong> Measure the CO2 emissions of WordPress themes and vanilla WordPress. I think that&#8217;s a good idea.</p>\n\n\n\n<p>[00:34:12] <strong>Nathan Wrigley:</strong> Yeah, because it feels to me, especially if you&#8217;re using a WordPress default theme, they do seem to be quite light, you know, there&#8217;s a lot of text and very, I mean, some of the themes that we&#8217;ve had in the past, I can&#8217;t remember, I&#8217;m just trying to conjure it up, it might have been 2021 or something like that. It was basically all text. And I just wondered if WordPress itself could be proud of its sustainability over time, or whether it was something that, you know, compared to other CMSs but, you know, if you don&#8217;t have that data, that&#8217;s okay.</p>\n\n\n\n<p>[00:34:40] <strong>Charlotte Bax:</strong> I don&#8217;t have the data, but I do think that maybe WordPress could be more of a front runner in terms of sustainability. For example, I learned that Drupal already has like a sustainability policy and they&#8217;re doing certain things on that. But unfortunately, our own sustainability team got canceled.</p>\n\n\n\n<p>But yesterday, during Contributor Day, there were like 10 people or something, they really wanted to do a sustainability table, so we just impromptu did that. The table cards, they were there. So we just did it and we formed a new team. Still unofficial. I have no idea how it happened, but apparently I&#8217;m a team rep now. There are some of the old sustainability team members that also want to continue their work. So we sort of started an impromptu petition to get the sustainability team their official status back, so it can become a core value of WordPress.</p>\n\n\n\n<p>And I think that it would really help WordPress to be a front runner, especially in Europe where sustainability is, as far as I know, sustainability is a bigger thing in Europe than in America or Asia. That&#8217;s how I feel it. And I think if we don&#8217;t jump on that sustainability bandwagon, we could really lose market share.</p>\n\n\n\n<p>[00:35:58] <strong>Nathan Wrigley:</strong> Yeah, I think you&#8217;re right. I&#8217;m curious about the sustainability team. So you are talking about Contrib Day yesterday?</p>\n\n\n\n<p>[00:36:03] <strong>Charlotte Bax:</strong> Yes.</p>\n\n\n\n<p>[00:36:05] <strong>Nathan Wrigley:</strong> An impromptu sustainability team sort of set itself up and just carried on as if nothing had happened. So that&#8217;s interesting.</p>\n\n\n\n<p>[00:36:11] <strong>Charlotte Bax:</strong> Yes. Not really as if nothing had happened. Most of the time we spent on like strategising how to get this back on the road again, and how to continue because the previous team, they did really great work and I just latched on a few weeks before they got closed down and I think it&#8217;s really sad.</p>\n\n\n\n<p>[00:36:29] <strong>Nathan Wrigley:</strong> Well, you&#8217;ve given us loads of really interesting tips. Hopefully the listeners to this have gathered some useful information. Realised that it&#8217;s a profoundly important and moral topic to be involved in.</p>\n\n\n\n<p>Should anybody wish to contact you and get into a conversation about how they could become involved, or just some tips or what have you, where do we find you, Charlotte?</p>\n\n\n\n<p>[00:36:48] <strong>Charlotte Bax:</strong> You can find me on LinkedIn. You can find Digihobbit on LinkedIn, and you can also find Digihobbit on Mastodon. I&#8217;m not really on like the regular social media channels, but that&#8217;s a whole different topic to discuss. I also have a personal LinkedIn profile, but if you want to link with me personally, just add a message to it so I sort of know the context.</p>\n\n\n\n<p>[00:37:08] <strong>Nathan Wrigley:</strong> Okay. So dear listener, I will put everything that we&#8217;ve talked about today, all of the Green Web Foundation&#8217;s, and other varied links into the show notes. Head to wptavern.com and search for the episode with Charlotte Bax.</p>\n\n\n\n<p>So Charlotte Bax, thank you very much for chatting to me today. I really appreciate it.</p>\n\n\n\n<p>[00:37:22] <strong>Charlotte Bax:</strong> Thank you very much, Nathan, for having me.</p>\n\n\n\n<p>[00:37:24] <strong>Nathan Wrigley:</strong> You&#8217;re most welcome.</p>\n</div></details>\n\n\n\n<p>On the podcast today we have <a href=\"https://www.linkedin.com/company/digihobbit/\">Charlotte Bax</a>.</p>\n\n\n\n<p>Charlotte is a sustainable web designer with a background in both environmentally conscious living and technology. Beginning her journey as a sustainable lifestyle blogger, she soon merged her passion for sustainability with her skills in web design, rebranding herself as Digihobbit. For several years now, Charlotte has been focused on building websites that prioritise low carbon footprints, and she is also the founder of the climate tech startup ENNOR Toolbox for Online Sustainability, which helps measure the CO2 emissions of websites and web applications.</p>\n\n\n\n<p>When we made this recording, Charlotte had just finished presenting at WordCamp Europe on the topic of how to make your website more sustainable, and her presentation is the topic of the podcast today.</p>\n\n\n\n<p>We talk about digital environmental impact, the hidden pollution our websites create through their energy use and infrastructure. Charlotte explains some striking facts about the carbon footprint of ICT, noting that if the internet were a country, it would be the seventh largest polluter globally.</p>\n\n\n\n<p>She shares a wide array of practical steps for web professionals to reduce the environmental impact of their sites. You’ll hear about the benefits of green web hosting, using modern image formats like WebP and AVIF, optimising architecture and UX to minimise unnecessary page loads, the crucial role of caching, as well as some new innovations like grid-aware websites which adapt themselves based on the renewable energy mix available to users in real time.</p>\n\n\n\n<p>The conversation also touches on Charlotte’s involvement in WordPress sustainability initiatives, the importance of multiplying small improvements across high-traffic sites, and the moral imperative web creators have to help shape a greener internet.</p>\n\n\n\n<p>If you’ve ever wondered how digital choices impact the planet, and what steps you can take today to help, this episode is for you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Useful links</h2>\n\n\n\n<p><a href=\"https://digihobbit.nl/\">Charlotte&#8217;s Digihobbit website</a></p>\n\n\n\n<p><a href=\"https://www.linkedin.com/company/digihobbit/\">Charlotte on LinkedIn</a></p>\n\n\n\n<p><a href=\"https://mastodon.social/@digihobbit\">Charlotte on Mastodon</a></p>\n\n\n\n<p><a href=\"https://www.websitecarbon.com/\"> Website Carbon calculator</a> by Whole Grain Digital</p>\n\n\n\n<p><a href=\"https://www.ennor.earth/ennor-for-web/\"> ENNOR Toolbox for Online Sustainability</a></p>\n\n\n\n<p><a href=\"https://abookapart.com/products/sustainable-web-design.html\"> Sustainable Web Design</a> by Tom Greenwood</p>\n\n\n\n<p><a href=\"https://www.thegreenwebfoundation.org/\"> Green Web Foundation</a></p>\n\n\n\n<p><a href=\"https://wordpress.org/plugins/safe-svg/\"> Safe SVG plugin</a></p>\n\n\n\n<p><a href=\"https://annmydice.nl/\">Charlotte&#8217;s website for the band Ann My Dice</a></p>\n\n\n\n<p><a href=\"https://www.linkedin.com/in/ramonfincken/\">Ramon Fincken</a> on LinkedIn</p>\n\n\n\n<p><a href=\"https://wordpress.tv/2022/11/17/joost-de-valk-improve-the-environment-start-with-your-website/\">Improve the environment. Start with your website!</a> Joost de Valk&#8217;s talk at WordCamp Nederland 2022</p>\n\n\n\n<p><a href=\"https://fershad.com/\">Fershad Irani&#8217;s website</a></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 16 Jul 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:30;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"Open Channels FM: Fresh Series, New Names, and the Power of Repurposed Content\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=102900\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"https://openchannels.fm/fresh-series-new-names-and-the-power-of-repurposed-content/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:181:\"BobWP shares insights on the podcast’s rebrand, focusing on evolving content, elevating community voices, and repurposing past episodes, plus series changes aimed at storytelling.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 16 Jul 2025 10:19:02 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"Open Channels FM: Open Source Projects Can Benefit From Cross-pollination\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100598\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"https://openchannels.fm/open-source-projects-can-benefit-from-cross-pollination/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:354:\"In open source communities, it’s easy to focus on just one platform. Whether you&#8217;re deep into WordPress, Drupal, or another CMS, it’s tempting to stay within your comfort zone. But stepping outside your usual ecosystem can offer valuable insights not just about other tools but about your own. One theme that emerged in a conversation [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 16 Jul 2025 09:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:32;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:38:\"HeroPress: The Journey Of Pratik Bhatt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=8064\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:128:\"https://heropress.com/essays/the-journey-of-pratik-bhatt/#utm_source=rss&utm_medium=rss&utm_campaign=the-journey-of-pratik-bhatt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:10481:\"<img alt=\"Pull Quote: You’re going to build not just websites but a life that helps others build theirs too.\" class=\"attachment-large size-large wp-post-image\" height=\"512\" src=\"https://heropress.com/wp-content/uploads/3025/07/071425-min.jpg\" width=\"1024\" /><p>Hello! I’m Pratik Bhatt — a WordPress developer, community contributor, a small-town dreamer, an open-heart surgery survivor, a gamer and someone who found meaning in life through code, community, and courage. My journey is one of resilience, gratitude and purpose — and I hope it inspires even one person who reads it.</p>\n\n\n\n<h2 class=\"kt-adv-heading8064_72e88e-eb wp-block-kadence-advancedheading\">Early Life in Bhavnagar: Born for Battles</h2>\n\n\n\n<p>I was born in a humble neighborhood of Bhavnagar, a small but vibrant coastal town in Gujarat. Life gave me my first challenge almost immediately. At the age of 3.5 years, I underwent open-heart surgery — a life-saving procedure that left its mark not only on my chest but on my soul. Even before I could understand what pain meant I had survived it.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Just two years later, I lost my father. I was only five.</p>\n</blockquote>\n\n\n\n<p>That loss could have broken me, but instead it introduced me to a hero — my mother. She worked tirelessly, day and night, playing both roles with fierce love and unimaginable strength. Her sacrifices were quiet, constant and invisible to the world, but they were the scaffolding on which my entire future was built. I owe everything I am today to her.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-teenage-years-games-chess-and-growth\">Teenage Years: Games, Chess, and Growth</h2>\n\n\n\n<p>In my teens, I gravitated toward strategy games and problem-solving — perhaps a subconscious expression of navigating a complex life so early. I participated in Open Bhavnagar chess tournaments, developing a love for logic and structured thinking. That same mindset later translated perfectly into coding.</p>\n\n\n\n<p>Computers were rare, internet slower than a whisper and resources limited. Yet, I spent hours in cyber cafés, exploring the world behind the screen. Each click was a step toward a new identity — not as a survivor but as a builder.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-college-at-pacific-university-udaipur-discovery-and-identity\">College at Pacific University, Udaipur: Discovery and Identity</h2>\n\n\n\n<p>I went on to pursue my Bachelor of Engineering at Pacific University in Udaipur, where I found more than just an education — I found my voice and versatility.</p>\n\n\n\n<p>I earned a strong reputation in quiz contests, debates, and elocution competitions. I enjoyed the thrill of standing on stage, thinking fast and expressing clearly — a skill that would later shape my professional communication and leadership.</p>\n\n\n\n<p>I was also a dedicated gamer and proudly won a Need for Speed: Most Wanted tournament during college. That rush of speed and control mirrored how I wanted to approach life — with confidence and calculated risk. I also ranked 3rd in the college chess championship, keeping my connection to strategic thinking alive.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wordpress-my-lifeline-my-living\">WordPress: My Lifeline, My Living</h2>\n\n\n\n<p>As I entered the professional world, I was introduced to WordPress — and everything changed.</p>\n\n\n\n<p>I still remember the moment I activated my first theme. The way an idea turned into a visual reality — with structure, responsiveness and purpose — was nothing sort of magic to me. That moment, I knew: this is what I want to do for the rest of my life.</p>\n\n\n\n<p>Over the time, WordPress became my bread and butter — quite literally. It provided me with the skills, opportunities and financial independence to build a life I never thought possible.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>But more than money, WordPress showed me the path to life.</p>\n</blockquote>\n\n\n\n<p>It empowered me to give businesses a voice, bring local shops online, connect NGOs to donors and allow countless creators to share their passion. Every site I built wasn’t just a project; it was a platform for someone’s dream.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-12-years-of-development-amp-dedication\">12+ Years of Development &amp; Dedication</h2>\n\n\n\n<p>Today, with over 12 years of experience in the WordPress ecosystem, I have worked with global clients, built plugins and custom themes, contributed to enterprise sites and created solutions that matter. I have helped startups launch, helped NGOs amplify their causes, and empowered entrepreneurs from Tier-2 and Tier-3 cities to reach the world.</p>\n\n\n\n<p>Whether I’m architecting a complex WooCommerce store, writing a custom plugin, improving performance, or debugging client pain points, my goal is simple: to build things that are fast, reliable, and human-focused.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-power-of-community-meetups-wordcamps-amp-more\">The Power of Community: Meetups, WordCamps &amp; More</h2>\n\n\n\n<p>While code gave me a career, it was the WordPress community that gave me connection, energy, and growth. I love attending local meetups and WordCamps, where ideas flow freely, support is abundant, and friendships are formed over coffee and code.</p>\n\n\n\n<p>In 2023, I was honored to be part of the organizing team for WordCamp Ahmedabad, one of the biggest community events in India. </p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Seeing hundreds of attendees come together to learn and celebrate open-source was a proud and emotional moment for me — especially knowing how far I had come from Bhavnagar to that stage.</p>\n</blockquote>\n\n\n\n<p>I also had the privilege of being a volunteer at WordCamp Asia, the flagship WordPress event for the entire continent. It was humbling to support an event of such magnitude, and heartening to see how diverse and inclusive the global WordPress family truly is. Being part of such efforts is not just service — it’s gratitude in action.</p>\n\n\n\n<p>For me, meetups and WordCamps aren’t just events — they’re where I recharge my soul, share my knowledge, and feel deeply connected to a global family.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-hobbies-beyond-the-keyboard\">Hobbies Beyond the Keyboard</h2>\n\n\n\n<p>When I’m not writing code, I embrace life through small joys and soulful moments.</p>\n\n\n\n<p>I’m a nature lover and plant enthusiast. Gardening gives me peace, patience, and a quiet form of discipline.</p>\n\n\n\n<p>I’m a cricket fan — I love playing as much as watching, especially when Team India is in action. The game reflects my life: unpredictable, strategic, and driven by passion.</p>\n\n\n\n<p>I enjoy driving — especially night drives when the roads are empty and music flows freely.</p>\n\n\n\n<p>I’m also someone who loves being around animals. I find their presence grounding and healing. At home, I have a pet rabbit, who is more than a companion — he’s a part of my family and a source of daily joy.</p>\n\n\n\n<p>Speaking of joy, music is my biggest hobby. Whether I&#8217;m coding or relaxing, there’s always a soundtrack playing in the background. Songs help me express what words can’t.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-giving-back-amp-building-others\">Giving Back &amp; Building Others</h2>\n\n\n\n<p>Having come from a small town with limited resources, I’m deeply passionate about helping others rise. I actively mentor young developers, especially those from underprivileged or non-metro backgrounds. I want them to know that success is possible — regardless of where you start.</p>\n\n\n\n<p>My dream is to one day launch a tech training program in Bhavnagar — to teach local youth about WordPress, freelancing and digital skills. </p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>If WordPress could change my life, it can certainly change theirs.</p>\n</blockquote>\n\n\n\n<p>I also regularly contribute to forums, help organize events, speak at community meetups and make time to guide freshers through their first steps in this amazing ecosystem.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-life-has-taught-me\">What Life Has Taught Me</h2>\n\n\n\n<p>Here are some core beliefs that guide me every day:</p>\n\n\n\n<p>Heartbeats are precious — I don’t take a single one for granted.</p>\n\n\n\n<p>Struggle isn’t a setback — it’s a setup for something greater.</p>\n\n\n\n<p>Community is strength — whether in a family, a WordCamp or a GitHub issue thread.</p>\n\n\n\n<p>You can come from anywhere — what matters is where you’re going and how many you uplift on the way.</p>\n\n\n\n<p>Technology can heal, empower and connect — if used with empathy.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-looking-forward-the-journey-ahead\">Looking Forward: The Journey Ahead</h2>\n\n\n\n<p>I’m excited about the future of WordPress — especially AI, full-site editing, headless architecture and performance innovations. I aim to stay at the forefront of these changes, continuing to build solutions that empower users and delight clients.</p>\n\n\n\n<p>I also plan to write a book one day — part memoir, part manual — about how open source, open hearts and open minds can transform even the most limited beginnings.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-in-closing\">In Closing</h2>\n\n\n\n<p>If I could go back and speak to the younger version of myself — lying on a hospital bed at 3.5 years old or watching my mother&#8217;s struggle silently or feeling like the world was too big for a boy from Bhavnagar — I’d say:</p>\n\n\n\n<p>“You’re going to make it. You’re going to build not just websites but a life that helps others build theirs too.”</p>\n\n\n\n<p>I don’t just develop WordPress sites.</p>\n\n\n\n<p>I develop opportunities, relationships and meaningful digital footprints.</p>\n\n\n\n<p>And every time I hit &#8220;Activate Theme&#8221; or push a release, I think of the journey it took to get here — and the journey still ahead.</p>\n\n\n\n<p>If you&#8217;re someone who believes in purpose, people and potential — let&#8217;s connect. Let’s build. Let’s inspire</p>\n<p>The post <a href=\"https://heropress.com/essays/the-journey-of-pratik-bhatt/\">The Journey Of Pratik Bhatt</a> appeared first on <a href=\"https://heropress.com\">HeroPress</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 16 Jul 2025 03:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Pratik Bhatt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:33;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"WordPress.org blog: WordPress 6.8.2 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18903\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2025/07/wordpress-6-8-2-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:10703:\"<h2 class=\"wp-block-heading\">WordPress 6.8.2 is now available!</h2>\n\n\n\n<p>This minor release includes fixes for <a href=\"https://core.trac.wordpress.org/query?resolution=fixed&amp;milestone=6.8.2&amp;group=component&amp;col=id&amp;col=summary&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=status&amp;col=priority&amp;order=priority\">20 Core tickets</a> and <a href=\"https://github.com/WordPress/gutenberg/pull/70557\">15 Block Editor issues</a>. For a full list of bug fixes, please refer to the <a href=\"https://make.wordpress.org/core/2025/07/08/wordpress-6-8-2-rc1-is-now-available/\">release candidate announcement.</a></p>\n\n\n\n<p>WordPress 6.8.2 is a short-cycle maintenance release. More maintenance releases may be made available throughout 2025.</p>\n\n\n\n<p>If you have sites that support automatic background updates, the update process will begin automatically.</p>\n\n\n\n<p>You can <a href=\"https://wordpress.org/wordpress-6.8.2.zip\">download WordPress 6.8.2 from WordPress.org</a>, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”. For more information on this release, please <a href=\"https://wordpress.org/support/wordpress-version/version-6-8-2\">visit the HelpHub version page</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Dropping security updates for WordPress versions 4.1 through 4.6</h2>\n\n\n\n<p>This is not directly related to the 6.8.2 maintenance release, but <a href=\"https://wordpress.org/news/2025/06/dropping-security-updates-for-wordpress-versions-4-1-through-4-6/\">branches 4.1 to 4.6 had their final release today</a>. These branches won&#8217;t receive any security update anymore.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Thank you to these WordPress contributors</h2>\n\n\n\n<p>WordPress 6.8.2 was led by <a href=\"https://profiles.wordpress.org/audrasjb/\">Jb Audras</a>, <a href=\"https://profiles.wordpress.org/estelaris/\">Estela Rueda</a> and <a href=\"https://profiles.wordpress.org/zunaid321/\">Zunaid Amin</a>.</p>\n\n\n\n<p>Special thanks to <a class=\"mention\" href=\"https://profiles.wordpress.org/davidbaumwald/\"><span class=\"mentions-prefix\">@</span>davidbaumwald</a>, <a class=\"mention\" href=\"https://profiles.wordpress.org/sergeybiryukov/\"><span class=\"mentions-prefix\">@</span>sergeybiryukov</a>, <a class=\"mention\" href=\"https://profiles.wordpress.org/mamaduka/\"><span class=\"mentions-prefix\">@</span>mamaduka</a>, <a class=\"mention\" href=\"https://profiles.wordpress.org/wildworks/\"><span class=\"mentions-prefix\">@</span>wildworks</a> and <a class=\"mention\" href=\"https://profiles.wordpress.org/jorbin/\"><span class=\"mentions-prefix\">@</span>jorbin</a> for their help on specific release tasks.</p>\n\n\n\n<p>WordPress 6.8.2 would not have been possible without the contributions of the following 96 people. Their asynchronous coordination to deliver maintenance fixes into a stable release is a testament to the power and capability of the WordPress community.</p>\n\n\n\n<p class=\"is-style-wporg-props-medium has-white-color has-midnight-gradient-background has-text-color has-background has-link-color has-normal-font-size wp-elements-2ad7deb15a87fd29427f001e4c18a1ac\"><a href=\"https://profiles.wordpress.org/jorbin\">Aaron Jorbin</a>, <a href=\"https://profiles.wordpress.org/adamsilverstein\">Adam Silverstein</a>, <a href=\"https://profiles.wordpress.org/zieladam\">Adam Zieliński</a>, <a href=\"https://profiles.wordpress.org/wildworks\">Aki Hamano</a>, <a href=\"https://profiles.wordpress.org/alexstine\">Alex Stine</a>, <a href=\"https://profiles.wordpress.org/anatolbroder\">Anatol Broder</a>, <a href=\"https://profiles.wordpress.org/afercia\">Andrea Fercia</a>, <a href=\"https://profiles.wordpress.org/nacin\">Andrew Nacin</a>, <a href=\"https://profiles.wordpress.org/ankitkumarshah\">Ankit Kumar Shah</a>, <a href=\"https://profiles.wordpress.org/annezazu\">annezazu</a>, <a href=\"https://profiles.wordpress.org/azharderaiya\">Azhar Deraiya</a>, <a href=\"https://profiles.wordpress.org/benjamingosset\">Benjamin Gosset</a>, <a href=\"https://profiles.wordpress.org/bhubbard\">Brandon Hubbard</a>, <a href=\"https://profiles.wordpress.org/kraftbj\">Brandon Kraft</a>, <a href=\"https://profiles.wordpress.org/brhodes\">brhodes</a>, <a href=\"https://profiles.wordpress.org/poena\">Carolina Nymark</a>, <a href=\"https://profiles.wordpress.org/czarate\">Chris Zarate</a>, <a href=\"https://profiles.wordpress.org/courane01\">Courtney Robertson</a>, <a href=\"https://profiles.wordpress.org/talldanwp\">Daniel Richards</a>, <a href=\"https://profiles.wordpress.org/darshitrajyaguru97\">Darshit Rajyaguru</a>, <a href=\"https://profiles.wordpress.org/davidbaumwald\">David Baumwald</a>, <a href=\"https://profiles.wordpress.org/dmsnell\">Dennis Snell</a>, <a href=\"https://profiles.wordpress.org/dhruvang21\">Dhruvang21</a>, <a href=\"https://profiles.wordpress.org/dilipbheda\">Dilip Bheda</a>, <a href=\"https://profiles.wordpress.org/dd32\">Dion Hulse</a>, <a href=\"https://profiles.wordpress.org/divinenephron\">divinenephron</a>, <a href=\"https://profiles.wordpress.org/dustintechsmith\">dustintechsmith</a>, <a href=\"https://profiles.wordpress.org/ericlewis\">Eric Andrew Lewis</a>, <a href=\"https://profiles.wordpress.org/im3dabasia1\">Eshaan Dabasiya</a>, <a href=\"https://profiles.wordpress.org/estelaris\">Estela Rueda</a>, <a href=\"https://profiles.wordpress.org/eherman24\">Evan Herman</a>, <a href=\"https://profiles.wordpress.org/fabiankaegy\">Fabian Kägy</a>, <a href=\"https://profiles.wordpress.org/faisalahammad\">Faisal Ahammad</a>, <a href=\"https://profiles.wordpress.org/flixos90\">Felix Arntz</a>, <a href=\"https://profiles.wordpress.org/pento\">Gary Pendergast</a>, <a href=\"https://profiles.wordpress.org/guddu1315\">Gaurang Dabhi</a>, <a href=\"https://profiles.wordpress.org/mamaduka\">George Mamadashvili</a>, <a href=\"https://profiles.wordpress.org/gernberg\">gernberg</a>, <a href=\"https://profiles.wordpress.org/gziolo\">Greg Ziółkowski</a>, <a href=\"https://profiles.wordpress.org/harshgajipara\">Harsh Gajipara</a>, <a href=\"https://profiles.wordpress.org/helgatheviking\">HelgaTheViking</a>, <a href=\"https://profiles.wordpress.org/abcd95\">Himanshu Pathak</a>, <a href=\"https://profiles.wordpress.org/audrasjb\">Jb Audras</a>, <a href=\"https://profiles.wordpress.org/JeffPaul\">Jeffrey Paul</a>, <a href=\"https://profiles.wordpress.org/jdy68\">Jenny Dupuy</a>, <a href=\"https://profiles.wordpress.org/luminuu\">Jessica Lyschik</a>, <a href=\"https://profiles.wordpress.org/jigarpanchal\">Jigar Panchal</a>, <a href=\"https://profiles.wordpress.org/joedolson\">Joe Dolson</a>, <a href=\"https://profiles.wordpress.org/joemcgill\">Joe McGill</a>, <a href=\"https://profiles.wordpress.org/johnbillion\">John Blackbourn</a>, <a href=\"https://profiles.wordpress.org/mindctrl\">John Parris</a>, <a href=\"https://profiles.wordpress.org/jonsurrell\">Jon Surrell</a>, <a href=\"https://profiles.wordpress.org/desrosj\">Jonathan Desrosiers</a>, <a href=\"https://profiles.wordpress.org/spacedmonkey\">Jonny Harris</a>, <a href=\"https://profiles.wordpress.org/kausaralm\">Kausar Alam</a>, <a href=\"https://profiles.wordpress.org/kishanjasani\">Kishan Jasani</a>, <a href=\"https://profiles.wordpress.org/tyxla\">Marin Atanasov</a>, <a href=\"https://profiles.wordpress.org/matt\">Matt Mullenweg</a>, <a href=\"https://profiles.wordpress.org/pfefferle\">Matthias Pfefferle</a>, <a href=\"https://profiles.wordpress.org/megane9988\">megane9988</a>, <a href=\"https://profiles.wordpress.org/mosescursor\">Moses Cursor Ssebunya</a>, <a href=\"https://profiles.wordpress.org/mukesh27\">Mukesh Panchal</a>, <a href=\"https://profiles.wordpress.org/mwillman1991\">mwillman1991</a>, <a href=\"https://profiles.wordpress.org/bugnumber9\">Nazar Hotsa</a>, <a href=\"https://profiles.wordpress.org/nidhidhandhukiya\">nidhidhandhukiya</a>, <a href=\"https://profiles.wordpress.org/nikunj8866\">Nikunj Hatkar</a>, <a href=\"https://profiles.wordpress.org/oferlaor\">oferlaor</a>, <a href=\"https://profiles.wordpress.org/oglekler\">Olga Gleckler</a>, <a href=\"https://profiles.wordpress.org/swissspidy\">Pascal Birchler</a>, <a href=\"https://profiles.wordpress.org/paulstanos\">paulstanos</a>, <a href=\"https://profiles.wordpress.org/peterwilsoncc\">Peter Wilson</a>, <a href=\"https://profiles.wordpress.org/puggan\">puggan</a>, <a href=\"https://profiles.wordpress.org/ravigadhiyawp\">Ravi Gadhiya</a>, <a href=\"https://profiles.wordpress.org/youknowriad\">Riad Benguella</a>, <a href=\"https://profiles.wordpress.org/rollybueno\">Rolly Bueno</a>, <a href=\"https://profiles.wordpress.org/room34\">room34</a>, <a href=\"https://profiles.wordpress.org/sainathpoojary\">Sainath Poojary</a>, <a href=\"https://profiles.wordpress.org/sajjad67\">Sajjad Hossain Sagor</a>, <a href=\"https://profiles.wordpress.org/Sam_a\">sam_a</a>, <a href=\"https://profiles.wordpress.org/sandeepdahiya\">Sandeep Dahiya</a>, <a href=\"https://profiles.wordpress.org/SergeyBiryukov\">Sergey Biryukov</a>, <a href=\"https://profiles.wordpress.org/shanemuir\">Shane Muirhead</a>, <a href=\"https://profiles.wordpress.org/siliconforks\">siliconforks</a>, <a href=\"https://profiles.wordpress.org/sirlouen\">SirLouen</a>, <a href=\"https://profiles.wordpress.org/sabernhardt\">Stephen Bernhardt</a>, <a href=\"https://profiles.wordpress.org/sukhendu2002\">Sukhendu Sekhar Guria</a>, <a href=\"https://profiles.wordpress.org/karmatosed\">Tammie Lister</a>, <a href=\"https://profiles.wordpress.org/TobiasBg\">Tobias Bäthge</a>, <a href=\"https://profiles.wordpress.org/wpsmith\">Travis Smith</a>, <a href=\"https://profiles.wordpress.org/ugyensupport\">Ugyen Dorji</a>, <a href=\"https://profiles.wordpress.org/uxl\">uxl</a>, <a href=\"https://profiles.wordpress.org/westonruter\">Weston Ruter</a>, <a href=\"https://profiles.wordpress.org/whaze\">whaze</a>, <a href=\"https://profiles.wordpress.org/getsyash\">Yash B</a>, <a href=\"https://profiles.wordpress.org/yogeshbhutkar\">Yogesh Bhutkar</a>, and <a href=\"https://profiles.wordpress.org/zunaid321\">Zunaid Amin</a></p>\n\n\n\n<h2 class=\"wp-block-heading\">How to contribute</h2>\n\n\n\n<p>To get involved in WordPress core development, head over to Trac, <a href=\"https://core.trac.wordpress.org/report/6\">pick a ticket</a>, and join the conversation on Slack, in the <a href=\"https://wordpress.slack.com/archives/C02RQBWTW\">#core</a> and <a href=\"https://wordpress.slack.com/archives/C080HLPP2Q6\">#6-8-release-leads</a> channels. Need help? Check out the <a href=\"https://make.wordpress.org/core/handbook/\">Core Contributor Handbook</a>.</p>\n\n\n\n<p class=\"has-text-align-right\"><em>Thanks to <a class=\"mention\" href=\"https://profiles.wordpress.org/estelaris/\"><span class=\"mentions-prefix\">@</span>estelaris</a> and <a class=\"mention\" href=\"https://profiles.wordpress.org/zunaid321/\"><span class=\"mentions-prefix\">@</span>zunaid321</a> for proofreading.</em></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 15 Jul 2025 15:41:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"Jb Audras\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:34;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"Open Channels FM: Rethinking Global Remote Work Opportunities in Open Source\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100594\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"https://openchannels.fm/rethinking-global-remote-work-opportunities-in-open-source/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:383:\"Remote work has been a defining feature of tech culture for years, but it has become especially prominent in open source communities. As more professionals build careers within globally distributed teams, the conversation around cross-border employment has grown more relevant than ever. One insight that stands out is the potential for developers and digital professionals [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 15 Jul 2025 09:48:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:91:\"WordPress.org blog: Celebrating Kim Parsell: 2025 WordCamp US Scholarship Applications Open\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18911\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"https://wordpress.org/news/2025/07/kim-parsell-2025-wcus-scholarship-applications-open/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4936:\"<p>The WordPress Foundation is pleased to announce the return of the <strong>Kim Parsell Memorial Scholarship</strong> for WordCamp US 2025. Applications are being accepted until <strong>July 25, 2025</strong>.</p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img alt=\"\" class=\"wp-image-18912\" height=\"370\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/07/wpdocs-team-1.webp?resize=604%2C370&#038;ssl=1\" style=\"border-width: 25px; border-radius: 40px;\" width=\"604\" /></figure>\n\n\n\n<div class=\"wp-block-group has-off-white-2-background-color has-background is-layout-constrained wp-container-core-group-is-layout-6cbf45de wp-block-group-is-layout-constrained\" style=\"margin-top: 48px; margin-bottom: 48px; padding-top: 24px; padding-bottom: 24px;\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"></div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Remembering Kim Parsell</h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img alt=\"\" class=\"wp-image-18956\" height=\"400\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/07/Kim-parsell-twitter-image-2.jpeg?resize=400%2C400&#038;ssl=1\" width=\"400\" /></figure>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Kim Parsell was a dedicated contributor and a beloved member of the WordPress community. Her passion for open source and her welcoming spirit inspired many, both online and in person. Each year at WordCamp US, the WordPress Foundation celebrates Kim’s legacy by supporting contributors who share her commitment and enthusiasm. The Kim Parsell Memorial Scholarship aims to make it easier for deserving community members to attend WordCamp US, reflecting Kim’s belief in making WordPress accessible and inclusive for all.</p>\n</div>\n</div>\n\n\n\n<p>If you’re unfamiliar with Kim’s story or her invaluable role in the community, we encourage you to <a href=\"https://us.wordcamp.org/2019/memories-of-kim-parsell/\">read these heartfelt tributes</a> collected from friends and colleagues.</p>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"></div>\n</div>\n</div>\n\n\n\n<h2 class=\"wp-block-heading\">Scholarship Eligibility</h2>\n\n\n\n<p>This year, a single scholarship will be awarded. To qualify, applicants must:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Identify as a woman</li>\n\n\n\n<li>Be actively involved as a contributor to WordPress</li>\n\n\n\n<li>Have never attended WordCamp US before</li>\n\n\n\n<li>Demonstrate a need for financial support to attend the event</li>\n</ul>\n\n\n\n<p>If you meet these qualifications, we invite you to apply before the July 25 deadline. All applicants will be notified of the decision by August 7, 2025.</p>\n\n\n\n<p>For additional information, visit the <a href=\"https://wordpressfoundation.org/projects/kim-parsell-memorial-scholarship/\">Kim Parsell Memorial Scholarship page</a> hosted by the WordPress Foundation.</p>\n\n\n\n<div class=\"wp-block-group has-off-white-2-background-color has-background is-layout-constrained wp-container-core-group-is-layout-8503c47b wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-spacer\" style=\"height: 50px;\"></div>\n\n\n\n<p class=\"has-text-align-center has-large-font-size\"><strong>Ready to Apply?</strong></p>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 25px;\"></div>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https://wordcampcentral.survey.fm/wcus-2025-kim-parsell-scholarship-application\">Submit Your Application Today</a></div>\n</div>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 50px;\"></div>\n</div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img alt=\"\" class=\"wp-image-18917\" height=\"333\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/07/kim-jose.jpeg?resize=500%2C333&#038;ssl=1\" style=\"border-width: 25px; border-radius: 40px;\" width=\"500\" /></figure>\n\n\n\n<h2 class=\"wp-block-heading\">Join the Celebration</h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tickets for WordCamp US 2025 are now available—secure yours soon!</li>\n\n\n\n<li>Volunteer applications are open until July 11, 2025</li>\n\n\n\n<li>Interested in supporting the event? Explore our <a>sponsorship opportunities</a></li>\n</ul>\n\n\n\n<p>Help us spread the word about this opportunity and make WordCamp US 2025 even more special.</p>\n\n\n\n<p></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 14 Jul 2025 18:57:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Brett McSherry\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:36;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:99:\"Open Channels FM: What Investors Really Want: Funding Insights for Digital and Open Source Founders\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100588\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:105:\"https://openchannels.fm/what-investors-really-want-funding-insights-for-digital-and-open-source-founders/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:234:\"In the evolving digital commerce landscape, successful funding requires strong founder-investor relationships, clear problem-solving focus, and ethical considerations, emphasizing collaborative growth and effective product strategies.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 14 Jul 2025 09:38:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:37;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"Gravatar: What is Federated Identity Management and How Does it Work\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"http://blog.gravatar.com/?p=3371\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://blog.gravatar.com/2025/07/11/federated-identity-management/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:15494:\"<p>You know that moment when you breeze into a new app by clicking “Sign in with Google”? That’s not magic. It’s federated identity management (FIM). </p>\n\n\n\n<p>It lets you hop between apps and services using just one login, no password juggling required.</p>\n\n\n\n<p>You’ve likely got usernames and passwords scattered across what feels like half the internet. It’s a mess for users, and an even bigger migraine for developers trying to build secure login systems from scratch.</p>\n\n\n\n<p>FIM solves this core <a href=\"https://blog.gravatar.com/2024/08/01/why-digital-identity-management-is-crucial-for-modern-businesses/\">problem of digital identity management</a> by creating trusted links between different platforms. So instead of managing dozens of accounts, you just maintain one primary identity that does the heavy lifting across multiple services.</p>\n\n\n\n<p>In this article, we’ll unpack:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>How identity providers and service providers team up to make login friction-free.</li>\n\n\n\n<li>The protocols behind the magic – SAML, OAuth, OpenID Connect.</li>\n\n\n\n<li>Why FIM systems are more secure <em>and</em> more user-friendly than the old-school alternatives.</li>\n\n\n\n<li>How tools like Gravatar bring federated identity to the everyday user, not just the enterprise crowd.</li>\n</ul>\n\n\n\n<p>So, let’s dig into how federated identity is rewriting the rules of online access.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What is federated identity management?</h2>\n\n\n\n<p>Federated identity management lets users log into multiple services with just one set of credentials – even if those services belong to entirely different organizations or live in separate security realms.</p>\n\n\n\n<p>In short: One login, many doors.</p>\n\n\n\n<p>The clever part? While users enjoy the simplicity of a single sign-in, each organization still keeps tight control over its own systems and data. Everyone wins – convenience for users, boundaries for businesses.</p>\n\n\n\n<p>At its heart, FIM solves a very modern dilemma: Too many passwords, not enough patience. By reducing login clutter whilst safeguarding security, it keeps systems streamlined and users sane.</p>\n\n\n\n<p>For example:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A university student signs into their campus portal with their regular uni login.</li>\n\n\n\n<li>From there, they can hop into a <a href=\"https://workspace.google.com/\">Google Workspace</a> to submit assignments, dive into academic databases, or access publishing platforms with no additional accounts.</li>\n\n\n\n<li>Their university identity just&#8230; goes with them.</li>\n</ul>\n\n\n\n<p>This all works thanks to behind-the-scenes handshake deals called <a href=\"https://blog.gravatar.com/2024/08/01/why-digital-identity-management-is-crucial-for-modern-businesses/#:~:text=5.%20Federation,across%20multiple%20systems.%20With%20technologies\"><em>federated identity agreements</em></a>. The university acts as the identity provider, backing the student’s identity. Services like Google Workspace act as service providers, trusting that endorsement and granting access accordingly.</p>\n\n\n\n<p>It all works through carefully coordinated <a href=\"https://blog.gravatar.com/2024/05/04/authentication-protocols/\">authentication protocols</a> working behind the scenes. These standards let systems talk to each other securely. Only the essentials get shared, passwords never stray from their home base, and users keep control of their data.</p>\n\n\n\n<p>Now, let’s dig into how those protocols do their thing.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Key protocols and standards: SAML, OAuth, and OpenID Connect</h3>\n\n\n\n<p>Federated identity might sound like something dreamt up in a sci-fi novel, but it’s really just about helping different services trust each other enough to vouch for <em>you</em>. </p>\n\n\n\n<p>That way, you’re not logging in twelve times before breakfast. Instead, a handful of protocols quietly do the work to keep things smooth, secure, and repeat-login free.</p>\n\n\n\n<p>Here are the big three making that happen:</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>SAML (Security Assertion Markup Language)</strong></h4>\n\n\n\n<p>SAML is basically the corporate go-to when it comes to easy sign-ins. It’s what lets employees hop between internal tools (HR systems, dashboards, intranets etc.) without juggling five passwords and a daily identity crisis.</p>\n\n\n\n<p>Here’s the gist:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You try to access a service (say, the company HR portal).</li>\n\n\n\n<li>You’re bounced over to the company’s identity provider.</li>\n\n\n\n<li>You log in with your usual details.</li>\n\n\n\n<li>The service gets a SAML assertion – a signed digital nod that says, “Yep, this person checks out”.</li>\n</ul>\n\n\n\n<p>It’s especially handy in enterprise and B2B settings, where you need airtight security and rich user data. If you’re into technical deep dives, the <a href=\"https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security\">OASIS SAML Technical Committee</a> has the specs.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>OAuth 2.0</strong></h4>\n\n\n\n<p>OAuth isn’t really about proving <em>who</em> you are; it’s about saying <em>what</em> an app can do on your behalf.</p>\n\n\n\n<p>That moment when you “Sign in with Google”, OAuth is just passing a temporary access token that tells the app, “This person’s cool with you looking at their calendar (but hands off their emails).” It’s <a href=\"https://blog.gravatar.com/2024/05/10/oauth-2-0-simplified-unraveling-authorization-protocols/\">identity permission management</a>, not identity confirmation.</p>\n\n\n\n<p>It’s like handing out a key that only opens one room in the house, and only for a short time. You can learn more about it on <a href=\"https://oauth.net/2/\">the OAuth 2.0 site</a>.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>OpenID Connect</strong></h4>\n\n\n\n<p>OpenID Connect builds on OAuth 2.0 by enabling proper ID verification. It’s what makes one-click logins like “Sign in with Apple” or “Sign in with Google” actually log you <em>in</em>, not just hand out permissions.</p>\n\n\n\n<p>It works by adding an identity token that securely shares who you are with the service. So now, it’s not just “this person said yes,” it’s “this person is Alice, email verified, and here’s the proof.”</p>\n\n\n\n<p>Want to build with it? The <a href=\"https://openid.net/connect/\">OpenID Connect specs</a> are the go-to guide for implementation.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"Federated identity management systems comparison\" class=\"wp-image-3379\" height=\"360\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/06/federated-identity-management-systems.png?w=660\" width=\"660\" /></figure>\n\n\n\n<h3 class=\"wp-block-heading\">Identity providers vs. service providers: Roles in the FIM ecosystem</h3>\n\n\n\n<p>In federated identity management (FIM), two main players run the show: The identity provider (IdP) and the service provider (SP). Knowing what each does is key to understanding how FIM works.</p>\n\n\n\n<p>Identity providers handle the login. They verify who you are; whether that’s Google, Microsoft, your university, or your company’s system. The IdP stores your credentials and confirms your identity to other services.</p>\n\n\n\n<p>Service providers are the apps and platforms you want to access using that login, like <a href=\"https://www.zoom.com/\">Zoom</a>, <a href=\"https://www.dropbox.com/\">Dropbox</a>, or academic databases.</p>\n\n\n\n<p>Here’s what happens when you click “Sign in with Google”:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Google (the IdP) checks your credentials.</li>\n\n\n\n<li>It tells the service provider you’re authenticated.</li>\n\n\n\n<li>The service provider grants access without ever seeing your password.</li>\n</ul>\n\n\n\n<p>This split keeps things secure. Your passwords stay with trusted IdPs, so you’re not juggling new logins for every service. And if a service provider is breached, your credentials are still safe.</p>\n\n\n\n<p>For organizations, it simplifies access control. IT teams can grant or revoke access from the IdP side, managing all connected services in one go when people join or leave.</p>\n\n\n\n<h2 class=\"wp-block-heading\">FIM vs. single sign-on: Key differences explained</h2>\n\n\n\n<p><a href=\"https://blog.gravatar.com/2024/05/09/single-sign-on-solutions/\">Single sign-on</a> (SSO) is the big crowd-pleaser: One login, and you’re in. Email, HR tools, task boards, wiki rabbit holes – it’s all yours, no repeated password dance required. </p>\n\n\n\n<p>The catch is it all lives within the borders of your organization. Handy, yes. But fenced in.</p>\n\n\n\n<p>Federated identity management (FIM) takes things a step further. Same single login magic, but this time the credentials can travel. Across platforms. Across orgs. Across ecosystems. It’s SSO with a passport.</p>\n\n\n\n<p>Here’s how that plays out:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>With SSO, a university student signs in once and gets access to campus email, class materials, and the meal plan portal.<br /></li>\n\n\n\n<li>With FIM, that same login gets them into external research libraries, academic collaboration tools, and third-party cloud drives, all run by different providers.</li>\n</ul>\n\n\n\n<p>Both SSO and FIM save you from juggling five logins and twenty browser tabs. Both boost security by keeping authentication centralised. The difference? FIM doesn’t stop at the edge of your organization, it builds trust between systems that aren’t under the same roof.</p>\n\n\n\n<p>To make this work, FIM needs a little extra backend choreography. To work smoothly across domains, it relies on protocols like SAML, OAuth, or OpenID Connect (the same ones we unpacked earlier). </p>\n\n\n\n<p>SSO inside a single org skips the extra tech since everything’s already playing on the same team.</p>\n\n\n\n<p>So: SSO keeps things simple within your four walls. FIM gets you past the gates.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Gravatar&#8217;s profiles-as-a-service: A simplified approach to federated identity</h2>\n\n\n\n<p><a href=\"https://gravatar.com/\">Gravatar</a> makes federated identity feel less like an enterprise buzzword and more like something regular people can actually use. It takes the big, often baffling ideas behind FIM and packages them into something simple, familiar, and weirdly elegant.</p>\n\n\n\n<p>Let’s start with the magic trick: <em>Update once, sync everywhere</em>. </p>\n\n\n\n<p>Change your photo or bio on Gravatar and – ta-da – it updates across every platform that supports it, from WordPress comment sections to your GitHub commits. No faff. No repeat uploads. Just instant consistency, quietly flexing the whole “federated identity” concept in real life.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"Gravatar - a primer for federated identity management\" class=\"wp-image-3380\" height=\"358\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/06/federated-identity-management-gravatar-update-once.gif?w=660\" width=\"660\" /></figure>\n\n\n\n<p>What really makes it click, though, is how Gravatar ties your identity to your email address instead of your name. That lets you switch gears effortlessly:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>One email for your work persona.</li>\n\n\n\n<li>Another for hobby projects.</li>\n\n\n\n<li>A third for your incognito forum life.</li>\n</ul>\n\n\n\n<p>Each one becomes its own lightweight identity provider. And because Gravatar plays nicely with WordPress, GitHub, Slack, OpenAI (and plenty more), your profile travels with you like a loyal companion.</p>\n\n\n\n<p>Gravatar skips the corporate complexity in favor of something far more accessible, especially for solo operators and smaller teams.</p>\n\n\n\n<p>Best of all? It’s free. And since it’s backed by <a href=\"https://automattic.com/\">Automattic</a>, Gravatar takes ideas that used to live inside enterprise IT departments and hands them over to the rest of us.</p>\n\n\n\n<h3 class=\"wp-block-heading\">How developers can leverage Gravatar&#8217;s API for cross-domain identity</h3>\n\n\n\n<p>If you’re a developer staring down the barrel of yet <em>another</em> user profile system, take a breath. Gravatar’s got your back. Our API is basically a plug-and-play shortcut to “<a href=\"https://blog.gravatar.com/2024/06/03/profiles-as-a-service/\">profiles-as-a-service</a>,” and integrating it is almost suspiciously easy.</p>\n\n\n\n<p>Instead of wrestling with databases, uploads, and custom logic, you can hook into Gravatar’s infrastructure with just a few lines of code. Here’s what you get:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://docs.gravatar.com/sdk/images/\">Avatars in all the sizes</a> you’ll need.</li>\n\n\n\n<li>Verified social links.</li>\n\n\n\n<li>User bios and display names.</li>\n\n\n\n<li>Professional details, neatly packaged.</li>\n</ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"Avatar sizes with Gravatar for identity management\" class=\"wp-image-3381\" height=\"177\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/06/federated-identity-management-avatar-size-gravatar.png?w=660\" width=\"660\" /></figure>\n\n\n\n<p>It’s a clean fix for the mess of cross-domain identity. One Gravatar profile works across <em>every</em> platform that supports the API. No more begging users to upload the same photo (again). No more duplicated effort.</p>\n\n\n\n<p>And here’s what makes things even better: the docs are actually helpful. Whether you’re calling our REST API or grabbing an SDK, <a href=\"https://docs.gravatar.com/\">our Gravatar tutorials</a> walk you through everything from basic avatar fetching to pulling in full profiles.</p>\n\n\n\n<p>Building your own profile system could eat up weeks or months. With Gravatar, you’ll be done before your coffee goes cold. Plus, you skip the long-term headaches: Maintenance, security patches, user complaints – all gone.</p>\n\n\n\n<p>If you&#8217;re working on a comment thread, a full-blown app, or anything in between, Gravatar delivers a clean, federated identity solution minus the enterprise bloat.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Create your digital passport today</h2>\n\n\n\n<p>Gravatar makes federated identity simple and available to everyone, whether you&#8217;re a solo creator or a full-stack developer. </p>\n\n\n\n<p>One profile, thousands of platforms: WordPress, GitHub, Slack, OpenAI… all covered.</p>\n\n\n\n<p>You simply update your profile once, and it syncs <em>everywhere</em>. No more hunting down forgotten logins just to swap out a profile pic or tweak a bio.</p>\n\n\n\n<p>For developers, it’s a breeze: Just a few lines of code, and your users get a polished, cross-platform experience without the headache of building your own identity infrastructure.</p>\n\n\n\n<p>Gravatar’s been trusted by millions for over a decade, and it’s backed by <a href=\"https://automattic.com/\">Automattic</a>, the same folks behind WordPress.com and a whole suite of web heavyweights. </p>\n\n\n\n<p>It’s free, privacy-conscious, and puts you firmly in control.</p>\n\n\n\n<p>Ready to streamline your online presence? <a href=\"https://gravatar.com/\">Set up your free Gravatar</a> and make profile chaos a thing of the past.</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https://gravatar.com/connect/?gravatar_from=blog\"><img alt=\"\" class=\"wp-image-2616\" height=\"729\" src=\"https://blog.gravatar.com/wp-content/uploads/2024/12/free_profile_cta.png\" width=\"3243\" /></a></figure>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 11 Jul 2025 18:30:51 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Ronnie Burt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"Jonathan Desrosiers: The Ghosts of Unactivated Contributors\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:38:\"https://jonathandesrosiers.com/?p=5954\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"https://jonathandesrosiers.com/2025/07/the-ghosts-of-unactivated-contributors/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:15053:\"<p class=\"\">I’m so glad <a href=\"https://binatethoughts.com/\">Tammie</a> was (partially) inspired to <a href=\"https://binatethoughts.com/first-props-and-contribution-journeys/\">reflect on the beginning of her contribution journey </a>after reading my <a href=\"https://jonathandesrosiers.com/2025/07/12-years-contributing-to-wordpress/\">12 year first contribution anniversary post</a>. I love reading these stories! They really ignite a meditative mindset.</p>\n\n\n\n<p class=\"\">I’m currently up in the <a href=\"https://en.wikipedia.org/wiki/White_Mountains_(New_England)\">White Mountains</a> on a family vacation. I read her post with my morning coffee before my wife and I set out to hike <a href=\"https://www.visitwhitemountains.com/listing/mount-willard-trailhead/143/\">Mount Willard</a> as part of our attempt to tackle the <a href=\"https://www.kenmacgray.org/52/\">52 With A View</a>. I know, I should be better about disconnecting, but her reflections had me thinking on the trail.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-everyone-is-just-figuring-it-out-whatever-that-means\">Everyone is just “figuring it out” (whatever that means)</h2>\n\n\n\n<p class=\"\">It’s interesting how the contributors you looked up to when getting started that you assumed were well established were actually still finding their way.</p>\n\n\n\n<p class=\"\">Tammie is a great example of this. I remember looking at comments she made and thinking they were insightful and based on lots of experience. They were and still are, but her experience was not what I had assumed. Her experience at the time was just not yet from contributing to WordPress. She too was wandering around looking for the path that looked just right at the same time as me.</p>\n\n\n\n<p class=\"\">“Figuring it out” also means something different to everyone. And “it” can also change over time. The best path today will likely not be a good fit in 10 years, 5 years, or even 6 months.</p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full wp-lightbox-container\"><img alt=\"\" class=\"wp-image-5965 not-transparent\" height=\"1920\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/07/img_1969-scaled.jpg\" width=\"2560\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">An increasingly foggy part of the trail on Mount Willard in the White Mountain National Forest.<br /></figcaption></figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-activating-observers\">Activating Observers</h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">“A simple code review or “great job” can be the difference between a one-time contributor and a future maintainer. You never know what someone needs to hear, so be generous with feedback.”</p>\n</blockquote>\n\n\n\n<p class=\"\">This is something I <a href=\"https://maintaine.rs/desrosj\">included in my essay</a> for the <a href=\"https://maintaine.rs\">Maintaine.rs</a> book. In Tammie’s post, she interestingly had a sentence that struck me as the exact opposite of that statement.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">“Our projects are full of the ghosts of contributors we never activated, and that fuels me to see potential in every person who gives up their time.”</p>\n</blockquote>\n\n\n\n<p class=\"\">What happens when we don’t put our best forward, if it wasn’t enough, or wasn’t what someone needed to hear? Obviously we can’t (and shouldn’t) attract or keep everyone who passes by the communities we care for to join in our efforts. But what about those who <em>were</em> good fits but just weren’t engaged with in the right way?</p>\n\n\n\n<p class=\"\">Maybe documentation was lacking. Maybe expectations were unclear. Or maybe they sensed a maintainer was being territorial towards an area of the project they look after. This excerpt from <a href=\"https://producingoss.com\">Producing Open Source Software</a> is relevant here:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">Watch out for participants who try to stake out exclusive ownership of certain areas of the project, and who seem to want to do all the work in those areas, to the extent of aggressively taking over work that others start. Such behavior may even seem healthy at first. After all, on the surface it looks like the person is taking on more responsibility, and showing increased activity within a given area. But in the long run, it is destructive. When people sense a &#8220;no trespassing&#8221; sign, they stay away. This results in reduced review in that area, and greater fragility, because the lone developer becomes a single point of failure. Worse, it fractures the cooperative, egalitarian spirit of the project.</p>\n\n\n\n<p class=\"\"><a href=\"https://producingoss.com/en/producingoss.html#territoriality\">Karl Fogel. Producing Open Source Software. Chapter 8: Preventing Territoriality</a></p>\n</blockquote>\n\n\n\n<p class=\"\">Sometimes letting people find their way means not engaging at all. Not every contributor requires an eager welcome or hand-holding. Over-engaging can also be a bad thing. Knowing how to gauge the appropriate level of interaction is a skill that comes with time.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-different-paths-for-different-people\">Different Paths For Different People</h2>\n\n\n\n<p class=\"\">On our hike, I noticed that the route my wife took was almost never the same as the one I took on the same exact path. I wasn’t intentionally avoiding her footprints, I was just subconsciously choosing what looked best to me.</p>\n\n\n\n<p class=\"\">The same is true in a large community. Instead of rigid groupings with strict criteria that must be met, establish decision-making frameworks that encourage flexibility guided in foundational principles.</p>\n\n\n\n<p class=\"\">I sometimes observe new contributors trying to make sense of activity by forcing everything into specific categories, paths, or types. While it makes a lot of sense as a first step, that can quickly lead to frustration and burn out because it just doesn’t work like that at scale.</p>\n\n\n\n<p class=\"\">Paths also manifest to individuals differently. Sometimes they’re rocky and sometimes not. Sometimes it’s rocky but one giant smooth rock instead of many little ones, and occasionally the surface is just a little slippery. Everyone proceeds at their own pace. If you believe in the mission and have purpose, continue on despite the form the path takes in front of you. </p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-avoid-congregating-at-the-top\">Avoid Congregating At The Top</h2>\n\n\n\n<p class=\"\">Two Summers ago while also in New Hampshire, we took the <a href=\"https://mt-washington.com/?gad_source=1&amp;gad_campaignid=20890652283&amp;gbraid=0AAAAApFtTRv45-wTrqsc07TBDgP6gkw8H&amp;gclid=EAIaIQobChMI-KP6vamzjgMVmVhHAR1NZQFMEAAYASAAEgJBF_D_BwE\">Mount Washington Auto Road</a> to the top of the <a href=\"https://en.m.wikipedia.org/wiki/Mount_Washington\">6,288 foot highest point in New England</a>. When we reached the summit, the weather was drastically different (30-40MPH gusts, cloudy, and 35°F) than at the base (high 80°s F, calm, clear and sunny).</p>\n\n\n\n<p class=\"\">Besides the weather, something else stood out.  There was a line ~100 people long waiting for a chance to take a photo in front of the summit sign.</p>\n\n\n\n<figure class=\"wp-block-image size-full wp-lightbox-container\"><img alt=\"A long line of people at the top of Mount Washington lined up to take a photo with the summit sign.\" class=\"wp-image-5962 not-transparent\" height=\"2560\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/07/img_1681-scaled.jpg\" width=\"1920\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">The line at the top of Mount Washington. </figcaption></figure>\n\n\n\n<p class=\"\">When everyone crowds toward the “top,” we risk losing the balance and continuity that healthy communities need. It’s not about reaching the summit. Rather, it’s about ensuring the entire path is well-traveled, well-marked, and connected.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-don-t-meet-at-the-top\">Don’t Meet At The Top</h2>\n\n\n\n<p class=\"\">We never truly make it to the “top” because it’s not a static thing. This is especially true in technology where everything is constantly changing and evolving. Thus, “getting to the top” is the wrong goal. Instead, our goal should be to connect with as many people as we can at the many points paths intersect along the way. Put differently, we should be building connections between as many paths as possible.</p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full wp-lightbox-container\"><img alt=\"A bed of ferns in the foreground at the peak of Mount Willard.  It’s foggy, but a highway can be seen in the background almost 3,000 feet below.\" class=\"wp-image-5972 not-transparent\" height=\"1920\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/07/img_2017-scaled.jpg\" width=\"2560\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">The view from the peak of Mount Willard at 2,865 feet.</figcaption></figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-those-who-predate-us\">Those Who Predate Us</h2>\n\n\n\n<p class=\"\">There was a very old stone wall covered in moss on the hike and I found myself thinking: how many others had used the same path before me? How many people <em>lived</em> on this mountain before the trail existed? There’s no true way to know, especially if everyone is respecting the <a href=\"https://www.forestsociety.org/forest-journal-column/carrying-about-carry-carry-out\">carry in, carry out</a> mindset. Instead, the signs will be very subtle and require an astute eye.</p>\n\n\n\n<p class=\"\">Footprints, paths worn down from traffic, and in more obvious cases, others actually passing you on your way. While each path is unique, <em>where</em> your path takes you is rarely untraveled. Learn to spot the differences and adjust accordingly.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-many-small-trickles-fill-a-basin\">Many Small Trickles Fill A Basin</h2>\n\n\n\n<p class=\"\">When you drink from the fire hose of a large Open Source project like WordPress, it’s easy to lose sight of the cumulative efforts that are required to create such a strong and steady flow. But like basins and streams, it takes many small trickles to fill them.</p>\n\n\n\n<figure class=\"wp-block-gallery alignwide has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full wp-lightbox-container\"><img alt=\"\" class=\"wp-image-5974 not-transparent\" height=\"2560\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/07/img_2033-scaled.jpg\" width=\"1920\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">A small trickle of water halfway up Mount Willard.</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-full wp-lightbox-container\"><img alt=\"\" class=\"wp-image-5964 not-transparent\" height=\"1920\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/07/img_1960-scaled.jpg\" width=\"2560\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Centennial Pool found near the start of the trail on Mount Willard.</figcaption></figure>\n</figure>\n\n\n\n<p class=\"\">Our work isn’t measured only by the splash of large contributions, but by the steady trickle of small acts that feed a thriving ecosystem. If we want future contributors to drink from the same basin, we need to show them how every small drop matters.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-judging-effectiveness-by-noise\">Judging Effectiveness By Noise</h2>\n\n\n\n<p class=\"\">As we got close to the end of the hike, we started hearing cars on the highway again. The trail we took was an out and back loop. In this situation, it meant we were in the right place. But when we started the hike, the opposite was true.</p>\n\n\n\n<p class=\"\">When participating in a community, the level of “noise” can be used to gauge whether your work is on target. </p>\n\n\n\n<p class=\"\">When beginning to work on a foundational task that only a few people can advise on, that often means you’re in the right space. But once you’ve shared that idea with the wider community, silence could mean you’ve missed the mark.</p>\n\n\n\n<p class=\"\">Still, silence isn’t always failure. Sometimes it’s just the sound of others listening, considering, and preparing to walk their own part of the trail that you’ve created.</p>\n\n\n\n<p class=\"has-text-align-right\"><em>Featured image credit: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0</a> licensed <a href=\"https://wordpress.org/photos/photo/1056619c2d/\">photo</a> by <a href=\"https://wordpress.org/photos/author/soycelycruz/\">soycelycruz</a> from the <a href=\"https://wordpress.org/photos/\">WordPress Photo Directory</a>.</em></p>\n<p>The post <a href=\"https://jonathandesrosiers.com/2025/07/the-ghosts-of-unactivated-contributors/\">The Ghosts of Unactivated Contributors</a> appeared first on <a href=\"https://jonathandesrosiers.com\">Jonathan Desrosiers</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 11 Jul 2025 01:55:36 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:39;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:112:\"WordPress.org blog: Introducing WordPress Credits: A New Contribution Internship Program for University Students\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18913\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:127:\"https://wordpress.org/news/2025/07/introducing-wordpress-credits-a-new-contribution-internship-program-for-university-students/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4768:\"<p>The WordPress Foundation is proud to launch WordPress Credits, a contribution-focused internship program that brings university students into the heart of the WordPress open source project. While WordPress thrives on contributions from a global volunteer community, many students and newcomers face barriers to entry, such as a lack of structured guidance or real-world experience in open source projects. This new program is designed to bridge that gap, nurturing future contributors and ensuring WordPress remains innovative, inclusive, and sustainable for years to come.</p>\n\n\n\n<p>The <a href=\"https://gamma.app/docs/EN-WordPress-Credits-vz0k2vr1ulg91qq?mode=doc\">pilot program</a>, developed in partnership with the University of Pisa, was announced on stage at WordCamp Europe 2025 by Matt Mullenweg and Mary Hubbard. Since then, it has attracted interest from students across various fields of study, including humanities, computer science, and communication. Companies in the WordPress ecosystem have also expressed support and interest in contributing to the project. In response to the growing interest from both community members and academic institutions, we are now inviting more universities to join the initiative.</p>\n\n\n\n<p>Open to students from all fields of study, the program blends structured onboarding with a personalized contribution project. Activities are adapted to each student’s degree program and familiarity with WordPress, aiming to develop transferable skills, academic-related competencies, and active participation in the WordPress community. Internship durations may vary depending on the university or educational institution. Some may align with academic semesters (typically 3–4 months), while others, like the University of Pisa, allow students to sign up year-round with a requirement to complete a set number of contribution hours (e.g. 150 hours). Flexible arrangements can be discussed to meet the specific requirements of each institution.</p>\n\n\n\n<p>Foundational Training includes:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An introduction to open source principles and the WordPress Foundation</li>\n\n\n\n<li>Getting familiar with community tools (Slack, Make blogs, Learn platform, GitHub)</li>\n\n\n\n<li>Setting up a personal WordPress site and publishing content</li>\n</ul>\n\n\n\n<p>Each student will choose a contribution area and design their own personal project within that area. Examples of possible projects include:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Translating interfaces or documentation</li>\n\n\n\n<li>Creating multilingual subtitles for educational videos</li>\n\n\n\n<li>Contributing code or performing testing</li>\n\n\n\n<li>Supporting product development or design</li>\n\n\n\n<li>Writing or editing content</li>\n\n\n\n<li>Assisting with community event organization</li>\n\n\n\n<li>Developing training materials for Learn WordPress</li>\n\n\n\n<li>Creating open source tools</li>\n\n\n\n<li>And much more…<br /></li>\n</ul>\n\n\n\n<p>Interns are guided by an experienced mentor specific to their chosen area and supported by a dedicated WordPress Foundation contact person throughout the program. All student contributions, whether code, translations, documentation, or educational materials, will be publicly visible and integrated into official WordPress projects and resources, directly benefiting the wider community.</p>\n\n\n\n<p><strong>Interested universities and educational institutions</strong> interested in participating can reach out by filling <a href=\"https://wordpressdotorg.survey.fm/wordpress-credits-educational-institution-interest-form\">the interest form</a>.</p>\n\n\n\n<p>We also invite companies in the WordPress ecosystem to support this initiative by sponsoring mentors who will guide and empower the next generation of contributors, or by providing tools and resources that help students succeed in their contribution journey. </p>\n\n\n\n<p><strong>If your company is interested in getting involved</strong>, please visit the <a href=\"https://make.wordpress.org/handbook/wordpress-credits-contribution-internship-program/get-involved-company-guide/\">Company Guide</a> to learn more and <a href=\"https://wordpressdotorg.survey.fm/wordpress-credits-%E2%80%93-company-interest-form\">fill out the form</a> to join the program.</p>\n\n\n\n<p><em>By welcoming students, mentors, sponsors, and volunteers into this initiative, we are building a stronger and more connected WordPress community. Each person who takes part, whether they guide a student, share their experiences, provide sponsorship, or simply help spread the word, helps ensure that open source remains vibrant and accessible for all. Together, we are not just supporting individual contributors; we are shaping the future of WordPress and open source itself.</em></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 10 Jul 2025 16:56:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Isotta Peira\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:40;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"Open Channels FM: Generalists, Pricing Advice, and AI’s Role in Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=101131\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:94:\"https://openchannels.fm/beyond-hosting-generalists-pricing-advice-and-ais-role-in-development/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:197:\"In this episode of Dev Pulse, hosts chat with Jason Cosper about the challenges and humor in infrastructure, consulting rates, communication, and the evolving role of AI in tech work and workflows.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 10 Jul 2025 10:54:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:41;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"Tammie Lister: First props and contribution journeys\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://binatethoughts.com/?p=2374\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://binatethoughts.com/first-props-and-contribution-journeys/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7370:\"<p>This post was inspired by the awesome posts from <a href=\"https://jonathandesrosiers.com/2025/07/12-years-contributing-to-wordpress/\">Jonathan Desrosiers</a> and <a href=\"https://felix-arntz.me/blog/10-lessons-from-10-years-of-contributing-to-wordpress-core/\">Felix Arntz</a>, who celebrated their contribution anniversaries with reflection. It made me muse on how critical those first points, the initial steps in a contribution journey, are. I began reflecting on my own &#8216;firsts&#8217; and the people who helped me achieve them.</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img alt=\"\" class=\"wp-image-2379\" height=\"1024\" src=\"https://binatethoughts.com/wp-content/uploads/2025/07/openart-ea520274-880f-4365-ac51-784abc7802b1.png\" width=\"1024\" /></figure>\n\n\n\n<h2 class=\"wp-block-heading\">Reflecting</h2>\n\n\n\n<p>I am never one to celebrate anniversaries in general, and as a result, I admit I let my slide, both personally and professionally. That isn&#8217;t a pattern I suggest anyone should follow, though; it&#8217;s essential to acknowledge where you have been and who helped you get there.</p>\n\n\n\n<p>In open source, those who have been involved in the project for a longer time may have always known what they are doing. This is far from the truth. Those who enabled my first props also had their own. Often, though, the first prop isn&#8217;t the first entrance into the project. It can be an incredible moment that empowers someone, though, by recognising their work. Often, props can come after a few stages in a contribution journey, and we might forget that. That path was one I followed, taking time to explore adjacent spaces before even finding my way around the space.</p>\n\n\n\n<h2 class=\"wp-block-heading\">My first props</h2>\n\n\n\n<p>I admit I don&#8217;t recall ever looking up my first props before and I found mine this time but it took a bit. It was a nice moment that aligned with my contribution story to see my props split across core and BuddyPress. It also reflected how I took time before props to get settled in.</p>\n\n\n\n<p>My first appearance in this space was in core, and then I rapidly ended up in adjacent areas, such as the theme review team and BuddyPress. On reflection, this could have been a different story. It could have been one of the contributor who pivoted out, never finding their space. So, I am grateful for finding a space and to those contributors who caught me.</p>\n\n\n\n<p>My first BuddyPress props was by <a href=\"https://profiles.wordpress.org/djpaul/\">Paul Gibbs</a>, and it was on <a href=\"https://buddypress.trac.wordpress.org/changeset/3462\">11/12/2010</a>. My first core props came a few years later, and it was by <a href=\"https://profiles.wordpress.org/helen/\">Helen Hou-Sandi</a> on <a href=\"https://binatethoughts.com/?page_id=2375\">03/01/2013</a>. By each of these props, I was already settled into those spaces as a contributor. Props might come later because you&#8217;re working on other things or the role you&#8217;re contributing.</p>\n\n\n\n<h2 class=\"wp-block-heading\">A welcome</h2>\n\n\n\n<p>I had the pleasure of being asked to share my thoughts on contributing to <a href=\"https://maintaine.rs\">maintaine.rs</a>, along with other open source contributors, including the ever-awesome <a href=\"https://jonathandesrosiers.com\">Jonathan Desrosiers</a>. This is an incredible project telling stories across open source, and I encourage checking it out. In it, I was asked about welcoming contributors and how to see value.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>If you want contributions, be sure to show how and where they are wanted. It&#8217;s one thing to say &#8216;all contributions are welcome&#8217;, but that&#8217;s open-source theatre because honestly, it&#8217;s likely not all are in every area as welcome as others. There are always more areas needed than some. Highlight these and make sure someone gets off to a contribution success from the start.</p>\n</blockquote>\n\n\n\n<p>My journey could have been very different if I hadn&#8217;t found a place to contribute. Empowered by those people, I was led to the props and supported in my first tickets. Our projects are full of the ghosts of contributors we never activated, and that fuels me to see potential in every person who gives up their time.</p>\n\n\n\n<p>When I arrived at the project, I wasn&#8217;t sponsored; I was giving my own time because this project was providing me with a blog and client work. My journey in open source began before WordPress, starting with Linux. When I joined the project, I already understood the concept of contribution and came to it with that in mind, looking to find a way to balance what I was gaining.</p>\n\n\n\n<p>I wasn&#8217;t aware of all the options to contribute to the project; there were fewer than there are today. I had to be shown my options, where I could be helpful. My path was one so many have followed. I ended up staying here for so long because of the people who caught up with me along the way and helped empower me as a contributor, so thank you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Props is just one of the firsts</h2>\n\n\n\n<p>Whilst these are &#8216;first&#8217;, they are just the public ones. There are so many firsts in a contribution journey. I was in these projects before my props. My first experience with core was that it was too overwhelming, which is why my first props is in BuddyPress. My first solo theme review was also pivotal to my journey <a href=\"https://themes.trac.wordpress.org/ticket/3022\">14 years ago</a>. </p>\n\n\n\n<p>Every conversation, particularly in the first few stages, was pivotal to my journey as it set the tone for where I ended up adventuring. They could also have been points that led me to leave the project because I couldn&#8217;t find a way to contribute. I hold onto this point when interacting with others, as each contribution is so significant. You never know what someone will do in a project if they are given the opportunity, and it starts with them knowing they can do things. It&#8217;s essential always to acknowledge and recognise everyone who contributed. You never know whose first props those might be and what impact each of us might have on someone&#8217;s journey of contribution. </p>\n\n\n\n<p>Someone might also travel this project and never get props, because perhaps of the contribution area they are in or the work they are doing. That&#8217;s a key thing to consider, and actually, my own journey has public and non-public recognition due to different roles. As a project, WordPress needs to be better at recognising and measuring all types of contributions so the pride we all feel in props can be given to anyone contributing significantly.</p>\n\n\n\n<p>If open source contribution works, it&#8217;s a journey. This point is demonstrated by the adventures I have travelled and those of others within these projects. We have grown up, changed jobs, and moved locations, but we stayed with the project and our contributions. You do that because you want to, because you are getting something from doing it, as contribution has to be a two-way street to become a part of someone&#8217;s life. Props and other recognition are a boost to help you on that journey. It works because it acknowledges the work being done, and in its simplest form, it is a way of saying thank you.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 10 Jul 2025 09:14:26 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"binatethoughts.com\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:42;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:112:\"Open Channels FM: The Future of WordPress and AI: Open Protocols, Agentic Workflows, and Industry Transformation\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99251\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:116:\"https://openchannels.fm/the-future-of-wordpress-and-ai-open-protocols-agentic-workflows-and-industry-transformation/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:220:\"As AI advances, WordPress must choose between cloud-based tools or local agent workflows. Emerging protocols allow dynamic communication, influencing automation, privacy, and the future control of web content management.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 10 Jul 2025 09:01:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:43;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"HeroPress: The Remote Team Who Raised Me\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=8032\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:132:\"https://heropress.com/essays/the-remote-team-who-raised-me/#utm_source=rss&utm_medium=rss&utm_campaign=the-remote-team-who-raised-me\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:11486:\"<img alt=\"Pull Quote: Through WordPress, I learned that staying — quietly, kindly, steadily — can be its own kind of success.\" class=\"attachment-large size-large wp-post-image\" height=\"512\" src=\"https://heropress.com/wp-content/uploads/3025/07/070825-min.jpg\" width=\"1024\" /><section class=\"wp-block-newsletterglue-group\" style=\"padding-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; margin-top: 0px; margin-bottom: 0px;\">\n<figure class=\"wp-block-audio\"><audio controls=\"controls\" src=\"https://heropress.com/wp-content/uploads/3025/07/cathy_mitchell_heropress.mp3\"></audio><figcaption class=\"wp-element-caption\">Here is Cathy reading her own story aloud.</figcaption></figure>\n</section>\n\n\n\n\n<p>In 2004, I was at home with one baby, having just left a career that I loved. Being at home with a baby full-time was shriveling up my brain. Before WordPress I tried gardening, sewing, painting, preserving and cooking. I was desperate to fill the void left by my career. </p>\n\n\n\n<p>My husband at the time, was a tech genius and had heard of a new get rich quick scheme: &#8220;blogging&#8221;.</p>\n\n\n\n<p>I didn’t know what that meant &#8211; I had to research what the internet was! But I was desperate and the evening news was featuring these &#8220;mommy bloggers&#8221; who were making small fortunes!</p>\n\n\n\n<p>&#8220;If they can do it&#8221;, I thought, &#8220;So can I!&#8221;</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>I made a whole $0.82 that year.</p>\n</blockquote>\n\n\n\n<p>I am not easily dissuaded though. I decided that a new theme would get me more revenue.</p>\n\n\n\n<p>To build themes circa 2007, you had to learn the template system, the file structure, and the hooks baked into WordPress. </p>\n\n\n\n<p>It was like a giant puzzle and I was so excited to be using my brain &#8211; I jumped in.</p>\n\n\n\n<h3 class=\"kt-adv-heading8032_2a57d0-1a wp-block-kadence-advancedheading\">Learning to Swim</h3>\n\n\n\n<p>I read every single page in the WordPress.org docs. I spent 10–20 hours a week in the support forums, mostly asking for help &#8211; not giving much! </p>\n\n\n\n<p>I learned to code by fixing real problems &#8211; it was challenging and the internet was full of quality resources.</p>\n\n\n\n<p>I made big mistakes &#8211; I crashed countless sites! And in doing so, I learned what not to do. </p>\n\n\n\n<p>I was in heaven. </p>\n\n\n\n<p>Except for those all-nighters trying to fix something that I broke on a client&#8217;s site. </p>\n\n\n\n<p>I learned from the best in the community &#8211; because back then, they were in the forums with me. I learned from friends and other bloggers. I learned from online articles (pre-YouTube days).</p>\n\n\n\n<p>Along the way, I met a fellow mommy blogger who had a side business called Desperately Seeking WordPress. (Her blog was Desperately Seeking Sanity and she has the best sense of humour!) She needed help. I was available. </p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>At the time, our offer was simple: we would install WordPress, a theme, and a few plugins &#8211; and make it look nice &#8211; for $20. </p>\n</blockquote>\n\n\n\n<p>Eventually, she stepped back, and I got to take the reins. </p>\n\n\n\n<p>That’s when I realized I hadn&#8217;t the foggiest idea how to run a real business. I started reading books like *E-Myth*, *Duct Tape Marketing*, and *Purple Cow*. I had no MBA, no startup capital. Just the desire to help other mommy bloggers not get ripped off by tech &#8216;gurus&#8217;.</p>\n\n\n\n<h3 class=\"kt-adv-heading8032_f21016-32 wp-block-kadence-advancedheading\">Building a Business While Falling Apart</h3>\n\n\n\n<p>I’ve struggled with depression for my entire adult life. By 2006, I had three young children. By 2012, I was divorced. The work that had been a fun puzzle, now had to pay the bills.</p>\n\n\n\n<p>I couldn’t disappear on bad days &#8211; my fledgling company had to be reliable! The clients needed stuff. So I hired my first contractor. She made more than I did most months.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>But I needed to know someone would be there for my clients when I couldn’t be. That was the first step toward building a team that would be better than any of us could have imagined.</p>\n</blockquote>\n\n\n\n<p>The behind-the-scenes work we do stays the same whether it is for celebrities or tiny fledgeling bloggers. And when we were kind, didn&#8217;t talk down to them, and were honestly helpful, they talked about us. And we became 100% referral-based.</p>\n\n\n\n<p>So how do YOU get referrals? </p>\n\n\n\n<p>I can&#8217;t tell you that &#8211; but &#8211; I know what works for us: radical honesty (even when it hurts our bottom line), genuine kindness and respect, and being the best at what we do. I believe with all my heart that our clients are in good hands.</p>\n\n\n\n<p>And that honesty requires owning my mistakes. I wish I could say I don&#8217;t make them anymore but… radical honesty! </p>\n\n\n\n<p>We always do what’s in the client’s best interest, even when it costs us money.</p>\n\n\n\n<h3 class=\"kt-adv-heading8032_612593-f3 wp-block-kadence-advancedheading\">The Invisible Work</h3>\n\n\n\n<p>After about seven years, I made an intentional decision to hire women. I grew up in West Africa, and I’ve seen firsthand how empowering women lifts entire families and communities. </p>\n\n\n\n<p>So we began funding microloans for women entrepreneurs in developing countries. The research shows that supporting women has a multiplier effect &#8211; and I’ve always had a soft spot for hard-working entrepreneurial free spirits.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>From the very beginning, we were a remote team. I&#8217;ve never been on my own &#8211; being reliable is a non-negotiable &#8211; I need the team.</p>\n</blockquote>\n\n\n\n<p>One of those teammates is Diane. I met her 14 years ago, just after she got married. She’s quiet, steady, avoids the spotlight &#8211; and she’s been one of the most important people in my life. We’ve built a business together through births, illness, life transitions &#8211; and I trust her completely.</p>\n\n\n\n<p>That trust, that stability, is part of what we offer our clients. And it’s rooted in one simple idea: be kind. Treat everyone with dignity. Respect whatever expertise they bring, even if it’s not technical. Our job is to help their business succeed &#8211; not to impress them with ours.</p>\n\n\n\n<h3 class=\"kt-adv-heading8032_4343ee-e9 wp-block-kadence-advancedheading\">Burnout, Boundaries, and Pricing with Purpose</h3>\n\n\n\n<p>In 2014, I burned out — hard. I had thrown myself into social media marketing. I spent $1000&#8217;s on courses and really tried to implement the suggestions. Guest post twice a month? Check. Two hours connecting on Facebook every day? Check. Write three posts a week? Check. </p>\n\n\n\n<p>I did all the things. &#8216;Cause they told me to.</p>\n\n\n\n<p>I think it only took me three months to crash and burn. I got so sick, my body was done. I spent two full weeks in bed.</p>\n\n\n\n<p>That’s when I learned my limits. And it’s when I learned to stay focused. </p>\n\n\n\n<p>Today, all decisions go through a, &#8220;What does this do to the bottom line?&#8221; framework. And by bottom line &#8211; I mean money, of course, but without sacrificing service, honesty or the trust of our clients.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Part of our growth meant making pricing decisions that felt terrifying. </p>\n</blockquote>\n\n\n\n<p>We raised prices from $20/setup to $40/hour. We lost 20% of our clients — and I expected to lose more. But the ones who stayed? They valued us. They paid happily. They referred us to others.</p>\n\n\n\n<p>Later, we raised it again — to $75/hour. I braced for another drop. It never came. </p>\n\n\n\n<p>Instead, I got emails thanking me! Clients said they were glad we were finally charging what we were worth! I&#8217;m still shocked about it. Who knew I&#8217;d have warm fuzzy stories on the day we raised our prices?</p>\n\n\n\n<p>Eventually, we raised it to $89/hour. Still below the $110–$120 that custom coders charge. Because we’re not &#8220;true coders.&#8221; We’re *practical coders.* We solve real problems, fast, for people who trust us.</p>\n\n\n\n<p>And that trust is priceless.</p>\n\n\n\n<h3 class=\"kt-adv-heading8032_3e2391-b7 wp-block-kadence-advancedheading\">On Staying True in a Shifting World</h3>\n\n\n\n<p>Through all of this &#8211; the growth, the pivots, the grief and healing &#8211; this little WordPress agency has offered me survival.</p>\n\n\n\n<p>The ability to work from home. To be present for my kids. To build something real while living with depression. To build a team based on trust, not hustle.</p>\n\n\n\n<p>I can only recommend something that I truly believe is the best option for my clients. That’s why WordPress matters to me. It’s extensible, open-source, secure, supported, owned and portable. Currently it is the best option for my clients. And I can stand behind that.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>A sign sits on my desk. It reads: &#8220;Who can I serve today?&#8221;</p>\n</blockquote>\n\n\n\n<p>That’s the constant. That’s the compass.</p>\n\n\n\n<p>Today, I volunteer in the WordPress support forums &#8211; the same ones I learned from. I volunteer in the community to give back. I’m sharing my story, not to teach anyone how to succeed, but to say: it’s okay to build slow. To price based on value, not hype. To grow into leadership without chasing fortune.</p>\n\n\n\n<p>There are still chapters unfolding in my story. Some endings haven’t revealed themselves yet. But I know this much:</p>\n\n\n\n<p>I stayed.</p>\n\n\n\n<p>And through WordPress, I learned that staying — quietly, kindly, steadily — can be its own kind of success.</p>\n\n\n<section class=\"wp-block-newsletterglue-group\" style=\"padding-top: 10px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; margin-top: 0px; margin-bottom: 0px;\"><div class=\"kb-row-layout-wrap kb-row-layout-id8032_debf65-8f alignnone kt-row-has-bg wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n\n<div class=\"wp-block-kadence-column kadence-column8032_e460f1-bd\"><div class=\"kt-inside-inner-col\">\n<h2 class=\"kt-adv-heading8032_9cab8b-2f wp-block-kadence-advancedheading\" id=\"work-environment\">Cathy&#8217;s Work Environment</h2>\n\n\n\n<p>We asked Cathy for a view into her development life and this is what she sent!</p>\n\n\n	<div class=\"hotspots-image-container\">\n		<img alt=\"Cathy&#8217;s Desktop\" class=\"hotspots-image skip-lazy\" height=\"1540\" src=\"https://heropress.com/wp-content/uploads/2025/07/cathy_mitchell_desk.webp\" width=\"2330\" />\n	</div>\n\n\n\n\n<p class=\"kt-adv-heading8032_4d55ad-0f wp-block-kadence-advancedheading has-theme-palette-9-background-color has-background\">HeroPress would like to thank <a href=\"https://wpdrawattention.com/\">Draw Attention</a> for their donation of the plugin to make this interactive image!</p>\n</div></div>\n\n</div></div></section>\n\n<p>The post <a href=\"https://heropress.com/essays/the-remote-team-who-raised-me/\">The Remote Team Who Raised Me</a> appeared first on <a href=\"https://heropress.com\">HeroPress</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Jul 2025 15:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Cathy Mitchell\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:44;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:98:\"WPTavern: #176 – Héctor de Prada on the Power of Local WordPress Meetups in Community Building\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=197433\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:110:\"https://wptavern.com/podcast/176-hector-de-prada-on-the-power-of-local-wordpress-meetups-in-community-building\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:45483:\"<details>Transcript<div>\n<p>[00:00:19] <strong>Nathan Wrigley:</strong> Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.</p>\n\n\n\n<p>Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case the power of local WordPress Meetups in community building in Spain.</p>\n\n\n\n<p>If you&#8217;d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.</p>\n\n\n\n<p>If you have a topic that you&#8217;d like us to feature on the podcast, I&#8217;m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.</p>\n\n\n\n<p>So on the podcast today we have Héctor de Prada.</p>\n\n\n\n<p>Héctor is one of the founders of Modular DS, a tool for managing multiple WordPress websites. But his contributions to the WordPress community go far beyond his day job. Based in Spain, he&#8217;s been involved in creating and developing websites for years, and has immersed himself in the WordPress community, attending numerous WordCamps and Meetups in various cities.</p>\n\n\n\n<p>More recently, he&#8217;s been co-organizing the WordPress Meetup in Leon, a city in northern Spain, which has seen impressive growth and engagement since its revival after the pandemic.</p>\n\n\n\n<p>Héctor shares why he volunteers his free time to organize these community events, and the impact Meetups can have, not only for individual learning, but for revitalizing local tech ecosystems.</p>\n\n\n\n<p>We discuss what makes a successful Meetup, how his team approaches event planning, rotating roles so nobody feels the pressure to attend every time, and how sponsors and local venues help make it all happen.</p>\n\n\n\n<p>Héctor explains how their Meetup group draws diverse attendees, from students and marketeers, to business owners and agencies. And how they&#8217;ve experimented with differing formats and topics to keep things fresh and inclusive. Whether it&#8217;s inviting guest speakers from digital businesses, running panel forums, or focusing on networking opportunities for job seekers and entrepreneurs, he highlights the power of community in building connections that exist beyond WordPress.</p>\n\n\n\n<p>We cover everything from the practicalities of finding venues and sponsors, to managing team workflows and keeping the events welcoming and approachable.</p>\n\n\n\n<p>If you ever thought about starting a WordPress Meetup in your city, or want to bring new energy to an existing group, this episode is for you.</p>\n\n\n\n<p>If you&#8217;re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you&#8217;ll find all the other episodes as well.</p>\n\n\n\n<p>And so without further delay, I bring you Héctor de Prada.</p>\n\n\n\n<p>I am joined on the podcast by Héctor de Prada. Hello, Héctor.</p>\n\n\n\n<p>[00:03:20] <strong>Héctor de Prada:</strong> Hello, Nathan. A pleasure to be here.</p>\n\n\n\n<p>[00:03:22] <strong>Nathan Wrigley:</strong> We&#8217;re at WordCamp EU. It is in Basel. We are on the contributor day. And you are going to be giving a presentation about an experience that you have, I guess, on a monthly basis running an event. Let&#8217;s get into that in a moment. First of all, just introduce yourself, who you work for, what you do in the WordPress community outside of Meetups.</p>\n\n\n\n<p>[00:03:41] <strong>Héctor de Prada:</strong> Okay, so I am Héctor de Prada. I am one of the founders of Modular DS, which is a tool to manage multiple WordPress websites. So that&#8217;s like my main occupation. But thanks to that, and also since way before, I have been involved with WordPress, creating websites, developing websites.</p>\n\n\n\n<p>And for the past couple of years, or three years I could say, I have been also involved in the community. I&#8217;ve been in many WordCamps in Spain because as you know, in Spain, we have a lot of WordCamps. I&#8217;ve also been in many Meetups in different cities. I try to stay as much connected as I can to the community.</p>\n\n\n\n<p>I also write a newsletter about the WordPress ecosystem in Spanish. And since a year and a half ago, I am also one of the co-organisers of the Meetup, and that&#8217;s what I&#8217;m going to talk about, well, Saturday in the WordCamp Europe in the talk I have.</p>\n\n\n\n<p>[00:04:39] <strong>Nathan Wrigley:</strong> This is going to seem like a strange question because you know, on a very visceral level, you really understand why you do it, but I&#8217;m kind of keen to explain that to the audience. Why do you use up your free time organising WordPress events on a sort of voluntary basis? You know, you&#8217;ve given up lots of your free time, there&#8217;s no financial gain, you&#8217;re just doing it. Why do you do that?</p>\n\n\n\n<p>[00:05:02] <strong>Héctor de Prada:</strong> Okay, well, I was thinking a lot about this question before and I came up with two different answers.</p>\n\n\n\n<p>The first one is that since, like I said, I have been kind of part of the community for a few years, and I have been in many events outside of my city. I saw how the WordPress communities, how it feels, all the good things that come out of it. And then one of the main things I was always thinking when I was going to these events was like, why can&#8217;t we have this in our city for the people in our city to experience this, to have this type of connections, inspiration, learning, and so on? So that&#8217;s one of the first things.</p>\n\n\n\n<p>And then it was also mixed with, I come from a small city in the north of Spain, and one of the things, many people say inside the city and outside of the city is that we don&#8217;t have many things anymore, okay. So it&#8217;s hard to explain, but like there is not much to do, a lot of young people leaves the city. So it&#8217;s kind of like depressing mood a little bit.</p>\n\n\n\n<p>So it was also like, why don&#8217;t we try to do something in our city to try to start creating an ecosystem? And WordPress gave us the perfect excuse to also do that. Try to get people together, people in the tech world, which is what we do, talking about me and my partner, my friends, we are always talking about websites, technology, design. So it kind of all got together and we said, okay, let&#8217;s start doing the WordPress Meetups. And it&#8217;s been great so far.</p>\n\n\n\n<p>[00:06:31] <strong>Nathan Wrigley:</strong> How long have you been actually involved in the one that you&#8217;re doing now?</p>\n\n\n\n<p>[00:06:34] <strong>Héctor de Prada:</strong> The meet up in our city, we have been doing it for around year and a half now. So after the summer, we&#8217;ll do two years.</p>\n\n\n\n<p>[00:06:40] <strong>Nathan Wrigley:</strong> I should probably say to the listeners that a Meetup, if you&#8217;ve never attended one, WordPress has a whole community outside of the software, who help create the software, but they also show up for social events and things like that. And the ones that you may have heard of are WordCamps, and they&#8217;re the big ones. That&#8217;s where we&#8217;re at right now. So they tend to be an annual thing, perhaps in a city or, we are at WordCamp Europe, which is an annual thing, which moves around Europe.</p>\n\n\n\n<p>But the Meetups, which is what we&#8217;re talking about, that&#8217;s usually bound to a city or a town or something like that, and it&#8217;s much more regular and it&#8217;s probably happening in an evening. It&#8217;s not a whole day. It&#8217;s maybe, I don&#8217;t know, six o&#8217;clock till nine o&#8217;clock, something along those lines. And presumably using local talent, using the people in the community that you&#8217;ve got, drawing them in and trying to get them to do the presentations and all of the bits and pieces.</p>\n\n\n\n<p>So if you don&#8217;t know anything about that dear listener, now you do. If there&#8217;s something close to you, if you actually log into your WordPress dashboard, there will be an area in the dashboard, if you put all of the panels on, if you turn them on, you&#8217;ll be able to see, hopefully it will geographically locate you and give you some intel as to that.</p>\n\n\n\n<p>So tell us a little bit about the one that you&#8217;ve been doing. You said it&#8217;s been going for 18 months, or at least you have been involved for 18 months.</p>\n\n\n\n<p>[00:07:53] <strong>Héctor de Prada:</strong> Actually it was already working before Covid, so for a couple of years before Covid. Then it was shut down. I wasn&#8217;t involved before Covid. I didn&#8217;t even know the WordPress community before Covid. And then it was like three years stopped. Yeah, like 18 months ago, we kind of restarted the Meetup.</p>\n\n\n\n<p>[00:08:13] <strong>Nathan Wrigley:</strong> So how many people typically would attend your Meetup? Because yours is quite a big one. The one that we are at at the moment is ridiculously big. You know, it&#8217;s going to have several thousand. Nobody can expect those kind of attendance numbers. That would be extraordinary. What are the kind of numbers that you are seeing on a monthly basis?</p>\n\n\n\n<p>[00:08:28] <strong>Héctor de Prada:</strong> Yes, so I was checking this for the presentation I&#8217;m giving on Saturday, and we have, in this 18 months, we don&#8217;t do it every month, okay, it is more like every couple of months, because we don&#8217;t do it in the summer or during Christmas, for example, in December. So it&#8217;s kind of like six, eight, a year. And we have an average attendance of 60 people.</p>\n\n\n\n<p>I know it&#8217;s pretty big because like I said, I&#8217;ve been in many other places where having like 25 people, 30 people, is already like a huge success. And that&#8217;s what we were trying to accomplish at the beginning. Like, okay, let&#8217;s try to get 20 people here, 25 people, get together. And since the beginning it&#8217;s been like, yeah, like sometimes it&#8217;s 50 people, sometimes it&#8217;s like 75 people. And for us it&#8217;s like, sometimes we don&#8217;t even know, how is it possible? But sure, it&#8217;s very fulfilling and we&#8217;re very happy about it of course.</p>\n\n\n\n<p>[00:09:16] <strong>Nathan Wrigley:</strong> And how do you sort of account for that? Do you email people? Do you have like a system? So for example, a lot of the Meetups will use a platform, which is called Meetup. You can go to meetup.com, and figure all of that out. But do you use a system like that to keep in touch with people and notify them that there&#8217;s a new one coming in June or July or whatever it may be?</p>\n\n\n\n<p>[00:09:35] <strong>Héctor de Prada:</strong> Yeah, we use meetup.com to create the events and send the email communications to all the people that is subscribed to the group, or has been in one of the previous Meetups. And also, we always try to get people to follow us on social media because it is where, we have like a Twitter and Instagram account. It&#8217;s where we try to advance the new Meetups and give all the information and stuff.</p>\n\n\n\n<p>And then we try different things also to get more people to come in. For example, we go kind of old school and we print some big flyers, okay, to put it on the walls. And we put it, for example, in the university, in the buildings the city hall has for technology companies. So we put them over there just for people, when they go to work or students, when they go to the university, they will just check it out. And maybe they will feel like going. So that&#8217;s also something we do.</p>\n\n\n\n<p>[00:10:25] <strong>Nathan Wrigley:</strong> And where do you actually do it? Do you have the same venue every single time, or do you tend to move around?</p>\n\n\n\n<p>[00:10:30] <strong>Héctor de Prada:</strong> No, we move around. This is very important because it, I think it&#8217;s one of the most important things when you are organising any kind of event, the venue where you&#8217;re actually doing it. And we are very lucky because, even when I was telling you that in our city it seems like not many things are being done. When you actually try to do something, everybody tries to help you.</p>\n\n\n\n<p>So we have been offered many different venues from City Hall, from the university, from private companies, from the government, public buildings they have. So what we have tried to do is to do the Meetup in different places. So in case, at some point, we can do it in one of them, we will always be able to go to any of the other ones. And that has worked very well for us.</p>\n\n\n\n<p>[00:11:12] <strong>Nathan Wrigley:</strong> Oh, nice, yeah. I think that&#8217;s not typical. I think usually it&#8217;s done in kind of the same venue and what have you.</p>\n\n\n\n<p>My understanding also, and I could be wrong about this, but my understanding is that the Spanish WordPress community is actually one of the healthier ones, for want of a better word. It seems to be kind of thriving. I don&#8217;t know if I&#8217;ve just heard a story and that&#8217;s not true, but is that true?</p>\n\n\n\n<p>[00:11:33] <strong>Héctor de Prada:</strong> No, I think it is. I think it is definitely, well, I was talking with somebody that is organising here at WordCamp Europe, and we were accounting for WordCamps made in Spain last year. And I think it was like 12 WordCamps in one year, only in Spain, which I could say is what the rest of Europe has in one year.</p>\n\n\n\n<p>So it&#8217;s like pretty crazy. I think, we Spanish people, we just like to gather a lot and just meet each other. But also I think there are many Meetup groups in Spain that are doing a great job and have great numbers and do a lot of Meetups with really great speakers. So yeah, I would say in Spain there is a lot of community movement.</p>\n\n\n\n<p>[00:12:14] <strong>Nathan Wrigley:</strong> I&#8217;m quite jealous. The part of the world where I live in the UK, Covid really had a profound impact. The Meetups kind of disappeared, and in some cases came back, but in most cases they didn&#8217;t. I think maybe the year 2025 was a bit of a watershed. There&#8217;s a few I think that maybe are on the cusp of returning.</p>\n\n\n\n<p>So it can&#8217;t just be you. I&#8217;m presuming that there&#8217;s a whole bunch of people, a team, if you like. And how does that work? How many people regularly are helping you out, and do you have, I don&#8217;t know, different roles that you perform? Like, you&#8217;re in charge of the emails, you&#8217;re in charge of the venue, you&#8217;re in charge of the snacks and whatever it may be. How many people on the team and how do you manage all that?</p>\n\n\n\n<p>[00:12:49] <strong>Héctor de Prada:</strong> We are six people currently, and what we tried since the beginning was to find other people that could be complimentary to us. And like you said, we try to split responsibilities. So one of us, who is very good with social media, is the one taking charge of posting everything in social media so everybody sees what we are doing.</p>\n\n\n\n<p>Other person is always in charge of the networking we do afterwards to get the catering, even the venue we have to change somewhere, because it&#8217;s somebody who has a lot of contacts in that space.</p>\n\n\n\n<p>Also somebody&#8217;s in charge of sponsors. Somebody&#8217;s in charge of creating the Meetups. Somebody&#8217;s in charge of the design.</p>\n\n\n\n<p>Okay, so we try to split the responsibilities, but at the same time, and this is not so obvious, I think what we have also found very important is that, even when each one has a responsibility, we also try to rotate every once in a while. So, for example, when we started, everybody thought or supposed I was always going to be the one presenting, because I&#8217;m kind of more used to speaking in public. One of the first things we decide is that every day one of us was going to present the Meetup. So in case I&#8217;m missing or anybody else is missing, the Meetup will work exactly the same.</p>\n\n\n\n<p>Because we don&#8217;t want this to feel like an obligation, like every member of the team has to be every single Meetup no matter what, because it&#8217;s not a job. You said it. This is like a volunteer thing. We do it for the community. So if at some point something happens with life, you have to take your kids to school or anything, well, the rest of the team will be able to take charge.</p>\n\n\n\n<p>[00:14:27] <strong>Nathan Wrigley:</strong> So everybody kind of rotates things around so that if somebody&#8217;s, I don&#8217;t know, unwell during that day, somebody can slot in. Yeah, that&#8217;s kind of an interesting approach.</p>\n\n\n\n<p>[00:14:35] <strong>Héctor de Prada:</strong> Exactly. Yeah, the same with like organising the networking and the catering afterwards, taking charge of cleaning everything up afterwards. We try to rotate everything.</p>\n\n\n\n<p>[00:14:44] <strong>Nathan Wrigley:</strong> There&#8217;s so much that goes into these events. So let&#8217;s just go through the little laundry list of things that you have to achieve. Now, you may do some of these, you may not. But I guess it&#8217;s things like booking the venue has to be done. Maybe there&#8217;s a payment that needs to be involved with that. You have to presumably have an email list. You&#8217;ve got social media accounts. You&#8217;ve got ordering the food, tidying up at the end.</p>\n\n\n\n<p>[00:15:03] <strong>Héctor de Prada:</strong> You need to talk with the sponsors as well to get any merchandise they might send to you to give to the attendees. Also, you have to select the speakers and then prepare it with the speakers.</p>\n\n\n\n<p>[00:15:14] <strong>Nathan Wrigley:</strong> So do you work with the speakers as well? Because my experience is that often speakers can be, if they&#8217;re new to it, they can be a little bit nervous. And so having some sort of, coaching is maybe the wrong word, but some intuition as to, yeah, you&#8217;re on the right lines. That, I think, is what our audience will like.</p>\n\n\n\n<p>[00:15:27] <strong>Héctor de Prada:</strong> It depends a lot on the speaker, because it&#8217;s true that there are some speakers that are very, I&#8217;m not going to say professional, but they&#8217;re like very used to, they are experts in something and they&#8217;re very used to give talks about it. So you basically can&#8217;t tell them anything because they already know more than you do, okay, about how to do it right.</p>\n\n\n\n<p>But it&#8217;s true that one thing that we like to do a lot is that we don&#8217;t only try to do like the normal talks you might see in a WordCamp, where somebody is an expert on a field, and they just give you a talk trying to allow you to learn something. But we also like to do more experience stuff like trying to look for inspiration instead of learning.</p>\n\n\n\n<p>So for example, like you do with the podcast, nowadays I think podcasts are a trend because we like to listen and understand the stories behind people, how they are doing something, or how did they come to this? So for those kind of talks, it&#8217;s true that we kind of give them a guide. So, we would like you to talk about this.</p>\n\n\n\n<p>Or sometimes if we do, the last meeting we did, it was like a forum with three different businesses, and we wanted to just talk about their experience. And what we did is try to get like the main questions we wanted them to answer. And we gave them to them previously so they could kind of prepare a little bit of what we wanted to talk about. Because they didn&#8217;t have any presentation or anything, it was just like a normal conversation, like an interview more. So in those cases, it takes much more work than if it&#8217;s just somebody with a presentation and they do their thing.</p>\n\n\n\n<p>[00:16:58] <strong>Nathan Wrigley:</strong> Yeah, i&#8217;ve been to Meetups where they&#8217;ve done a whole variety of different things, not all at the same evening. So for example, they might do two presentations of, I don&#8217;t know, 45 minutes each, and then have a bit of networking in the middle.</p>\n\n\n\n<p>Some places do social things where it&#8217;s just, maybe there&#8217;ll be an hour where you just do the networking and hang out. I&#8217;ve been to Meetups where they do prize giveaways and quizzes and things like that.</p>\n\n\n\n<p>So there isn&#8217;t just one model. You can sort of mix it around a little bit and offer things which the audience, I don&#8217;t know, it&#8217;s a bit more entertainment, if you like.</p>\n\n\n\n<p>[00:17:29] <strong>Héctor de Prada:</strong> Of course. I think it&#8217;s very nice to try different formats, different things. Because also people, when we have a lot of, I guess like many Meetups, we have many regular people, they go to almost every Meetup, so I think it&#8217;s also good for them to try different things so it&#8217;s more like, a little bit unexpected. You get a surprise of what you are getting out of it, and it&#8217;s not always the same thing.</p>\n\n\n\n<p>[00:17:51] <strong>Nathan Wrigley:</strong> Have you had things which you&#8217;ve tried maybe recently in the last six months or something that you just thought, oh, let&#8217;s give that a go. And if so, maybe you could share that.</p>\n\n\n\n<p>[00:17:59] <strong>Héctor de Prada:</strong> Well, the last one we did, at the beginning it was a little, it wasn&#8217;t so much about the format because we had already tried that because it was like, yeah, like four people from three different businesses talking about how they achieved what they have done. But the crazy thing is it was the topic about it. Because it was three different gastronomic business, which at the first time you could say, okay, so what does this have to do with WordPress?</p>\n\n\n\n<p>But it was very interesting because those three businesses, it was a social media influencer only talking about restaurants, a food influencer. Then it was a restaurant that has digitalised all the experience inside the restaurant. So you get to the restaurant and you order the food with your phone, everything, so no people around you or anything.</p>\n\n\n\n<p>And then the other one was an e-commerce site made with WooCommerce of one of the biggest meat sellers in Spain. It&#8217;s a big restaurant just to eat meat. The type of meat, like you pay a lot for that. And they are really crushing it, like with their e-commerce made with WooCommerce.</p>\n\n\n\n<p>So it was all very digital, but at the same time, the topic was like gastronomic and at the beginning people was like, doesn&#8217;t feel like a WordPress Meetup. It was amazing. People loved it.</p>\n\n\n\n<p>[00:19:08] <strong>Nathan Wrigley:</strong> It worked.</p>\n\n\n\n<p>[00:19:08] <strong>Héctor de Prada:</strong> Yes, yes. Because their stories were so interesting and how they kind of mixed with the technology and how it started, the pains they had at the beginning, trying to introduce that technology and how it has now changed their business. It was super interesting.</p>\n\n\n\n<p>[00:19:23] <strong>Nathan Wrigley:</strong> How did you come up with the idea of that particular one? Because that&#8217;s so curious. Because usually it is, there&#8217;s a strong WordPress focus to the ones that I&#8217;ve been, you know, there&#8217;s a presentation, it&#8217;s WordPress, there&#8217;s a Lightning Talk, it&#8217;s WordPress, there&#8217;s another presentation, it&#8217;s WordPress.</p>\n\n\n\n<p>But that one, there&#8217;s a thread running through it, which is technology. Sounds like the audience really liked it. And there was obviously that WooCommerce bit at the end that you mentioned. How did you even conceive of that topic?</p>\n\n\n\n<p>[00:19:47] <strong>Héctor de Prada:</strong> Yeah. Well, it wasn&#8217;t only that WooCommerce, like the three of them had started somehow the business with some WordPress, a WordPress website, a WordPress blog, a WooCommerce, okay. It wasn&#8217;t the main focus of the talk, but they all had something to do. And that wasn&#8217;t intentional, like it just came out because I guess WordPress, you want it or not, it is behind most of the worldwide web. So it was very nice.</p>\n\n\n\n<p>But one thing talk about in the presentation here at WordCamp Europe is that I think that WordPress is what unites us, but I don&#8217;t think it should be what separates us. So I think, thanks to WordPress powering like 40 something percent of the worldwide web, it allows us to talk about almost everything related to the digital world. It will always be somehow related to WordPress.</p>\n\n\n\n<p>So it&#8217;s true that we don&#8217;t go too deep into the technical WordPress part. It&#8217;s always somehow related, but we feel like our audience is not like WordPress experts, to say it like that. We have a lot of students, marketing students, marketing agencies, entrepreneurs. And then we talk more about like the digital business part, the online marketing. It&#8217;s always somehow related to WordPress, but it has worked for us very well to kind of get a broader view and not go so specific, to get also like more attendees coming, and they all feel like they understand, that they can apply that to themselves.</p>\n\n\n\n<p>Of course we always talk a lot about WordPress. It&#8217;s a WordPress Meetup. But I think that&#8217;s also important because even us that we are so deep in the community, I feel like WordPress is like my main thought like 24/7 almost. But for most people outside the community, it is not like that. And I think one important thing in WordPress is that we try to get as many people to the community as possible, and they don&#8217;t have to be such experts.</p>\n\n\n\n<p>[00:21:36] <strong>Nathan Wrigley:</strong> Yeah, it&#8217;s kind of interesting because if you show up and you did two presentations back to back and it was all about, I don&#8217;t know, WP-CLI, followed by some other very technical thing, it may be that half of the audience, maybe more, maybe 70% of the audience would think, I don&#8217;t really understand that. And managing that is quite difficult.</p>\n\n\n\n<p>So mixing it up a little bit and making sure it&#8217;s not too technical for one of the evenings. Maybe you have a technical one now and again, but you&#8217;ve got to think a lot about the audience and what they are prepared to consume.</p>\n\n\n\n<p>So, pivoting slightly, I guess this cannot be entirely free. So I know that you give your labour for nothing. But presumably there is a cost somewhere along the line, whether that&#8217;s for snacks or whether it&#8217;s for hiring of the venue. How do you finance your Meetup? How does that work?</p>\n\n\n\n<p>[00:22:22] <strong>Héctor de Prada:</strong> Yeah, we have sponsors that help us with the cost. We basically, our costs are only the flyers, which is like almost nothing because we don&#8217;t do that many, and then the food and drinks for the networking. So we always try to have two sponsors. One, it&#8217;s always a local company, and then one is a workers community company.</p>\n\n\n\n<p>I think in Spain at least, because I don&#8217;t know outside of Spain, but there are many companies, mostly hosting companies that really want to sponsor these kind of events. And since the beginning, we have had a lot of offers of companies trying to sponsor. I guess it&#8217;s also important that we have good attendee numbers and stuff. But I think they sponsor most of the Meetups in Spain. That&#8217;s what we use to cover the cost.</p>\n\n\n\n<p>[00:23:08] <strong>Nathan Wrigley:</strong> How does the sponsorship actually work? Because obviously they couldn&#8217;t realistically be paying you directly and then you then move the money to buying the snacks and the pizzas or whatever it may be. How does that sponsorship actually work? Who is the person that&#8217;s receiving the money and distributing it and so on?</p>\n\n\n\n<p>[00:23:23] <strong>Héctor de Prada:</strong> Well, normally what we do is that, since our costs are very located in, I would say 90% or maybe 95% of the budget goes to the food and drinks for the catering, which we have also tried different companies and different stuff. So they give us a bill and then we&#8217;ll send it to the sponsors so they pay the bill. I know it&#8217;s not the easiest way. Sometimes because of the company requirements of the food, we have to give the money first and then ask the sponsor to give us the money.</p>\n\n\n\n<p>Well, I guess as long as you are, for example, us of course, in the team, as long as you are completely transparent and you show where all the money goes and what is being spent. At least for us, I&#8217;m sure for you guys in London, for example, it has to be way different because it&#8217;s another city, other kind of prices and everything. But for us, the money sums are really, really small. Even when we have a 60 person Meetup, the money is really small. It just gives you for that, for like the food and that. We are still waiting to try to do some T-shirts for the team, but we haven&#8217;t still gotten the money for that.</p>\n\n\n\n<p>[00:24:27] <strong>Nathan Wrigley:</strong> So you tend to get a sponsor on board to sponsor a thing, a component of the Meetup. So it might be that this week hosting company X is sponsoring the food. Or such and such a company is sponsoring the venue. It&#8217;s like in one door out the other. Somebody on your team will pay for the food, but then send the receipt, the bill if you like, to the sponsor, who will then reimburse them for all of that.</p>\n\n\n\n<p>[00:24:50] <strong>Héctor de Prada:</strong> Yeah, could be. For example, we have never paid for the venue. We have always had agreements, it&#8217;s always free for us so far. Yeah, it&#8217;s basically always the food. And the sponsor, even the local company has changed a few times.</p>\n\n\n\n<p>But for example, I would say the WordPress community company, that for us is a hosting company, that also sponsors many WordCamps in Spain, we have always had the same one because since the beginning they told us, we want to sponsor, and as long as you keep doing it, we will send you the money or give us the bills.</p>\n\n\n\n<p>And also the sponsors we&#8217;ve had, they always give us gifts or merchandise for the attendees or maybe to give something like a raffle and then somebody can win a prize or something better. Or they even give us gifts for the speakers as well. So they always treat us very good.</p>\n\n\n\n<p>[00:25:37] <strong>Nathan Wrigley:</strong> So is there like a magic number that makes the event work? So you said that sometimes 70, sometimes 55, something like that. I mean, they seem like pretty good numbers. If you stand in front of that many people, that can be quite intimidating, you know, that&#8217;s a lot. Obviously other places will have smaller numbers. Maybe some places will have bigger numbers.</p>\n\n\n\n<p>Is there some feeling in your head about, if the numbers dipped down to 20, it&#8217;s not worth doing it anymore or anything like that? Do you have any of those thoughts? Because I know that a lot of people who&#8217;ve put these events on before, they get quite demoralized because they begin it, three people show up and they do it again, and then two people show up and maybe five people show up. And it kind of seems like a lot of effort. There&#8217;s not much interest. I&#8217;m trying my hardest, I&#8217;m doing all the things which I think are the right things to do. Any thoughts on that?</p>\n\n\n\n<p>[00:26:22] <strong>Héctor de Prada:</strong> Yeah, well, I think it&#8217;s definitely challenging because I&#8217;ve seen, like you said, many cities where this is the case. It&#8217;s really hard for them to get people to attend. I think the main focus for us, when we got all the team together, we always try to think about new things to bring new people in. Maybe talking with the teachers at the university, or maybe going to a business group to present them the Meetup, or maybe get a collaboration with a social media influencer in the city, so he can talk about the Meetups, even be a speaker and then post it on socials. So it is definitely, I think it&#8217;s the most important thing.</p>\n\n\n\n<p>In my experience, i&#8217;ve been in many Meetups and when you are more than 20 people, I could say, it already feels pretty good. Because more than 20 people, it&#8217;s already a good number of people to network, to talk, to give a presentation in front of. So more than 20 people, I think it&#8217;s already a good number. When you go below 20, below 10, I guess it&#8217;s pretty hard.</p>\n\n\n\n<p>[00:27:19] <strong>Nathan Wrigley:</strong> You sort of feel that it&#8217;s a lot of work and, you know, it&#8217;s difficult to justify that work if the interest is not there.</p>\n\n\n\n<p>So speaking of that then, is there a support, like a wider WordPress Meetup support network? So where you can go and dip in for ideas, advice. Obviously if you&#8217;re listening to this podcast, that&#8217;s one avenue you might get it. But is there a place that you can go, like a Slack channel or a wordpress.org forum or something like that where you could go and gain advice, or some leadership from people like you who&#8217;ve been doing this before?</p>\n\n\n\n<p>[00:27:48] <strong>Héctor de Prada:</strong> Yeah, well, there are different places. In the day to day, we have the Slack channel, for example, in the Spanish community inside the WordPress Slack, we have a channel for the Spanish Meetups. So every time we have a problem, we had one a few weeks ago with the Meetup platform, for example, or things like that. We always go there and there is always somebody from the community team replying, and telling you, and helping you, whatever you need.</p>\n\n\n\n<p>Also I think it&#8217;s very important. It was huge for us at the beginning, before we started doing the Meetup of our city, again, when we started now 18 months ago, it was very helpful to go to WordCamps and in the Contributor Day, like today, go to the community tables and talk with the people that has experience organising Meetups. And they were the ones, for example, when we started it was like super easy because people like Rocío Valdivia, Juan Hernando, who are very deep into the community team for many years, they have been there. They just help us do all the process, all we needed to know. They gave us all the basic advice to know, screwed up at the beginning.</p>\n\n\n\n<p>So I would say, if somebody&#8217;s looking to organise a Meetup, the first thing they should do is to go to a WordCamp event, or maybe a Meetup in a different city, and talk with people that is organising a Meetup to just get some of the real experience, because I think that&#8217;s invaluable.</p>\n\n\n\n<p>[00:29:08] <strong>Nathan Wrigley:</strong> How do your team actually meet up then? Do you have like a regular weekly gathering, like a session where you all gather on zoom or something like that?</p>\n\n\n\n<p>[00:29:16] <strong>Héctor de Prada:</strong> It&#8217;s more like on a monthly basis. So since we do Meetups every two months, let&#8217;s say on average. So one month we do the Meetup, and then the next month we got all together. It may be all together on the same place, because since it&#8217;s a small city, we are all kind of close to each other, or it might be on Zoom. And then we do like the feedback of the previous Meetup to talk about what went well, what could be improved, and at the same time to prepare the next Meetup.</p>\n\n\n\n<p>So it&#8217;s kind of one month, Meetup, one month, all get together to talk about it. Next month, Meetup, next month, get together to talk about it.</p>\n\n\n\n<p>In one hour we can talk about the previous Meetup and organise the next one. And I&#8217;m not talking about organise everything, I&#8217;m talking about kind of like divide the responsibilities and say, okay, so I&#8217;m going to do this, you&#8217;re going to do this. And then on a WhatsApp group, we are just letting each other know like, okay, I already booked the venue. Okay, I already talked with the speaker, and he said, okay. Okay, I already designed the flyer or the image and we are good to go, and things like that.</p>\n\n\n\n<p>[00:30:14] <strong>Nathan Wrigley:</strong> From what you&#8217;re saying, it sounds like it&#8217;s kind of got a homely, family sort of vibe to it.</p>\n\n\n\n<p>[00:30:20] <strong>Héctor de Prada:</strong> Yes. We try to have that casual vibe, like friendship vibe. Like, even in the Meetups, when people come at the beginning when other people on the team was speaking at the beginning, like presenting the Meetup, and talking a little bit about what is the WordPress community, or what do we do here, what type of events are in the WordPress community and everything. They were a little bit nervous about it because they haven&#8217;t done it before or seen it as many times as I have seen it.</p>\n\n\n\n<p>And I would always tell them, this is like a friend group. If you say something wrong, you just say naturally, okay, this is my mistake. I should have said that this way and not that way, okay. And just do it in a casual vibe. Like, most of the people, like I said, since they&#8217;re regular people, we kind of know everybody. We all know each other because we do, if we do like one hour talk, then we always have like one hour, or hour and a half, of networking. So almost everybody knows each other.</p>\n\n\n\n<p>So it&#8217;s kind of more like, yeah, like friendship, not family, but friendship. We try to do that also so everybody who comes feels comfortable and not afraid to speak with anybody or even to ask something during the Meetup or anything. Because it feels really like it&#8217;s just a group of friends and you are part of those friends and everybody&#8217;s welcome.</p>\n\n\n\n<p>[00:31:35] <strong>Nathan Wrigley:</strong> Yeah, that feels really nice. The Meetup that I attend, we also have this idea of kind of networking and that seems to be quite a powerful thing as well. So people don&#8217;t just show up to make friends, which is nice. They don&#8217;t just show up to watch the presentations. Again, it&#8217;s nice, but they also show up, and there&#8217;s an opportunity to share stories about, I&#8217;m looking for work, I&#8217;ve got a job that I need to be filled.</p>\n\n\n\n<p>And just the other month we had a story about somebody who, you know, started a new job because of a conversation that had happened at that event. Just wondered if that kind of thing was something that you have noticed happens with yours as well?</p>\n\n\n\n<p>[00:32:09] <strong>Héctor de Prada:</strong> Definitely, definitely. One of the first things I was telling, for example, in the first Meetup we have, I think a few students came from the university. And I was like, this is where you have to be because you&#8217;re studying for marketing, and here there are like, I don&#8217;t know, like seven or eight agency owners that are going to be looking for the next people to work on their marketing team. So this is the perfect place. You are not going to meet them any other place. You&#8217;re not going to go on the street and just cross them all. So you have a marketing agency. I want to work on a marketing agency. No, it&#8217;s not going to happen.</p>\n\n\n\n<p>But here you just come here for free, you learn something, and also you can talk to these people directly. You can tell them about your life. They can tell you about theirs. Maybe there is a match. So yeah, I hope, I know a couple of stories that have worked, but I hope, I really hope it will be like the best thing for the Meetup that a lot of good things, it&#8217;ll either be collaborations, hirings, partnerships, anything come out of the Meetup. Because that would be great for the ecosystem, for the people in our city, for the people attending the Meetups. So that would make us so, so happy.</p>\n\n\n\n<p>[00:33:11] <strong>Nathan Wrigley:</strong> It&#8217;s one of those things that I think many people might find it a little bit nervous to go for the first time. You know, just the idea of sitting in a room full of strangers. You can do just that. You can sit at the back and you don&#8217;t have to contribute. You don&#8217;t have to put your hand up and say anything. So the idea of just showing up, lurking maybe a few times, just seeing what the whole situation is like. And you never know, something completely revolutionary might happen.</p>\n\n\n\n<p>[00:33:33] <strong>Héctor de Prada:</strong> Yeah. There is always, sometimes when you go to the networking part, and you don&#8217;t know anybody, the normal thing is that you probably go to a corner just by yourself, okay. Or just close to a wall and just stay there. But the normal thing in this type of events, or I would say almost any event, is that you&#8217;re going to find other people next to the wall, next to you, because they also don&#8217;t know anybody.</p>\n\n\n\n<p>And those are the first people you&#8217;re going to meet. And you&#8217;re going to create that relationship. And from that you&#8217;re going to start moving to other groups. Somebody&#8217;s going to come that knows one of you. And that&#8217;s how it starts. So it might feel intimidating at the beginning, but then once you get into it, also, this is especially in the WordPress community, it&#8217;s very easy to start to know people.</p>\n\n\n\n<p>[00:34:17] <strong>Nathan Wrigley:</strong> Yeah. It&#8217;s just occurred to me, Héctor, that we&#8217;re sort of 40 minutes in and I haven&#8217;t said, where is it? Where is your Meetup?</p>\n\n\n\n<p>[00:34:24] <strong>Héctor de Prada:</strong> Okay, yeah, true. Well, it&#8217;s in the city of León, which is in the north of Spain. It&#8217;s a small city in the north of Spain.</p>\n\n\n\n<p>[00:34:31] <strong>Nathan Wrigley:</strong> And I will make sure, when I put the show notes together for this episode, if you go to wptavern.com and search for the episode with Héctor in it, I&#8217;ll make sure to link any resources that you put in my way. I&#8217;ll make sure to link so that if you are in that neck of the woods, you can check it out, but also I&#8217;ll make sure to link to other more wider resources.</p>\n\n\n\n<p>[00:34:50] <strong>Héctor de Prada:</strong> If somebody that listens to this at any point thinks that me or anybody on our Meetup group can help them, if they are trying to create a Meetup, or doing a Meetup and trying to change something, please reach out to us and of course we&#8217;ll be happy to talk with anybody, if our experience can help in any way.</p>\n\n\n\n<p>[00:35:10] <strong>Nathan Wrigley:</strong> That&#8217;s perfect. I will make sure to put some links to your bio as well. That&#8217;s absolutely wonderful. Héctor de Prada, thank you so much for chatting me today.</p>\n\n\n\n<p>[00:35:17] <strong>Héctor de Prada:</strong> Thank you, Nathan.</p>\n</div></details>\n\n\n\n<p>On the podcast today we have Héctor de Prada.</p>\n\n\n\n<p>Héctor is one of the founders of Modular DS, a tool for managing multiple WordPress websites, but his contributions to the WordPress community go far beyond his day job. Based in Spain, he’s been involved in creating and developing websites for years, and has immersed himself in the WordPress community, attending numerous WordCamps and Meetups in various cities. More recently, he’s been co-organising the WordPress Meetup in León, a city in the north of Spain, which has seen impressive growth and engagement since its revival after the pandemic.</p>\n\n\n\n<p>Héctor shares why he volunteers his free time to organise these community events, and the impact Meetups can have, not only for individual learning, but for revitalising local tech ecosystems.</p>\n\n\n\n<p>We discuss what makes a successful Meetup, how his team approaches event planning, rotating roles so nobody feels the pressure to attend every time, and how sponsors and local venues help make it all happen.</p>\n\n\n\n<p>Héctor explains how their Meetup group draws diverse attendees, from students and marketers to business owners and agencies, and how they’ve experimented with differing formats and topics to keep things fresh and inclusive. Whether it’s inviting guest speakers from digital businesses, running panel forums, or focusing on networking opportunities for job seekers and entrepreneurs, he highlights the power of community in building connections that extend beyond WordPress.</p>\n\n\n\n<p>We cover everything from the practicalities of finding venues and sponsors, to managing team workflows and keeping the events welcoming and approachable.</p>\n\n\n\n<p>If you’ve ever thought about starting a WordPress Meetup in your city, or want to bring new energy to an existing group, this episode is for you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Useful links</h2>\n\n\n\n<p>Héctor&#8217;s presentation at WordCamp Europe 2025: <a href=\"https://europe.wordcamp.org/2025/session/tips-for-hosting-a-successful-wp-meetup-in-your-city/\">Tips for hosting a successful WP meetup in your city</a></p>\n\n\n\n<p><a href=\"https://www.meetup.com/es-ES/leon-wordpress-meetup/\">WordPress León meetup</a></p>\n\n\n\n<p><a href=\"https://www.linkedin.com/in/hectordeprada/overlay/about-this-profile/\">Héctor on LinkedIn</a></p>\n\n\n\n<p><a href=\"https://profiles.wordpress.org/hdeprada/\">Héctor on wordpress.org</a></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Jul 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:45;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:49:\"Open Channels FM: What Is Fractional Sponsorship?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99195\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"https://openchannels.fm/what-is-fractional-sponsorship/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:386:\"As described by longtime contributor Tammie Lister in a recent episode of Open Talk on Open Channels, fractional sponsorship is when a contributor is sponsored part-time by multiple organizations (or individuals). Rather than being fully funded by one company or acting as a purely unpaid volunteer, fractional contributors assemble support from several interested parties. As [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Jul 2025 10:46:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:46;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"Jonathan Desrosiers: 12 Years Contributing to WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:38:\"https://jonathandesrosiers.com/?p=5028\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://jonathandesrosiers.com/2025/07/12-years-contributing-to-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:10205:\"<p class=\"\">Twelve years ago today, I received <a href=\"https://core.trac.wordpress.org/changeset/24588\">my very first props for contributing to WordPress Core</a>. I had no idea at the time, but it turned out to be a transformative milestone in my career.</p>\n\n\n\n<p class=\"\">In WordPress, community participants receive credit for contributing to a given change or deliverable by receiving “props.”</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">Props should be given to all those who contributed to the final commit, whether through patches, refreshed patches, code suggested otherwise, design, writing, user testing, or other significant investments of time and effort. Usernames are parsed for the credits list and WordPress.org profiles.</p>\n\n\n\n<p class=\"is-style-text-subtitle is-style-text-subtitle--2\"><a href=\"https://make.wordpress.org/core/handbook/best-practices/commit-messages/#props\">WordPress Core Handbook</a></p>\n</blockquote>\n\n\n\n<p class=\"\">Before each release, the names of all contributors to that version are collected and added to the Credits API, which powers the Credits page in the WordPress dashboard. I&#8217;m proud to have been listed on that page for 22 consecutive releases starting with 4.7, and 27 of the 33 releases overall since my first credited contribution in <a href=\"https://wordpress.org/news/2013/10/basie/\">WordPress 3.7 “Basie,”</a> alongside 210 other contributors.</p>\n\n\n\n<figure class=\"wp-block-image size-full wp-lightbox-container\"><img alt=\"\" class=\"wp-image-5292 not-transparent\" height=\"2560\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/07/WordPress-6.8-Credits-Screen-scaled.png\" width=\"2560\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">The WordPress 6.8 Credits page.</figcaption></figure>\n\n\n\n<p class=\"\">To celebrate my <a href=\"https://jonathandesrosiers.com/2023/07/10-years-of-contributing-to-wordpress/\">ten year anniversary</a>, I started publishing a blog post each year. In past editions, I&#8217;ve focused a <a href=\"https://jonathandesrosiers.com/2023/07/10-years-of-contributing-to-wordpress/\">bit on my WordPress origin story</a> and looking at <a href=\"https://jonathandesrosiers.com/2024/07/11-years-contributing-to-wordpress/\">some &#8220;props&#8221; related data</a>.</p>\n\n\n\n<p class=\"\">This year, I&#8217;m excited to commemorate the day by announcing something new!</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-from-stage-to-essay\">From Stage to Essay</h2>\n\n\n\n<p class=\"\">At the end of May, <a href=\"https://www.linkedin.com/in/nickvidal\">Nick Vidal</a> from the <a href=\"https://opensource.org/\">Open Source Initiative</a> reached out to me. To celebrate <a href=\"https://maintainermonth.github.com/\">GitHub’s Maintainer Month</a>, he had been working to compile a collection of contributor stories for a book about the maintainers behind Open Source projects. He asked me if I&#8217;d be willing to submit something.</p>\n\n\n\n<p class=\"\">I was honored! I read through the dozen or so questions he sent and wrote answers for a handful that resonated with me. The next day I flew out to <a href=\"https://jonathandesrosiers.com/2025/04/speaking-at-wordcamp-europe-2025/\">attend WordCamp Europe</a>. Between the whirlwind of travel, attending sessions, and preparing to give my talk, I completely forgot about it.</p>\n\n\n\n<p class=\"\">A few days after speaking, I received another email from Nick.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">While doing some research about you, I fell in love with your recent talk at WordCamp Europe.</p>\n</blockquote>\n\n\n\n<p class=\"\">He had <a href=\"https://jonathandesrosiers.com/2025/06/how-a-core-committer-thinks-making-decisions-for-millions/\">seen the recording of my talk</a> and asked me to incorporate the subject matter with the answers I had already sent over for the book. My speaker notes captured the core ideas, but they needed a lot of refinement and proper citations before they could stand alone as a publishable essay. I also included some thoughts from my recent post about the <a href=\"https://jonathandesrosiers.com/2025/06/the-impact-of-open-source-work/\">impact of maintaining Open Source projects</a>.</p>\n\n\n\n<p class=\"\">I&#8217;m excited to share that thanks to the many hours Nick put into the project, the <a href=\"https://maintaine.rs/\">maintaine.rs</a> website showcasing this project is live. <img alt=\"🎉\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f389.png\" style=\"height: 1em;\" /> You can read my <a href=\"https://maintaine.rs/desrosj\">essay on the website</a>, or download the full book in PDF or EPUB format.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-building-on-the-ideas-of-others\">Building On The Ideas Of Others</h2>\n\n\n\n<p class=\"\">My good friend and fellow Core Committer <a href=\"https://en.wikipedia.org/wiki/Baseball\">Felix Arntz</a> celebrated the 10 year anniversary of his first contribution to WordPress late last month. He <a href=\"https://felix-arntz.me/blog/10-lessons-from-10-years-of-contributing-to-wordpress-core/\">wrote about 10 things he’s learned in 10 years of contributing</a>.</p>\n\n\n\n<p class=\"\">As far as I know, Felix hadn’t seen my WCEU talk or heard about the Maintainers project. Despite that, we ended up exploring many of the same themes and principles.</p>\n\n\n\n<p class=\"\">While the ideas I explore in my talk and essay aren’t novel, they’re rooted in lessons I’ve learned from others and foundational Open Source concepts. A key part of participating in any Open Source community is learning from your predecessors. How should we conduct ourselves? How should we structure our communities? How should we make decisions? You can earn the respect of your peers by demonstrating that you thoughtfully consider these questions through your day to day actions.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-submit-your-own-story\">Submit Your Own Story</h2>\n\n\n\n<p class=\"\">I&#8217;m grateful to be included in the book among many other amazing maintainers, but I was also glad to find out I was not the only maintainer representing the WordPress project: <a href=\"https://maintaine.rs/karmatosed\">Tammie Lister also submitted her maintainer story</a>.</p>\n\n\n\n<p class=\"\">While it&#8217;s good to see WordPress represented in the book, the project is maintained by many people, not just two.</p>\n\n\n\n<p class=\"\">On the landing page for the project is a call out to &#8220;Share Your Story&#8221; for consideration in future editions. The <a href=\"https://heropress.com/\">HeroPress</a> site does an amazing job of surfacing the stories behind members of the WordPress community. But there’s value in sharing those stories with the broader Open Source community too. If you help maintain WordPress in some way, I hope you’ll consider sharing your story for a future edition of the book, they all deserve to be heard.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-closing-thoughts\">Closing Thoughts</h2>\n\n\n\n<p class=\"\">Over the past 12 years, I’ve done my best to contribute in ways that don’t just solve problems, but make the project more approachable, more sustainable, and more human.</p>\n\n\n\n<p class=\"\">I recently received this DM from someone.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">“Watched your talk on my way home. You did a fantastic job explaining core and the committer role. Reminded me why I’m still around and invigorated to do more. Thanks!”</p>\n</blockquote>\n\n\n\n<p class=\"\">It came from someone I deeply respect, someone I’ve learned a great deal from over the years.</p>\n\n\n\n<p class=\"\">It’s easy to underestimate the <a href=\"https://jonathandesrosiers.com/2025/06/the-impact-of-open-source-work/\">impact even our most routine contributions can have on others</a>, especially in Open Source, where so much of the work happens asynchronously and behind a screen.</p>\n\n\n\n<p class=\"\">Messages like this remind me why I do this work. I hope others have found value or inspiration in what I’ve shared. And if my story, my talk, or my essay helps even a few people feel more connected or inspired to stay involved, then it’s all been worth it.</p>\n\n\n\n<p class=\"\">Here&#8217;s to year 13 and beyond. <img alt=\"❤\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/2764.png\" style=\"height: 1em;\" /></p>\n\n\n\n<hr class=\"wp-block-separator alignwide has-alpha-channel-opacity\" />\n\n\n\n<p class=\"\">&#8220;Props&#8221; Anniversaries: <a href=\"https://jonathandesrosiers.com/2023/07/10-years-of-contributing-to-wordpress/\">Ten</a>, <a href=\"https://jonathandesrosiers.com/2024/07/11-years-contributing-to-wordpress/\">Eleven</a>.</p>\n\n\n\n<p class=\"\">Commit-iversaries: <a href=\"https://jonathandesrosiers.com/2020/11/two-years-my-wordpress-commit-iversary/\">Two</a>, <a href=\"https://jonathandesrosiers.com/2023/11/five-years-my-wordpress-commit-iversary/\">Five</a>, <a href=\"https://jonathandesrosiers.com/2024/11/six-years-a-committer-my-wordpress-commit-iversary/\">Six</a>.</p>\n\n\n\n<p class=\"has-text-align-right\"><em>Featured image credit: &#8220;<a href=\"https://wordpress.org/photos/photo/56633defe8/\" rel=\"noreferrer noopener\" target=\"_blank\">A couple of bookshelves with colorful books on a stone wall</a>&#8221; by <a href=\"https://mburnette.com\" rel=\"noreferrer noopener\" target=\"_blank\">mdburnette</a>/ <a href=\"https://creativecommons.org/publicdomain/zero/1.0/?ref=openverse\" rel=\"noreferrer noopener\" target=\"_blank\">CC0 1.0</a></em></p>\n<p>The post <a href=\"https://jonathandesrosiers.com/2025/07/12-years-contributing-to-wordpress/\">12 Years Contributing to WordPress</a> appeared first on <a href=\"https://jonathandesrosiers.com\">Jonathan Desrosiers</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Jul 2025 11:52:32 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:47;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"Open Channels FM: How to Pitch Stories That Matter in the WordPress Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100715\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"https://openchannels.fm/how-to-pitch-stories-that-matter-in-the-wordpress-community/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:208:\"In this Media Playbook episode, Rae Morey and Adam Weeks discuss effective pitching for WordPress stories, covering what makes a story newsworthy, and providing practical advice for successful media outreach.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Jul 2025 08:27:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"Open Channels FM: With Your New Site, Start With Content, Even if the Plan is Messy\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100410\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://openchannels.fm/with-your-new-site-start-with-content-even-if-the-plan-is-messy/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:333:\"When a business first starts creating content, it often looks chaotic. There’s not always a strategy. You try a few blog posts, maybe some tutorials or listicles, toss in a few keywords you think matter, and hope something sticks. And that’s okay. In fact, that messy start is what helps shape your future strategy. The [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Jul 2025 07:17:58 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:49;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"Tammie Lister: What if we paused default themes?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://binatethoughts.com/?p=2346\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"https://binatethoughts.com/what-if-we-paused-default-themes/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5710:\"<p>Before I begin this post, I am writing it not expecting change, but rather sharing my opinion. It is the opinion of someone who has themes both default and working with them from agencies to exploration, threaded through their life. I say this with a passion for what themes were, are, and I see evolving into. I am also focusing on a pause, not a stop or hard point. This is a suggestion, a thought I am working through myself.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The past</h2>\n\n\n\n<p>The default themes worked for us as a project in WordPress. They were both a call to unify in work, and also allowed us something to focus on testing the features of the year. They were also a way to close out the year; historically, many switched to them to showcase.</p>\n\n\n\n<p>Another thing the default themes have done well is showcase different aspects of WordPress. One could argue that having a theme focus is key for everyone. Similarly, many writers use it as a basis for their content, drawing on it as fuel. It was an end to the year for many, although I would self-reflect, as the years have gone by, this has waned. Again, this is a personal reflection.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Today</h2>\n\n\n\n<p>For a long time, whether we like to admit it or not, the default theme process has been more complex and disjointed. It hasn&#8217;t been as much about testing features as many weren&#8217;t theme visible. </p>\n\n\n\n<p>Each default theme currently incurs a high maintenance cost. This goes over the code in support. I am reluctant to recommend anything in core that adds to the bundled theme debt at this time, considering there is still a backlog. To be clear, I want to see significant product benefits before recommending it as a course of action.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Themes have changed</h2>\n\n\n\n<p>Themes are a sliding scale of complexity, ranging from the quick brew weekend, a few hours of JSON for a personal site, to the large-scale enterprise theme founded on a complex design system, an extensive pattern library, and variations. Themes today are different, and anyone who is creating them knows this. Anyone not creating them also knows this, which is where the next bit comes in.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The education piece</h2>\n\n\n\n<p>One of the loudest comments in favour of having a default theme is that it brings education. Whilst this is true, education once a year isn&#8217;t useful. We need to consider the themes that are relevant today, and to do that, we need to examine all the pieces and their respective use cases. How are different people making themes? How are individuals experimenting? How are agencies scaling? How are people using themes today, and where are they stuck?</p>\n\n\n\n<h2 class=\"wp-block-heading\">What a theme is needs to be reconsidered</h2>\n\n\n\n<p>The strongest point for pausing this year is to take a moment as a project and consider what a theme is today. What design tools are missing that we need first? What pieces do we have, and how do they go together? Where do they not go together and need to? Fix those flows first, then build amazing &#8216;themes&#8217; or whatever we settle on.</p>\n\n\n\n<p>The future of a theme might be a &#8216;kit&#8217; where you have a style you share. It might be something else. We haven&#8217;t paused long enough to think about it, and it&#8217;s not the same format we keep reworking in default themes.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What else could we do instead?</h2>\n\n\n\n<p>Here are a few things that could be done with all the people and effort a theme release typically takes. It&#8217;s worth noting that they require a lot, which is why these are in much greater demand at this time.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Education: </strong>Many people still don&#8217;t understand or haven&#8217;t fully explored the potential of block themes. Taking time for this collectively could be a powerful experience. It also helps the ecosystem, agencies and products.</li>\n\n\n\n<li><strong>Improve the design tools for themes:</strong> By adding features such as adaptive controls and other missing pieces, redirecting the effort that would have gone into the default theme into the core editor itself. This benefits everyone and all themes.</li>\n\n\n\n<li><strong>Rejuvenate the community theme project:</strong> This moves it beyond being a one-time event and could include various types of experiments. Allow exploration of what a theme is.</li>\n\n\n\n<li><strong>Identify the areas where the themes are not working out:</strong> Improve this with tools and also within the core itself. This goes beyond the design tools and into the system of themes themselves.</li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">A pause is not a stop</h2>\n\n\n\n<p>I chose this title because I am suggesting a pause, although I struggle to see &#8216;when&#8217; we would need them, but of course, things change. As a project, WordPress should also release more experiments on what a theme should be today. That&#8217;s been the issue, and as a result, the default theme has become such a hot topic for people. </p>\n\n\n\n<p>This is just my thought, though. If a default theme were to happen, it would be amazing and welcome. I also know it will be done incredibly well. I often reflect on the logistics and the limited resources required for incredible contributions. I always want to put them in the space where they will be most effective and move the project forward. I also think that, as a product, it makes sense to have focus, and I can&#8217;t see a default theme that fits right now. I&#8217;m open to evidence, as always, to counter that. For that, it&#8217;s up to the project to decide, not me.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 06 Jul 2025 16:57:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"binatethoughts.com\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:48:\"WpOrg\\Requests\\Utility\\CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Thu, 07 Aug 2025 02:25:42 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:13:\"last-modified\";s:29:\"Thu, 07 Aug 2025 02:15:18 GMT\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:16:\"content-encoding\";s:2:\"br\";s:7:\"alt-svc\";s:19:\"h3=\":443\"; ma=86400\";s:4:\"x-nc\";s:9:\"HIT ord 1\";}}s:5:\"build\";i:1727736620;s:21:\"cache_expiration_time\";i:1754576742;s:23:\"__cache_expiration_time\";i:1754576742;}','off'),(608691,'_wpforms_transient_timeout_existing_tables','1755153609','off'),(608692,'_wpforms_transient_existing_tables','a:1:{s:14:\"wpye_wpforms_%\";a:4:{i:0;s:17:\"wpye_wpforms_logs\";i:1;s:25:\"wpye_wpforms_payment_meta\";i:2;s:21:\"wpye_wpforms_payments\";i:3;s:23:\"wpye_wpforms_tasks_meta\";}}','off'),(607115,'_wpforms_transient_timeout_splash.json','1755153609','off'),(607116,'_wpforms_transient_splash.json','1754548809','off'),(607126,'_transient_is_multi_author','0','on'),(607935,'_site_transient_timeout_wp_theme_files_patterns-287ff3d263b68fdadffe28a7bf91ea95','1754541526','off'),(607936,'_site_transient_wp_theme_files_patterns-287ff3d263b68fdadffe28a7bf91ea95','a:2:{s:7:\"version\";b:0;s:8:\"patterns\";a:0:{}}','off'),(607947,'_site_transient_timeout_wp_theme_files_patterns-d6ab1c004d9230efb341e13b1568c939','1754541607','off'),(607948,'_site_transient_wp_theme_files_patterns-d6ab1c004d9230efb341e13b1568c939','a:2:{s:7:\"version\";b:0;s:8:\"patterns\";a:0:{}}','off'),(608004,'_site_transient_timeout_wp_theme_files_patterns-2a6cbfd681f2ed8a12f262447a0e187d','1754542127','off'),(608005,'_site_transient_wp_theme_files_patterns-2a6cbfd681f2ed8a12f262447a0e187d','a:2:{s:7:\"version\";b:0;s:8:\"patterns\";a:0:{}}','off'),(607111,'brizy_update__transient_67dbd598f3b7b61f95efbf707c145c50','a:2:{s:7:\"timeout\";i:1754566070;s:5:\"value\";s:53068:\"{\"new_version\":\"2.7.2\",\"name\":\"Brizy Pro\",\"slug\":\"brizy-pro\",\"url\":\"https:\\/\\/www.brizy.io\\/changelog-pro\\/\",\"homepage\":\"https:\\/\\/www.brizy.io\\/pro\\/\",\"package\":\"https:\\/\\/www.brizy.io\\/account\\/misc\\/brizy-license\\/download?token=MTc1NDU3Njg3MDpCUE5XVzlRSjFZUEpUR05FOExMOmE4YzlkYjAyZmZmZjcwMGM1YTRjMmE1MjgwYTI3YjExOmJyaXp5LXByby0yLjcuMi56aXA6MjE2LjcuOTEuMTIzOmNsZWFuc2xhdGVzaG9wLmNh\",\"download_link\":\"https:\\/\\/www.brizy.io\\/account\\/misc\\/brizy-license\\/download?token=MTc1NDU3Njg3MDpCUE5XVzlRSjFZUEpUR05FOExMOmE4YzlkYjAyZmZmZjcwMGM1YTRjMmE1MjgwYTI3YjExOmJyaXp5LXByby0yLjcuMi56aXA6MjE2LjcuOTEuMTIzOmNsZWFuc2xhdGVzaG9wLmNh\",\"tested\":\"6.8.1\",\"requires_php\":\"7.2.24\",\"requires\":\"4.5\",\"icons\":{\"2x\":\"https:\\/\\/ps.w.org\\/brizy\\/assets\\/icon-256x256.jpg\",\"1x\":\"https:\\/\\/ps.w.org\\/brizy\\/assets\\/icon.svg\",\"svg\":\"https:\\/\\/ps.w.org\\/brizy\\/assets\\/icon.svg\"},\"banners\":{\"2x\":\"https:\\/\\/ps.w.org\\/brizy\\/assets\\/banner-1544x500.jpg\",\"1x\":\"https:\\/\\/ps.w.org\\/brizy\\/assets\\/banner-772x250.jpg\"},\"sections\":\"a:2:{s:11:\\\"description\\\";s:220:\\\"Creating WordPress pages should be fast & easy. Brizy is a new and innovative way of building WordPress pages visually. No designer or developer skills required. The only tools you\'ll need to master are clicks and drags.\\\";s:9:\\\"changelog\\\";s:49394:\\\"<strong> 2.7.2 - 2025-07-23 <\\/strong><br \\/>\\n* Fixed: reverse column<br \\/>\\n* Fixed: popup trigger once condtion<br \\/>\\n<br \\/>\\n<strong> 2.7.1 - 2025-07-17 <\\/strong><br \\/>\\n* New: Compatibility with Wordpress 6.8.2<br \\/>\\n<br \\/>\\n<strong> 2.7.0 - 2025-07-15 <\\/strong><br \\/>\\n* New: DC Text can be limited to a chosen number of lines<br \\/>\\n* New: Global Blocks can be renamed directly in the sidebar<br \\/>\\n* Fixed: WS Form Pro now embeds and submits correctly inside Brizy pages<br \\/>\\n* Fixed: Global Block Rules \\u2013 category selector works<br \\/>\\n* Fixed: Global Block Rules \\u2013 missing loading indicator when saving<br \\/>\\n* Fixed: Scroll Animation \\u2013 scale effect option now functions correctly<br \\/>\\n* Fixed: Fonts \\u2013 all Adobe Font weights are available<br \\/>\\n* Fixed: Menu \\u2013 hamburger icons display correctly<br \\/>\\n* Fixed: Story \\u2013 background DC image shows<br \\/>\\n* Fixed: Accordion \\u2013 tag color picker works<br \\/>\\n* Fixed: DC\\u2011Text \\u2013 number of lines setting works<br \\/>\\n<br \\/>\\n<strong> 2.6.14 - 2025-06-10 <\\/strong><br \\/>\\n* Improved: Enhanced performance for image resizing.<br \\/>\\n<br \\/>\\n<strong> 2.6.13 - 2025-05-26 <\\/strong><br \\/>\\n* Fixed: Plugin name for WL users.<br \\/>\\n<br \\/>\\n<strong> 2.6.12 - 2025-05-13 <\\/strong><br \\/>\\n* New: Chart element<br \\/>\\n* Fixed: Rounded corners on video playlists look right in the preview<br \\/>\\n* Fixed: Social icons use the correct default URL<br \\/>\\n* Fixed: Webhook names display correctly<br \\/>\\n* Fixed: Playlist items with only a cover image work on click<br \\/>\\n* Fixed: Form styles render properly in RTL<br \\/>\\n* Fixed: Select fields show up in Global Pop-ups<br \\/>\\n* Fixed: Mega Menu opens from the Hamburger Menu without issues<br \\/>\\n<br \\/>\\n<strong> 2.6.11 - 2025-04-24 <\\/strong><br \\/>\\n* Fixed: Review component fix<br \\/>\\n<br \\/>\\n<strong> 2.6.10 - 2025-04-17 <\\/strong><br \\/>\\n* Fixed: Not all weights in Fonts tab for Adobe Fonts<br \\/>\\n<br \\/>\\n<strong> 2.6.9 - 2025-03-13 <\\/strong><br \\/>\\n* Fixed: Elements not displayed in preview<br \\/>\\n* Fixed: User with \'Editor\' role cannot edit page<br \\/>\\n<br \\/>\\n<strong> 2.6.8 - 2025-02-25 <\\/strong><br \\/>\\n* New: Added Linkedin Feed Component<br \\/>\\n* Fixed: Wrong arrangement of gallery images (masonry layout) at first render<br \\/>\\n* Fixed: Placeholder is rendered in comment<br \\/>\\n* Fixed: Custom icons for menu subitems<br \\/>\\n* Fixed: Form bug unable to set more fields on same row<br \\/>\\n* Fixed: Flipbox copy and paste styles<br \\/>\\n* Fixed: Flipbox set background image on Tablet and Mobile<br \\/>\\n<br \\/>\\n<strong> 2.6.7 - 2025-02-18 <\\/strong><br \\/>\\n* Fixed: Gallery with layout justify <br \\/>\\n<br \\/>\\n<strong> 2.6.6 - 2025-02-03 <\\/strong><br \\/>\\n* Fixed: Issues with recursive menu<br \\/>\\n<br \\/>\\n<strong> 2.6.5 - 2025-01-30 <\\/strong><br \\/>\\n* Fixed: Images cannot be deleted from Media Gallery<br \\/>\\n<br \\/>\\n<strong> 2.6.4 - 2025-01-15 <\\/strong><br \\/>\\n* Improved: Lazy load for Carousel element<br \\/>\\n* Fixed: Overlapped text on icons on Form and Login elements<br \\/>\\n* Fixed: Translate status messages in Form element<br \\/>\\n* Fixed: Instagram element is not loaded when Facebook element persists in page<br \\/>\\n* Fixed: Radio and Checkbox values are not send to Webhook in Form element<br \\/>\\n* Fixed: Hover color of custom icon in Menu element<br \\/>\\n* Fixed: Menu items alignment<br \\/>\\n* Fixed: Copy and paste styles from dynamic content text to simple text<br \\/>\\n* Fixed: Alt tag for featured image not working<br \\/>\\n* Fixed: Carousel dots in responsive mode<br \\/>\\n* Fixed: Input sanitization <br \\/>\\n<br \\/>\\n<strong> 2.6.3 - 2024-12-20 <\\/strong><br \\/>\\n* Fixed: Featured image focal point<br \\/>\\n<br \\/>\\n<strong> 2.6.2 - 2024-12-17 <\\/strong><br \\/>\\n* Fixed: Page crash because of adobe fonts<br \\/>\\n* Fixed: Zapier integration<br \\/>\\n<br \\/>\\n<strong> 2.6.1 - 2024-11-26 <\\/strong><br \\/>\\n* Fixed: Text domain loaded too early<br \\/>\\n<br \\/>\\n<strong> 2.6.0 - 2024-11-12 <\\/strong><br \\/>\\n* New: Added option to set number of columns for Carousel element on mobile <br \\/>\\n* New: Add a link to a checkbox in the Form element <br \\/>\\n* New: Set width in % and PX for column in Table element <br \\/>\\n* New: Instagram Feed element <br \\/>\\n* New: Added dotLottie and Media Library <br \\/>\\n* Fixed: Scroll Effect (MouseTrack, 3D Title) for PostInfo Element on Tablet\\/Mobile<br \\/>\\n* Fixed: Effects panel disappears when an effect is activated <br \\/>\\n* Fixed: Header block overlaps the add new block blue icon <br \\/>\\n* Fixed: Logout is not Translated <br \\/>\\n* Fixed: Gallery light box not working with animations <br \\/>\\n* Fixed: Form reCAPTCHA error on disconnect <br \\/>\\n* Fixed: Hamburger Menu <br \\/>\\n<br \\/>\\n<strong> 2.5.6 - 2024-11-05 <\\/strong><br \\/>\\n* Fixed: Polylang compatibilty with  Brizy pages<br \\/>\\n<br \\/>\\n<strong> 2.5.5 - 2024-10-21 <\\/strong><br \\/>\\n* Fixed: PayPal element displaying Brizy branded keywords.<br \\/>\\n<br \\/>\\n<strong> 2.5.4 - 2024-09-19 <\\/strong><br \\/>\\n* Fixed: The flipbox element is not working on Firefox <br \\/>\\n* Improved: Adobe Fonts Helper message<br \\/>\\n<br \\/>\\n<strong> 2.5.3 - 2024-09-18 <\\/strong><br \\/>\\n* Fixed: nav_menu_css_class filter parameter count<br \\/>\\n<br \\/>\\n<strong> 2.5.2 - 2024-09-17 <\\/strong><br \\/>\\n* New: Multistep option for the Form element<br \\/>\\n* New: Flipbox element<br \\/>\\n* New: Table of Contents element<br \\/>\\n* New: Adobe Fonts integration<br \\/>\\n* New: Custom icons upload in Icon element<br \\/>\\n* New: Transform effects for elements<br \\/>\\n* New: Features for Lottie element (trigger options, lazy load and more)<br \\/>\\n* New: Search in Global blocks conditions<br \\/>\\n* New: Height and Overflow options for Embed element<br \\/>\\n* New: Ability to change order of rows in Table element<br \\/>\\n* New: Columns options for Posts element in responsive modes<br \\/>\\n* Improved: Increase Dynamic Content selection size<br \\/>\\n* Improved: Moved EmbedCode element to PRO<br \\/>\\n* Improved: Text decoration underline for Text element with Dynamic Content link<br \\/>\\n* Improved: Use original name for custom uploaded files<br \\/>\\n* Fixed: Background video size when persists Lottie<br \\/>\\n* Fixed: Twitter element has no default type<br \\/>\\n* Fixed: Close popup button in Image and Icon elements<br \\/>\\n* Fixed: EmbedCode font size in Story mode<br \\/>\\n* Fixed: Form select drowdown height<br \\/>\\n* Fixed: Carousel element change min and max values for speed and stop time<br \\/>\\n* Fixed: Post content elements typography styles with link<br \\/>\\n* Fixed: Update Lottie element in story items after changing lottie link<br \\/>\\n* Fixed: Broken space of Text element when is used DC as block type<br \\/>\\n* Fixed: Popup conditions (displaying multiple times)<br \\/>\\n* Fixed: Menu element does not display in category<br \\/>\\n* Fixed: Form does not work when recaptcha is enabled<br \\/>\\n<br \\/>\\n<strong> 2.5.1 - 2024-08-01 <\\/strong><br \\/>\\n* Fixed: Placeholder terms links<br \\/>\\n<br \\/>\\n<strong> 2.5.0 - 2024-07-22 <\\/strong><br \\/>\\n* Fixed: Rating element bug with tooltip for settings<br \\/>\\n* Fixed: Bug with align for next post in PostNavigation<br \\/>\\n* Fixed: Popup close button not showing in some cases<br \\/>\\n* Fixed: Form margin not showing with radio type option<br \\/>\\n* Fixed: Popup with MegaMenu z-index bug<br \\/>\\n* Fixed: Bug when duplicating popups in some instances<br \\/>\\n<br \\/>\\n<strong> 2.4.38 - 2024-03-26 <\\/strong><br \\/>\\n* Fixed: dynamic content<br \\/>\\n<br \\/>\\n<strong> 2.4.37 - 2024-03-20 <\\/strong><br \\/>\\n* Fixed: Breadcrumbs title for non-ascii code<br \\/>\\n* Fixed: Switcher element cursor not showing pointer<br \\/>\\n* Fixed: Text element mask with Dynamic Image not working<br \\/>\\n* Improved: Changed UI for Dynamic population option<br \\/>\\n* Improved: Text element toolbar closing when changing Dynamic option<br \\/>\\n<br \\/>\\n<strong> 2.4.36 - 2024-02-13 <\\/strong><br \\/>\\n* Fixed: Text color from hex when we have the type transparent<br \\/>\\n* Fixed: Text Copy and Paste<br \\/>\\n<br \\/>\\n<strong> 2.4.35 - 2024-02-07 <\\/strong><br \\/>\\n* New: Dynamic Image for Video cover<br \\/>\\n* Improved: Increases rows number for Posts<br \\/>\\n* Fixed: Stories are not aligned in the middle of the screen<br \\/>\\n* Fixed: Animated background section when Carousel element is on the page<br \\/>\\n* Fixed: Unable to set Global Block<br \\/>\\n<br \\/>\\n<strong> 2.4.34 - 2024-01-17 <\\/strong><br \\/>\\n * New: Add Right Click context Menu to Mega Menu element<br \\/>\\n * Improved: Update Integration name Sendinblue to Brevo<br \\/>\\n * Improved: AI Options for Text<br \\/>\\n * Fixed: Carousel element is not displayed on mobile<br \\/>\\n * Fixed: Hover Animation on Icon with link<br \\/>\\n * Fixed: Save Trigger condition for popups do not save<br \\/>\\n * Fixed: Lottie element crash on non-lottie json upload<br \\/>\\n<br \\/>\\n<strong> 2.4.33 - 2023-12-19 <\\/strong><br \\/>\\n* Improved: Localisation for Login element<br \\/>\\n* Improved: Localisation for Playlist element<br \\/>\\n* Improved: Localisation for Gallery tags<br \\/>\\n* Improved: Localisation for Login element<br \\/>\\n* Improved: Localisation for Twitter element<br \\/>\\n* Improved: Localisation for Condition Triggers<br \\/>\\n* Improved: Localisation for Global Blocks<br \\/>\\n* Improved: Localisation for Timeline element<br \\/>\\n* Improved: Localisation for Integrations<br \\/>\\n* Improved: Localisation for Gallery element<br \\/>\\n* Fixed: Youtube Shorts link in Playlist<br \\/>\\n<br \\/>\\n<strong> 2.4.32 - 2023-12-07 <\\/strong><br \\/>\\nImproved: Reduce text generation time<br \\/>\\n<br \\/>\\n<strong> 2.4.31 - 2023-12-05 <\\/strong><br \\/>\\n* Fixed: Buttons width in preview<br \\/>\\n* Fixed: Overlay was visible under gradient color<br \\/>\\n<br \\/>\\n<strong> 2.4.30 - 2023-12-01 <\\/strong><br \\/>\\n* Fixed: Buttons width in preview<br \\/>\\n* Fixed: Overlay was visible under gradient color<br \\/>\\n<br \\/>\\n<strong> 2.4.29 - 2023-11-29 <\\/strong><br \\/>\\n* New: Close button for hamburger menu<br \\/>\\n* New: Transition speed for carousel<br \\/>\\n* New: AI option for Text<br \\/>\\n* New: Custom column width for table element<br \\/>\\n* Improved: Optimised code output for the Playlist element<br \\/>\\n* Improved: Optimised code output for the Timeline element<br \\/>\\n* Improved: Optimised code output for the Switcher element<br \\/>\\n* Fixed: Popup conditions dropdown too small<br \\/>\\n* Fixed: Row and Column items alignment when you set up a scroll effect<br \\/>\\n* Fixed: Carousel element is zoomed when placed in a block that has background video<br \\/>\\n<br \\/>\\n<strong> 2.4.26 - 2023-10-20 <\\/strong><br \\/>\\n* Fixed: Login element error when try to register<br \\/>\\n<br \\/>\\n<strong> 2.4.25 - 2023-10-11 <\\/strong><br \\/>\\n* Improved: Changed Popup close delay suffix to s instead of px<br \\/>\\n* Improved: Extended population option with custom attributes<br \\/>\\n* Improved: Posts columns number for mobile and tablet <br \\/>\\n* Fixed: Image gallery empty space when changing column number <br \\/>\\n* Fixed: Menu will not open on mobile or tablet inside Section Slider and Carousel <br \\/>\\n* Fixed: Toolbar Dynamic Content <br \\/>\\n* Fixed: Division by 0 on image resize<br \\/>\\n* Fixed: Images are not uploading when GoDaddy CDN or Jetpack CDN is configured<br \\/>\\n* Fixed: Gallery option cannot load images in thumbnails <br \\/>\\n* Fixed: Popup styles in preview <br \\/>\\n* Fixed: Mega Menu styles in preview <br \\/>\\n<br \\/>\\n<strong> 2.4.24 - 2023-07-12 <\\/strong><br \\/>\\n* New: Added vertical spacing option for the Timeline element<br \\/>\\n* New: Mask image for all containers: Headers, Footers<br \\/>\\n* Fixed: The color gets reset when a dynamic text is linked to its URL<br \\/>\\n* Fixed: Option Scroll page behind on popups was not working correctly<br \\/>\\n<br \\/>\\n<strong> 2.4.23 - 2023-06-26 <\\/strong><br \\/>\\n* Fixed: MegaMenu dnd<br \\/>\\n* Fixed: Scrollbar inside Popup<br \\/>\\n<br \\/>\\n<strong> 2.4.22 - 2023-06-22 <\\/strong><br \\/>\\n* Fixed: Section Header container<br \\/>\\n* Fixed: Section Footer container<br \\/>\\n<br \\/>\\n<strong> 2.4.21 - 2023-06-21 <\\/strong><br \\/>\\n* New: Image Gallery multi upload<br \\/>\\n* New: Added layout types and aspect ratio options to Image Gallery<br \\/>\\n* New: Added option to sort tags alphabetically in Gallery<br \\/>\\n* New: Added new order filter Relevance in Posts element<br \\/>\\n* New: Added Webhooks integration in the Form element<br \\/>\\n* Fixed: Popup Scroll when you disable Click outside to close pop-up<br \\/>\\n* Fixed: Posts Element query<br \\/>\\n* Fixed: Posts Element custom dynamic image<br \\/>\\n* Fixed: Sticky Menu on scrolling<br \\/>\\n* Fixed: Added Typography in mobile and tablet for Product Rating<br \\/>\\n<br \\/>\\n<strong> 2.4.20 - 2023-06-07 <\\/strong><br \\/>\\n* Fixed: Button style fill<br \\/>\\n* Fixed: IconBox with hover effect<br \\/>\\n<br \\/>\\n<strong> 2.4.18 - 2023-05-31 <\\/strong><br \\/>\\n* Improved: Menu option source <br \\/>\\n* Improved: Carousel toolbar when reordering items <br \\/>\\n* Improved: Added active color in mobile Menu element<br \\/>\\n* Improved: Twitter element <br \\/>\\n* Improved: Added .min suffix for all css and js minified files <br \\/>\\n* Improved: Removed demo.themefuse URLs in Brizy blocks when white label is activated<br \\/>\\n* Fixed: Dynamic content link <br \\/>\\n* Fixed: Dynamic content image in preview <br \\/>\\n* Fixed: Click on an image in the Cart element <br \\/>\\n* Fixed: Filter and Offset options for Posts element in mobile and tablet <br \\/>\\n* Fixed: White label is not working in multisite dashboard<br \\/>\\n<br \\/>\\n<strong> 2.4.17 - 2023-04-03 <\\/strong><br \\/>\\n* Fixed: Sticky Menu scroll <br \\/>\\n* Fixed: Mega Menu colors and typography <br \\/>\\n* Fixed: Popup removes hardcoded value 300px for width <br \\/>\\n* Fixed: Popup in preview <br \\/>\\n<br \\/>\\n<strong> 2.4.16 - 2023-03-10 <\\/strong><br \\/>\\n* Fixed: Screenshots<br \\/>\\n* Fixed: Section Background Image<br \\/>\\n<br \\/>\\n<strong> 2.4.15 - 2023-03-07 <\\/strong><br \\/>\\n* New: Preparations for future UI color themes<br \\/>\\n* Improved: Minified CSS in HTML <br \\/>\\n* Improved: Alphabetical sorting for Gallery tags<br \\/>\\n* Updated: Twitter library <br \\/>\\n* Fixed: Excerpt element is saving the font family from the post title<br \\/>\\n* Fixed: Typography styles for dynamic content in Text element <br \\/>\\n* Fixed: Capitalize dynamic content for Text element <br \\/>\\n* Fixed: Posts include or exclude query <br \\/>\\n* Fixed: Timeline horizontal style in preview<br \\/>\\n* Fixed: Losing global styling in Text element after refresh<br \\/>\\n* Fixed: Mobile hamburger menu items scroll bar <br \\/>\\n* Fixed: Blurred image in Carousel element<br \\/>\\n* Fixed: Posts pagination when Blocky theme is activated<br \\/>\\n* Fixed: Copy style from text to dynamic content <br \\/>\\n* Fixed: Copy error when menu is not selected in the Menu element<br \\/>\\n* Fixed: HubSpot connection: Invalid key<br \\/>\\n* Fixed: Compatibility with php 8.1 <br \\/>\\n<br \\/>\\n<strong> 2.4.15 - 2023-03-07 <\\/strong><br \\/>\\n* New: Preparations for future UI color themes<br \\/>\\n* Improved: Minified CSS in HTML <br \\/>\\n* Improved: Alphabetical sorting for Gallery tags<br \\/>\\n* Updated: Twitter library <br \\/>\\n* Fixed: Excerpt element is saving the font family from the post title<br \\/>\\n* Fixed: Typography styles for dynamic content in Text element <br \\/>\\n* Fixed: Capitalize dynamic content for Text element <br \\/>\\n* Fixed: Posts include or exclude query <br \\/>\\n* Fixed: Timeline horizontal style in preview<br \\/>\\n* Fixed: Losing global styling in Text element after refresh<br \\/>\\n* Fixed: Mobile hamburger menu items scroll bar <br \\/>\\n* Fixed: Blurred image in Carousel element<br \\/>\\n* Fixed: Posts pagination when Blocky theme is activated<br \\/>\\n* Fixed: Copy style from text to dynamic content <br \\/>\\n* Fixed: Copy error when menu is not selected in the Menu element<br \\/>\\n* Fixed: HubSpot connection: Invalid key<br \\/>\\n* Fixed: Compatibility with php 8.1 <br \\/>\\n<br \\/>\\n<strong> 2.4.14 - 2023-01-31 <\\/strong><br \\/>\\n* Fixed: Menu hamburger - items link on responsive mode<br \\/>\\n<br \\/>\\n<strong> 2.4.13 - 2022-12-26 <\\/strong><br \\/>\\n* New: Added stroke option for the Post Title element<br \\/>\\n* New: Added paddings for the Facebook element<br \\/>\\n* Improved: Shadow for Header and Footer elements <br \\/>\\n* Fixed: Text alignment in the hamburger Menu  <br \\/>\\n* Fixed: WOO Pages Order Tracking<br \\/>\\n* Fixed: Popup cookies problems with local-storage<br \\/>\\n* Fixed: Carousel preview - custom height in responsive mode<br \\/>\\n* Fixed: Timeline style<br \\/>\\n* Improved: StickTitle option on hamburger menu was deleted. Now new users always will have non sticky title <br \\/>\\n* Improved: Table responsive<br \\/>\\n* Fixed: The order of woo reviews<br \\/>\\n<br \\/>\\n<strong> 2.4.12 - 2022-11-17 <\\/strong><br \\/>\\n* New: Added width and corner options for the Facebook element <br \\/>\\n* New: Added padding options for Facebook, Lottie, Search, VideoPlayList<br \\/>\\n* New: Added corner option for the Menu element<br \\/>\\n* Fixed: Breadcrumbs typography <br \\/>\\n* Fixed: White space for text in Playlist element <br \\/>\\n* Fixed: Button color in the Facebook Comments element <br \\/>\\n* Fixed: Custom fonts in Post Info <br \\/>\\n<br \\/>\\n<strong> 2.4.11 - 2022-10-27 <\\/strong><br \\/>\\n* New: Calendly element<br \\/>\\n* Improved: Added badge status in global blocks conditions<br \\/>\\n* Fixed: Post Title<br \\/>\\n* Fixed: Woo Add To Cart breaks the template<br \\/>\\n* Fixed: Video doesn\'t stop when story slide is changed<br \\/>\\n* Fixed: Header translations<br \\/>\\n* Fixed: Align center not working in previews for Posts<br \\/>\\n<br \\/>\\n<strong> 2.4.10 - 2022-10-11 <\\/strong><br \\/>\\n* New: Added type Outset to Shadow option for Header and Footer blocks<br \\/>\\n* Fixed: Twitter height issue<br \\/>\\n* Fixed: Corner option for the close icon in a popup<br \\/>\\n* Fixed: Redirect after login incompatibility with WishList Member TM plugin<br \\/>\\n* Fixed: Table width issue<br \\/>\\n* Improved: Timeline element options<br \\/>\\n<br \\/>\\n<strong> 2.4.9 - 2022-10-03 <\\/strong><br \\/>\\n* Fixed: Content shift caused by Carousel on page load <br \\/>\\n<br \\/>\\n<strong> 2.4.8 - 2022-09-28 <\\/strong><br \\/>\\n* Fixed: Mailchimp error on creating new list <br \\/>\\n* Fixed: Link to File option was missing in toolbar on Button <br \\/>\\n* Fixed: Section Image crop issue in mobile view for Popups<br \\/>\\n* Fixed: Mobile 100vw width for Mega Menus<br \\/>\\n* Fixed: Misalignment for Menu arrows in mobile view<br \\/>\\n* Fixed: Switcher spacing option <br \\/>\\n* Fixed: Fatal error happening in is_plugin_active function<br \\/>\\n* Fixed: Review element is broken in product pages<br \\/>\\n* Fixed: Fatal error happening with Highend theme<br \\/>\\n<br \\/>\\n<strong> 2.4.7 - 2022-09-17 <\\/strong><br \\/>\\n* New: Text Image mask that works with post and page featured image<br \\/>\\n* Fixed: Pagination color on hover for Posts element<br \\/>\\n* Fixed: Post type names were not white label   <br \\/>\\n* Fixed: Global styles changes in post content<br \\/>\\n* Fixed: Switcher style two icon active color <br \\/>\\n* Fixed: Adding more than one popup in Text element on text links<br \\/>\\n* Fixed: Menu gradient background<br \\/>\\n* Fixed: Popup inside Posts Element <br \\/>\\n* Fixed: White label - Form apps contained the name Brizy <br \\/>\\n* Fixed: Posts context right click menu does not appear <br \\/>\\n* Fixed: Table syncing styles between all cells <br \\/>\\n* Fixed: Hamburger menu closing if is in Mega Menu <br \\/>\\n* Fixed: Menu tab overlaps menu items on scroll<br \\/>\\n* Fixed: Sticky options on Header element <br \\/>\\n* Fixed: Option go to slide in Story on Lottie elements<br \\/>\\n* Fixed: WooGallery does not change main image <br \\/>\\n* Fixed: Popup content vertical alignment<br \\/>\\n* Fixed: PostExcerpt in Woo Products <br \\/>\\n* Fixed: Header type fixed shaking on scroll <br \\/>\\n* Fixed: Hamburger menu drawer position in responsive <br \\/>\\n* Fixed: Edit static header <br \\/>\\n* Fixed: getting global popups <br \\/>\\n* Fixed: Mega Menu 100 vw width in responsive modes <br \\/>\\n* Fixed: Activate and Deactivate license when all license fields license are empty<br \\/>\\n* Fixed: Do not load updater hooks on multisite envs, show only in network admin the notice about license<br \\/>\\n* Improved: Current Query for customers in Posts element<br \\/>\\n* Improved: The size icons in the Timeline element   <br \\/>\\n* Improved: Post navigation links  <br \\/>\\n<br \\/>\\n<strong> 2.4.6 - 2022-08-30 <\\/strong><br \\/>\\n* Fixed: RichText with popups<br \\/>\\n<br \\/>\\n<strong> 2.4.5 - 2022-08-16 <\\/strong><br \\/>\\n* Fixed: RichText with popups<br \\/>\\n<br \\/>\\n<strong> 2.4.4 - 2022-08-09 <\\/strong><br \\/>\\n* New: Is activated command for wp-cli <br \\/>\\n* Fixed: Error handling for forms<br \\/>\\n* Fixed: Admin notice in dashboard<br \\/>\\n<br \\/>\\n<strong> 2.4.3 - 2022-07-20 <\\/strong><br \\/>\\n* New: New Templates<br \\/>\\n<br \\/>\\n<strong> 2.4.2 - 2022-06-15 <\\/strong><br \\/>\\n* Fixed:  Check immediately if there is a new version of the pro plugin after we got a new version of the free plugin<br \\/>\\n<br \\/>\\n<strong> 2.4.1 - 2022-06-02 <\\/strong><br \\/>\\n* New: Added background image and gradient to hamburger menu <br \\/>\\n* New: In excerpt dynamic content on Text, display only the filled in tags: p, H1, H2, etc<br \\/>\\n* Fixed: Leave page window when you did not change anything in the page<br \\/>\\n* Fixed: Feature image on hover did not inherit image from normal state for Menu, Header, Footer, Popup<br \\/>\\n* Fixed: Rounded corners on Images that are dynamic <br \\/>\\n* Fixed: Contact forms in Mega Menu <br \\/>\\n* Fixed: Some outline icons did not display in the editor<br \\/>\\n* Fixed: Dynamic text alignment <br \\/>\\n* Fixed: Sidebar for Timeline element in mobile view <br \\/>\\n* Fixed: Menu background color hover when you select a global color <br \\/>\\n<br \\/>\\n<strong> 2.4.0 - 2022-05-18 <\\/strong><br \\/>\\n* New: Added dynamic text population method in the Line element<br \\/>\\n* New: Added Icons for Switcher element<br \\/>\\n* New: Added Rating scale option 5 and 10<br \\/>\\n* New: Added scroll animation Effects funtionality<br \\/>\\n* New: Added reorder to Gallery element<br \\/>\\n* New: Added reorder to Timeline element<br \\/>\\n* New: Added reorder to Playlist element<br \\/>\\n* New: Added support for placeholders in email templates<br \\/>\\n* New: Added new Sale element for the WooCommerce builder<br \\/>\\n* Improved: WooCart variable products label styling<br \\/>\\n* Improved: Can change name for All tag in Posts element<br \\/>\\n* Improved: Removed max depth limit for the Menu element<br \\/>\\n* Improved: Multi tabs for the Facebook element<br \\/>\\n* Improved: WooCart styling improvements<br \\/>\\n* Improved: WooAtributes made title come from backend<br \\/>\\n* Fixed: Hover option for filters on Header and Footer elements<br \\/>\\n* Fixed: Fonts in the Menu element when you have Twenty Twenty-One WP theme activated<br \\/>\\n* Fixed: Lottie resize dots<br \\/>\\n* Fixed: White label default links for Twitter and Facebook<br \\/>\\n* Fixed: Mobile Menu text when empty<br \\/>\\n* Fixed: Added horizontal scroll for Table element in responsive views<br \\/>\\n* Fixed: Hide additional info about the product if there is no data<br \\/>\\n* Fixed: Editor product gallery<br \\/>\\n* Fixed: Added all tags in post tag loop<br \\/>\\n* Fixed: Compiler returns empty array on page styles and scripts<br \\/>\\n<br \\/>\\n<strong> 2.3.30 - 2022-05-05 <\\/strong><br \\/>\\n* Fixed: Hover on menu dropdown<br \\/>\\n* Fixed: Header and Footer dividers on Firefox<br \\/>\\n<br \\/>\\n<strong> 2.3.29 - 2022-05-03 <\\/strong><br \\/>\\n* Fixed: Hover transition on the play icon in the Playlist element <br \\/>\\n* Fixed: Popups screenshots <br \\/>\\n<br \\/>\\n<strong> 2.3.28 - 2022-04-21 <\\/strong><br \\/>\\n* Fixed: Headers Dividers<br \\/>\\n* Fixed: Footer Dividers<br \\/>\\n<br \\/>\\n<strong> 2.3.27 - 2022-04-20 <\\/strong><br \\/>\\n* New: Text link to specific story slide <br \\/>\\n* Improved: Hover Transition for ImageGallery <br \\/>\\n* Improved: Hover Transition for Comments, WOOAddToCart, WOORating<br \\/>\\n* Improved: Posts in Archive page <br \\/>\\n* Improved: RichText with dynamic content <br \\/>\\n* Improved: Global color palette performance <br \\/>\\n* Improved: Global typography performance <br \\/>\\n* Improved: Performance when you remove blocks from the sidebar  <br \\/>\\n* Fixed: Active color for Image Gallery<br \\/>\\n* Fixed: Colors and transition for the Video Playlist element<br \\/>\\n* Fixed: Video with border radius in Safari <br \\/>\\n* Fixed: Menu placeholder issue for desktop<br \\/>\\n* Fixed: Empty license key submitted error<br \\/>\\n* Fixed: Warning: This plugin has not been tested with your current version of WordPress <br \\/>\\n<br \\/>\\n<strong> 2.3.26 - 2022-03-10 <\\/strong><br \\/>\\n* New: Show progress on story when autoplay is on<br \\/>\\n* Updated: Removed loop from story <br \\/>\\n* Fixed: Disabled Lottie link for responsive <br \\/>\\n* Fixed: Background image for Header blocks with Sticky option on<br \\/>\\n* Fixed: Posts include and exclude select <br \\/>\\n<br \\/>\\n<strong> 2.3.25 - 2022-03-02 <\\/strong><br \\/>\\n* New: Add links to any slide in Stories <br \\/>\\n* New: Auto slide option for Stories<br \\/>\\n* Fixed: Prefetching fonts in white label Agency and Reseller plans<br \\/>\\n* Fixed: Reset password<br \\/>\\n* Fixed: Added hover state on Back to Login and Register links in the Login element<br \\/>\\n* Fixed: Loop for VideoPlaylist element<br \\/>\\n<br \\/>\\n<strong> 2.3.24 - 2022-02-09 <\\/strong><br \\/>\\n* New: Stories - added Lottie render option<br \\/>\\n* Fixed: Timeline element - element spacing bug on mobile<br \\/>\\n* Fixed: Timeline element - line and border display issues<br \\/>\\n* Fixed: Buttons and Icons - custom class, ID population<br \\/>\\n* Fixed: Playlist element - cover image not working<br \\/>\\n<br \\/>\\n<strong> 2.3.23 - 2022-02-07 <\\/strong><br \\/>\\n* Fixed: Restore blog on multisite environments<br \\/>\\n* New: Added User registration URL placeholder<br \\/>\\n<br \\/>\\n<strong> 2.3.22 - 2022-02-03 <\\/strong><br \\/>\\n* Fixed: Saves scripts relative to the plugin main folder<br \\/>\\n* Fixed: Get license key in the multisite environments<br \\/>\\n<br \\/>\\n<strong> 2.3.21 - 2022-01-17 <\\/strong><br \\/>\\n* Fixed: Color and align for text element<br \\/>\\n<br \\/>\\n<strong> 2.3.20 - 2022-01-14 <\\/strong><br \\/>\\n* Fixed:  Load One Site License admin notice only on multisite<br \\/>\\n<br \\/>\\n<strong> 2.3.19 - 2022-01-10 <\\/strong><br \\/>\\n* New: Added spacing for text in timeline<br \\/>\\n* Fixed: Do not opened PromptConditions when make it global on a simple page<br \\/>\\n* Fixed: Image toolbar with dynamic content<br \\/>\\n* Fixed: Sanitize the white label prefix<br \\/>\\n* Fixed:  WPML Menu switcher is missing from Brizy pages<br \\/>\\n<br \\/>\\n<strong> 2.3.18 - 2021-12-20 <\\/strong><br \\/>\\n* New: Archive for title and excerpt<br \\/>\\n* Fixed: Text gradient in safari<br \\/>\\n<br \\/>\\n<strong> 2.3.17 - 2021-12-13 <\\/strong><br \\/>\\n* Fixed: MegaMenu Drag and Drop <br \\/>\\n* Fixed: Popup v1 alignment <br \\/>\\n* Fixed: Carousel dots style on 2021 theme<br \\/>\\n* Fixed: The canonical URL for brizy pagination<br \\/>\\n* Fixed: Use original URL of the image when featured image is used as background<br \\/>\\n* Updated: Exclude WP navigation from simple page<br \\/>\\n* Improved: TranslatePress compatibility for the Menu element <br \\/>\\n<br \\/>\\n<strong> 2.3.16 - 2021-11-30 <\\/strong><br \\/>\\n* New: 13 Popups design<br \\/>\\n* New: 8 Layout packs and Landing pages<br \\/>\\n* Improved: Logout URL with redirect<br \\/>\\n* New: Added custom context for the Post Title dynamic element<br \\/>\\n* Fixed: Publish option when you create internal Popups <br \\/>\\n* Fixed: Image dynamic content<br \\/>\\n* Fixed: Active state for Switcher element<br \\/>\\n* Fixed: Login and Logout redirect <br \\/>\\n* Fixed: Saved blocks in white label instance<br \\/>\\n* Fixed: Sale and price color for WooPrice<br \\/>\\n* Fixed: Remove undefined index placeholder<br \\/>\\n* Fixed: Display a notification when the free version is not activated<br \\/>\\n<br \\/>\\n<br \\/>\\n<strong> 2.3.15 - 2021-11-09 <\\/strong><br \\/>\\n* Improved: Changed the default Twitter handle when you added it to the page <br \\/>\\n* Improved: Changed icon in toolbar for Navigation <br \\/>\\n* Fixed: Regex for some placeholders in Dynamic content <br \\/>\\n* Fixed: Carousel sidebar for mobile and tablet <br \\/>\\n* Fixed: Gallery sidebar for responsive <br \\/>\\n* Fixed: The lines in the timeline element now connect correctly on mobile <br \\/>\\n* Fixed: Changed default paragraph text value for Carousel <br \\/>\\n* Fixed: Alt attribute for logo on dynamic content<br \\/>\\n* Fixed: Show and Hide posts title on navigation post on single post<br \\/>\\n<br \\/>\\n<strong> 2.3.14 - 2021-10-18 <\\/strong><br \\/>\\n* Improved: Show display conditions popup on setting a global Block<br \\/>\\n* Improved: Active tags hover behavior for Posts element <br \\/>\\n* Improved: White label options, removed Brizy from custom font upload <br \\/>\\n* New: 9 design layout packs<br \\/>\\n* New: Added categories in Posts element<br \\/>\\n* Fixed: Story text and images flickering on different devices<br \\/>\\n* Fixed: Some PRO layouts are displaying in the FREE category <br \\/>\\n* Fixed: File upload on Lottie element<br \\/>\\n* Fixed: Nested Switcher elements <br \\/>\\n* Fixed: Styles issues for nested Switcher elements <br \\/>\\n* Fixed: Menu element font broken by Twenty Twenty-One theme<br \\/>\\n* Fixed: UI issues when Dynamic content is larger in toolbar<br \\/>\\n* Fixed: Mega Menu hover transition<br \\/>\\n* Fixed: Content alignment when you activate membership options in Footer blocks<br \\/>\\n* Fixed: Dynamic content value in Countdown element<br \\/>\\n* Fixed: Close option hover on Image Gallery lightbox<br \\/>\\n* Fixed: Post loop setup global post on every iteration<br \\/>\\n* Fixed: Added back the post tags placeholder<br \\/>\\n* Fixed: Product short description does not work in the products element<br \\/>\\n* Fixed: Woocommerce Product Bundle plugin failed to open stream<br \\/>\\n* Fixed: Renamed brizy_dc_post_tags to brizy_dc_post_terms and changed it according to its name<br \\/>\\n<br \\/>\\n<strong> 2.3.13 - 2021-09-16 <\\/strong><br \\/>\\n* Fixed: Shortcodes Element in popup <br \\/>\\n* Fixed: Mega Menu preview position<br \\/>\\n* Fixed: Options toolbar position inside Sticky Header<br \\/>\\n* Improved: Mega Menu passive events on touch <br \\/>\\n* Improved: Page loading speed on preview when you have custom fonts on your page<br \\/>\\n* Fixed: False positives malware File Found notifications <br \\/>\\n* Fixed: Brizy Yoast pagination incompatibility<br \\/>\\n* Fixed: Post Loop, Pagination, Tags refactoring <br \\/>\\n* Fixed: Apply do_shortcode in the post loop on every item <br \\/>\\n<br \\/>\\n<strong> 2.3.12 - 2021-09-06 <\\/strong><br \\/>\\n* New: Added the Lottie element in Stories <br \\/>\\n* Fixed: Text links in Stories <br \\/>\\n* Fixed: Placeholder options values for the Post element<br \\/>\\n<br \\/>\\n<strong> 2.3.11 - 2021-08-26 <\\/strong><br \\/>\\n* Fixed: Editor for Internal Popup<br \\/>\\n<br \\/>\\n<strong> 2.3.10 - 2021-08-24 <\\/strong><br \\/>\\n* Fixed: Global popup bug<br \\/>\\n* Fixed: Icon link in Story<br \\/>\\n* Fixed: Mega Menu secondary level bug<br \\/>\\n* Fixed: Hamburger Menu on mobile bug<br \\/>\\n* Fixed: Mobile menu bug when using Astra theme<br \\/>\\n<br \\/>\\n<strong> 2.3.8 - 2021-08-17 <\\/strong><br \\/>\\n* Improved: White Label, removed keyword Brizy from two places in the code<br \\/>\\n* Fixed: Global popup<br \\/>\\n* Fixed: Cache assets on Brizy websites<br \\/>\\n* Fixed: Fatal error on compile templates for single product<br \\/>\\n<br \\/>\\n<strong> 2.3.7 - 2021-08-06 <\\/strong><br \\/>\\n* Fixed: Assets on preview<br \\/>\\n* Fixed: Toolset and metabox custom fields<br \\/>\\n<br \\/>\\n<strong> 2.3.6 - 2021-08-05 <\\/strong><br \\/>\\n* Fixed: Composer versions<br \\/>\\n<br \\/>\\n<strong> 2.3.5 - 2021-08-05 <\\/strong><br \\/>\\n* Fixed: Broken WooCommerce Products template in preview<br \\/>\\n<br \\/>\\n<strong> 2.3.4 - 2021-08-04 <\\/strong><br \\/>\\n* New: Added Free stories category in sidebar when you add stories<br \\/>\\n* New: Added 10 new Layout Packs (Templates)<br \\/>\\n* Improved: Renamed a couple of Story templates<br \\/>\\n* Improved: Stories templates global styling, previews, thumbs, etc<br \\/>\\n<br \\/>\\n<strong> 2.3.3 - 2021-07-26 <\\/strong><br \\/>\\n* New: Added icon position option for Menu item<br \\/>\\n* Improved: Removed submenu lvl limit for the Menu element<br \\/>\\n* Improved: White label for blocks and layouts syncing popup<br \\/>\\n* Improved: White label for the default global style name<br \\/>\\n* Fixed: Adapt Pods placeholder to the latest version of dynamic content<br \\/>\\n* Fixed: Filters for dynamic images<br \\/>\\n* Fixed: Submenu styles for the Menu element<br \\/>\\n<br \\/>\\n<br \\/>\\n<strong> 2.3.2 - 2021-07-23 <\\/strong><br \\/>\\n* Fixed: Comments placeholder<br \\/>\\n* Fixed: Carousel with dynamic content<br \\/>\\n* Fixed: Empty items in Posts component<br \\/>\\n<br \\/>\\n<strong> 2.3.1 - 2021-07-20 <\\/strong><br \\/>\\n* Fixed: Pods, Metabox and Toolset placeholder providers<br \\/>\\n<br \\/>\\n<strong> 2.3.0 - 2021-07-19 <\\/strong><br \\/>\\n* New: Dynamic Content in editor mode<br \\/>\\n* New: Added pagination in Archive element<br \\/>\\n* New: Added reorder option in Carousel<br \\/>\\n* Improved: Moved password link to type links dynamic content<br \\/>\\n* Improved: Posts include, exclude filters<br \\/>\\n* Improved: Login element<br \\/>\\n* Fixed: Action priority<br \\/>\\n* Fixed: Changed the behavior for offset attribute in Posts element<br \\/>\\n<br \\/>\\n<strong> 2.2.13 - 2021-07-13 <\\/strong><br \\/>\\n* Fixed: empty breadcrumbs when there are no conditions in the template<br \\/>\\n* Fixed: translate membership string View as role<br \\/>\\n* Fixed: show role change only for allowed users<br \\/>\\n<br \\/>\\n<strong> 2.2.12 - 2021-07-07 <\\/strong><br \\/>\\n* Fixed: Menu transparency bug and icon size spacing unit<br \\/>\\n* Fixed: Login submit button normal color<br \\/>\\n* Fixed: Custom audio not close automatically<br \\/>\\n* Fixed: Cart element display total with calculated taxes<br \\/>\\n* Fixed: Cart element do not ignore the settings of WooCommerce currency position<br \\/>\\n* Fixed: Login Element - Wrong Password Redirects to standard WP login page<br \\/>\\n* Fixed: Empty breadcrumbs when the template has the condition for search archive<br \\/>\\n<br \\/>\\n<strong> 2.2.11 - 2021-05-18 <\\/strong><br \\/>\\n* Fixed: Mega menu scrollable<br \\/>\\n<br \\/>\\n<strong> 2.2.10 - 2021-05-13 <\\/strong><br \\/>\\n* Fixed: Mega menu in small viewport<br \\/>\\n* Fixed: Lightbox blurred image<br \\/>\\n<br \\/>\\n<strong> 2.2.9 - 2021-04-12 <\\/strong><br \\/>\\n* Fixed: Burger Menu scroll with anchor<br \\/>\\n* Fixed: Global popups in global Block<br \\/>\\n<br \\/>\\n<strong> 2.2.8 - 2021-04-08 <\\/strong><br \\/>\\n* New: Added horizontal align for Table aside and header<br \\/>\\n* New:  Placeholder for active menu item<br \\/>\\n* New: Calculate the excerpt for posts edited with Brizy by excluding the header and footer<br \\/>\\n* Fixed: Show plugins when the white label is enabled<br \\/>\\n* Fixed: Post content placeholder for posts edited with Gutenberg<br \\/>\\n* Fixed: Always render comments to HTML5<br \\/>\\n* Fixed: Align left for Image Gallery element<br \\/>\\n* Fixed: Hovers for custom Video element<br \\/>\\n* Fixed: Typography for Menu element<br \\/>\\n* Fixed: Added href for title in Menu element<br \\/>\\n<br \\/>\\n<strong> 2.2.7 - 2021-03-23 <\\/strong><br \\/>\\n* New:  Placeholder for menu item active<br \\/>\\n* Fixed: Post content placeholder for posts edited with Gutenberg<br \\/>\\n* Fixed: Always render comments to HTML5<br \\/>\\n<br \\/>\\n<strong> 2.2.5 - 2021-02-16 <\\/strong><br \\/>\\n* Fixed: Global Popups CSS<br \\/>\\n<br \\/>\\n<strong> 2.2.4 - 2021-02-04 <\\/strong><br \\/>\\n* Fixed: Excerpt component<br \\/>\\n<br \\/>\\n<strong> 2.2.3 - 2021-02-02 <\\/strong><br \\/>\\n* Improved: Code refactoring and optimization<br \\/>\\n* Fixed: Popups on links within RichText element<br \\/>\\n* Fixed: Broken URL for uploaded fonts<br \\/>\\n<br \\/>\\n<strong> 2.2.2 - 2021-01-14 <\\/strong><br \\/>\\n* Fixed: Global Popups<br \\/>\\n<br \\/>\\n<strong> 2.2.1 - 2021-01-12 <\\/strong><br \\/>\\n* New: Added margin option in Footer<br \\/>\\n* Fixed: Lottie in section<br \\/>\\n* Fixed: Post content line breaks with classic editor<br \\/>\\n* Fixed: License form for other languages<br \\/>\\n* Fixed: Pagination refactoring<br \\/>\\n* Fixed: Posts loop no products with polylang<br \\/>\\n* Fixed: calculate the excerpt a bit different for posts edited with Brizy<br \\/>\\n<br \\/>\\n<br \\/>\\n<strong> 2.2.0 - 2020-12-03 <\\/strong><br \\/>\\n* New: 14 Pre-made Layouts and Landing pages<br \\/>\\n<br \\/>\\n<strong> 2.1.3 - 2020-11-13 <\\/strong><br \\/>\\n* Fixed: Show editor elements on Product page<br \\/>\\n* Fixed: Show cart on Woocommerce pages<br \\/>\\n<br \\/>\\n<strong> 2.1.2 - 2020-11-12 <\\/strong><br \\/>\\n* Fixed: PostContent in template<br \\/>\\n<br \\/>\\n<strong> 2.1.1 - 2020-11-10 <\\/strong><br \\/>\\n* Improved: WooRating better color defaults<br \\/>\\n* Improved: WooCart vertical align option also appears when height is Auto<br \\/>\\n* Fixed: MegaMenu offset and width options<br \\/>\\n<br \\/>\\n<strong> 2.1.0 - 2020-11-05 <\\/strong><br \\/>\\n* New: Multiple WooCommerce elements<br \\/>\\n* New: Added shop page option in template rules<br \\/>\\n<br \\/>\\n<br \\/>\\n<strong> 2.0.9 - 2020-11-03 <\\/strong><br \\/>\\n* Fixed: Featured image upload<br \\/>\\n<br \\/>\\n<strong> 2.0.8 - 2020-10-28 <\\/strong><br \\/>\\n* Fixed: MenuPro dropdowns toolbar was missing typography and color options<br \\/>\\n* Fixed: MenuPro was escaping HTML Entities<br \\/>\\n* Fixed: Videos inside Switcher element were continuing to play when switching between tabs<br \\/>\\n* Fixed: Media upload on white label settings page<br \\/>\\n<br \\/>\\n<strong> 2.0.7 - 2020-10-13 <\\/strong><br \\/>\\n* Improved: MegaMenu alignment<br \\/>\\n* Improved: Integration SDK<br \\/>\\n* Fixed: Posts element columns were sometimes of different heights<br \\/>\\n<br \\/>\\n<strong> 2.0.6 - 2020-09-17 <\\/strong><br \\/>\\n* Fixed: Show License page if white label is activated and the white label menu is available<br \\/>\\n<br \\/>\\n<strong> 2.0.5 - 2020-09-11 <\\/strong><br \\/>\\n* Improvement: Playlist element<br \\/>\\n* Fixed: RichText dynamic content wasn\'t editable in posts<br \\/>\\n* Fixed: Custom font with white label<br \\/>\\n* Fixed: Call do_shortcode on every iteration in post loop<br \\/>\\n* Fixed: Breadcrumbs styles<br \\/>\\n* Fixed: Remove a warning in white label<br \\/>\\n* Fixed: Added white label flag in config<br \\/>\\n* Fixed: Mark all pages to be re-compiled if the white label prefix is changed<br \\/>\\n<br \\/>\\n<strong> 2.0.4 - 2020-08-19 <\\/strong><br \\/>\\n* Fixed: The License page for multi-sites<br \\/>\\n<br \\/>\\n<strong> 2.0.3 - 2020-08-18 <\\/strong><br \\/>\\n* Fixed: Take the license data from main site if the multi-site is enabled<br \\/>\\n* Fixed: License page<br \\/>\\n* Fixed: apply the_content filter on component post content<br \\/>\\n<br \\/>\\n<strong> 2.0.2 - 2020-08-06 <\\/strong><br \\/>\\n* Fixed: Table width on Safari<br \\/>\\n* Fixed: Lightbox in Carousel Element<br \\/>\\n* Fixed: Carousel refresh when changed tabs on mobile<br \\/>\\n* Fixed: Archive component<br \\/>\\n<br \\/>\\n<strong> 2.0.1 - 2020-08-05 <\\/strong><br \\/>\\n* Fixed: Archive component<br \\/>\\n<br \\/>\\n<strong> 2.0.1 - 2020-07-31 <\\/strong><br \\/>\\n* Fixed: Archive component<br \\/>\\n<br \\/>\\n<strong> 2.0 - 2020-07-30 <\\/strong><br \\/>\\n* New: Global blocks conditions<br \\/>\\n* New: Mega Menu builder<br \\/>\\n* New: Table element<br \\/>\\n* New: Lottie element<br \\/>\\n* New: Login element<br \\/>\\n* New: Post Navigation element<br \\/>\\n* Improved: Added active color option for the Playlist element<br \\/>\\n* Improved: Added vertical orientation for the Menu Element<br \\/>\\n* Improved: Menu padding option for mobile menu items<br \\/>\\n* Improved: Menu styling options for active menu item<br \\/>\\n* Improved: Load plugin<br \\/>\\n* Improved: Styles are added automatically when importing a Layout<br \\/>\\n* Improved: Custom Email template is now edited with a code editor<br \\/>\\n* Improved: Dynamic content was partly re written and extended<br \\/>\\n* Improved: Added option to change the link prefix ?brizy-edit (White Label)<br \\/>\\n* Improved: Removed any content related to Brizy from the pre made blocks and popups (White Label)<br \\/>\\n* Improved: Replaced block thumbnails that contained Brizy related content (White Label)<br \\/>\\n* Improved: Added active state colour for Accordion, Switch, Tabs, Menu, Playlist and Gallery elements<br \\/>\\n* Improved: Moved submenu license in a new tab in the sub-menu settings<br \\/>\\n* Improved: Added brizy_form_email_subject filter<br \\/>\\n* Improved: Added support for placeholders in email subject<br \\/>\\n* Improved: Styles are added automatically when importing a Layout<br \\/>\\n* Improved: Custom Email template can now be edited with a code editor<br \\/>\\n* Fixed: Posts element masonry layout jumping<br \\/>\\n* Fixed: MMenu z-index for shape<br \\/>\\n* Fixed: Gallery inside container elements (Tabs, Accordion, Switcher, etc.)<br \\/>\\n* Fixed: Restricted access for non licensed users<br \\/>\\n* Fixed: Carousel incorrect width<br \\/>\\n* Fixed: PostContent bold and italic styles<br \\/>\\n* Fixed: Encryption values for SMTP integration<br \\/>\\n* Fixed: Comments skin 1 divider width<br \\/>\\n* Fixed: Post pagination colour and spacing<br \\/>\\n* Fixed: Search on multisite installations<br \\/>\\n* Fixed: Search button corner option<br \\/>\\n* Fixed: Carousel inside container elements (Tabs, Accordion, Switcher, etc.)<br \\/>\\n* Fixed: White labeling in query string<br \\/>\\n* Fixed: Gallery inside container elements (Tabs, Accordion, Switcher, etc.)<br \\/>\\n<br \\/>\\n<strong> 0.0.41 - 2020-04-25 <\\/strong><br \\/>\\n* New: Minor refactoring needed to integrate with new icon system<br \\/>\\n<br \\/>\\n<strong> 0.0.40 - 2020-04-14 <\\/strong><br \\/>\\n* Fixed: Mobile menu now closes when clicking on an anchor link from it<br \\/>\\n* Fixed: Search Element not appearing in the elements list<br \\/>\\n<br \\/>\\n<strong> 0.0.39 - 2020-03-27 <\\/strong><br \\/>\\n* Fixed: Menu options on mobile<br \\/>\\n<br \\/>\\n<strong> 0.0.38 - 2020-03-25 <\\/strong><br \\/>\\n* Fixed: Check for Brizy Free version<br \\/>\\n<br \\/>\\n<strong> 0.0.37 - 2020-03-25 <\\/strong><br \\/>\\n* New: Comments element (Discuss, WP Comments)<br \\/>\\n* New: Timeline element<br \\/>\\n* New: Audio element (Custom audio)<br \\/>\\n* New: Switcher element<br \\/>\\n* New: Star Rating element<br \\/>\\n* New: Video Player element<br \\/>\\n* New: Search element<br \\/>\\n* New: Twitter element<br \\/>\\n* Improved: Added custom video upload for the Video element<br \\/>\\n* Improved: Added tags for the Gallery element<br \\/>\\n* Fixed: Post field shortcode to use a sample post for templates<br \\/>\\n* Fixed: Refactoring the post type field in editor config<br \\/>\\n* Fixed: Removed header \\u2018To\\u2019 from email headers<br \\/>\\n* Fixed: Force SMTP encryption by default until there will be a option to change it in configuration form<br \\/>\\n* Fixed: Disabled news dasbaboard widget not for instances with white label<br \\/>\\n* Fixed: File type field<br \\/>\\n* Fixed: Disabled news dashboard widget for instances where white label is active<br \\/>\\n* Fixed: Force SMTP encryption by default until there will be a option to change it in configuration form<br \\/>\\n* Fixed: Updated forms SDK<br \\/>\\n* Fixed: Menu element<br \\/>\\n* Fixed: Fixed post loop pagination for all categories<br \\/>\\n* Fixed: Project save when activate\\/disable License<br \\/>\\n<br \\/>\\n<strong> 0.0.36 - 2020-03-12 <\\/strong><br \\/>\\n* Fixed: Updated forms sdk<br \\/>\\n* Fixed: Menu element<br \\/>\\n<br \\/>\\n<strong> 0.0.35 - 2020-03-10 <\\/strong><br \\/>\\n* Fixed: enqueue scripts preview.pro.js<br \\/>\\n<br \\/>\\n<strong> 0.0.34 - 2020-01-24 <\\/strong><br \\/>\\n* New: Added new Layouts to Pro<br \\/>\\n<br \\/>\\n<strong> 0.0.33 - 2020-01-23 <\\/strong><br \\/>\\n* Fixed: GetResponse form integration<br \\/>\\n<br \\/>\\n<strong> 0.0.32 - 2020-01-16 <\\/strong><br \\/>\\n* New: Forms added Gmail SMTP, Custom SMTP<br \\/>\\n* Fixed: Front page pagination for posts component<br \\/>\\n* Fixed: Featured images placeholder to work with svg images<br \\/>\\n<br \\/>\\n<strong> 0.0.31 - 2019-11-13 <\\/strong><br \\/>\\n* New: Popups<br \\/>\\n<br \\/>\\n<strong> 0.0.30 - 2019-10-08 <\\/strong><br \\/>\\n* New: Added Kit 2<br \\/>\\n<br \\/>\\n<strong> 0.0.29 - 2019-10-01 <\\/strong><br \\/>\\n* New: Added Breadcrumbs element (WP only)<br \\/>\\n* New: Added File tab to Link option enabling linking to custom uploaded files<br \\/>\\n* New: Hover background filters for Section, Footer, Header, Row, Column<br \\/>\\n* Fixed: Translation texts<br \\/>\\n<br \\/>\\n<strong> 0.0.28 - 2019-09-18 <\\/strong><br \\/>\\n* New: Custom fonts<br \\/>\\n* Improved: Reduced JavaScript file size<br \\/>\\n* Fixed: Background images not working with dynamic content<br \\/>\\n<br \\/>\\n<strong> 0.0.27 - 2019-05-29 <\\/strong><br \\/>\\n* Fixed: Post loop pagination<br \\/>\\n* Fixed: Deactivate license form<br \\/>\\n<br \\/>\\n<strong> 0.0.26 - 2019-05-23 <\\/strong><br \\/>\\n* Improved: Cleaned up the Popup blank block<br \\/>\\n* Fixed: Videos in the page changing src after a popup is closed<br \\/>\\n* Fixed: Popups not working properly in Global blocks, after duplicating and in other situations<br \\/>\\n<br \\/>\\n<strong> 0.0.25 - 2019-04-23 <\\/strong><br \\/>\\n* Fixed: Redirect URL after license activation\\/deactivation in networks<br \\/>\\n<br \\/>\\n<strong> 0.0.24 - 2019-04-18 <\\/strong><br \\/>\\n* New: Hover transition option for Facebook elements<br \\/>\\n* New: Map Address option supports dynamic content<br \\/>\\n* New: Video Link option supports dynamic content<br \\/>\\n* Improved: Link to popup option available in tablet and mobile<br \\/>\\n* Fixed: Carousel in rtl mode<br \\/>\\n* Fixed: Posts order by option<br \\/>\\n* Fixed: License menu<br \\/>\\n<br \\/>\\n<strong> 0.0.23 - 2019-04-12 <\\/strong><br \\/>\\n* Fixed: License form<br \\/>\\n<br \\/>\\n<strong> 0.0.22 - 2019-04-09 <\\/strong><br \\/>\\n* Fixed: License activation bug<br \\/>\\n<br \\/>\\n<strong> 0.0.21 - 2019-04-09 <\\/strong><br \\/>\\n* Fixed: Fixed white-label bug for new installs<br \\/>\\n<br \\/>\\n<strong> 0.0.20 - 2019-04-09 <\\/strong><br \\/>\\n* New: White label<br \\/>\\n* Fixed: Fixed post-loop notice warning<br \\/>\\n<br \\/>\\n= 0.0.19 - 2019-03-21<br \\/>\\n* New: Added 17 layouts<br \\/>\\n* Fixed: The default post loop attributes<br \\/>\\n<br \\/>\\n<br \\/>\\n<strong> 0.0.18 - 2019-03-11 <\\/strong><br \\/>\\n* New: Custom CSS option<br \\/>\\n* New: Facebook Button element<br \\/>\\n* New: Facebook Comments element<br \\/>\\n* New: Facebook Page element<br \\/>\\n* New: Facebook Embed element<br \\/>\\n* Fixed: Return login name if the first name and last name are not set.<br \\/>\\n* Fixed: Fixed updater<br \\/>\\n* Fixed: Small tweaks in getLicenseActivationData<br \\/>\\n* Fixed: Removed some \'code optimizations\'<br \\/>\\n* Fixed: Fixed compile parameters<br \\/>\\n* Fixed: Return no image url if there is the height attribute for attachment<br \\/>\\n* Fixed: moved the filter for license data config<br \\/>\\n* Fixed: Fixed the license deactivation action<br \\/>\\n<br \\/>\\n<strong> 0.0.17 - 2019-01-25 <\\/strong><br \\/>\\n* New: Added form integrations with 12 services<br \\/>\\n<br \\/>\\n<strong> 0.0.16 - 2019-01-09 <\\/strong><br \\/>\\n* New: Dynamic content placeholders for Metabox<br \\/>\\n<br \\/>\\n<strong> 0.0.15 - 2018-12-19 <\\/strong><br \\/>\\n* Improved: Menu. Not found message<br \\/>\\n* Fixed: Menu. Hide submenu items when page is loading<br \\/>\\n* Fixed: Carousel. Zooming before slider initialization<br \\/>\\n* Fixed: Carousel. Showing submenu items in Astra theme<br \\/>\\n* Fixed: Popup. z-index conflicts with header blocks<br \\/>\\n* Fixed: Activate\\/Dezactivate license callbacks<br \\/>\\n<br \\/>\\n<strong> 0.0.14 - 2018-12-06 <\\/strong><br \\/>\\n* New: Added new Header blocks<br \\/>\\n* New: Added new Footer blocks<br \\/>\\n* New: Added Menu element<br \\/>\\n* New: RichText can now set colors for different tags when using Post Content dynamic content<br \\/>\\n* Fixed: Fixed autloader path<br \\/>\\n* Fixed: Pagination refactoring<br \\/>\\n* Fixed: ACF dynamic content fixes<br \\/>\\n* Fixed: Limited access option in role manager<br \\/>\\n<br \\/>\\n<strong> 0.0.13 - 2018-11-23 <\\/strong><br \\/>\\n* New: Added Brizy PRO licensing system<br \\/>\\n* New: Added Brizy PRO dashboard update system<br \\/>\\n* New: Added possibility to use block dynamic content in RichText<br \\/>\\n* Fixed: Multiple Galleries in Tabs and Accordion<br \\/>\\n* Fixed: Updated license form layout<br \\/>\\n* Fixed: Dynamic content placeholders for pods<br \\/>\\n* Fixed: Post loop pagination<br \\/>\\n* Fixed: The content for post loops<br \\/>\\n* Fixed: Added placeholder display type<br \\/>\\n<br \\/>\\n<strong> 0.0.12 - 2018-11-08 <\\/strong><br \\/>\\n* New: Added more Popup and Blog blocks<br \\/>\\n* Fixed: Dynamic content post loop<br \\/>\\n<br \\/>\\n<strong> 0.0.11 - 2018-10-03 <\\/strong><br \\/>\\n* New: Added first batch of predesigned pages (53) and styles (10)<br \\/>\\n* New: Renamed main plugin file<br \\/>\\n* Improved: Optimised svg shapes<br \\/>\\n* Fixed: Bugs in dynamic content module<br \\/>\\n* Fixed: Class autoloader fix<br \\/>\\n<br \\/>\\n<strong> 0.0.10 - 2018-10-03 <\\/strong><br \\/>\\n* New: Added Pods support<br \\/>\\n* New: Added Toolset support<br \\/>\\n* Fixed:  Taxonomy return data type<br \\/>\\n<br \\/>\\n<strong> 0.0.9 - 2018-10-01 <\\/strong><br \\/>\\n* New: Added dynamic content option for Section background image<br \\/>\\n* New: Added dynamic content option to Carousel<br \\/>\\n* New: Added filter options to Posts<br \\/>\\n* New: Added Archives element (available in templates only)<br \\/>\\n* Improved: Added order attr. for post loop place holder<br \\/>\\n* Improved: Format the content from content placeholder<br \\/>\\n* Improved: Changed the post loop to be able to work with posts from main loop.<br \\/>\\n* Fixed: Animations in Popup<br \\/>\\n* Fixed: Carousel image quality<br \\/>\\n* Fixed: Added loop pagination<br \\/>\\n* Fixed: Added filters to template posts<br \\/>\\n* Fixed: Calculate the container width and height from image size<br \\/>\\n* Fixed: Allow any char in placeholder name<br \\/>\\n* Fixed: Fixed the crop function to accept 0 in container width\\/height<br \\/>\\n* Fixed: Calculate the container width and height from image size<br \\/>\\n* Fixed: Fixed brizy min version waring<br \\/>\\n<br \\/>\\n<strong> 0.0.8 - 2018-09-22 <\\/strong><br \\/>\\n* New: Added Posts element<br \\/>\\n<br \\/>\\n<strong> 0.0.7 - 2018-09-21 <\\/strong><br \\/>\\n* New: Return the taxonomies in editor config<br \\/>\\n* New: Added filters to Image and Video<br \\/>\\n* New: Added shape dividers to Section<br \\/>\\n* Fixed: Dynamic context extractor<br \\/>\\n* Fixed: RichText dynamic content trigger  not working for non US keyboard layouts<br \\/>\\n<br \\/>\\n<strong> 0.0.6 - 2018-09-17 <\\/strong><br \\/>\\n* New: Added Carousel element<br \\/>\\n* Fixed: Hide certain options in Popup for limited Role Manager role<br \\/>\\n<br \\/>\\n<strong> 0.0.5 - 2018-09-14 <\\/strong><br \\/>\\n* New: Added popups<br \\/>\\n* Fixed: Removed one warning from acf provider<br \\/>\\n<br \\/>\\n<strong> 0.0.4 - 2018-09-07 <\\/strong><br \\/>\\n* New: Added ACF support<br \\/>\\n<br \\/>\\n<strong> 0.0.3 - 2018-09-04 <\\/strong><br \\/>\\n* New: Added Gallery element<br \\/>\\n<br \\/>\\n<strong> 0.0.2 - 2018-08-31 <\\/strong><br \\/>\\n* New: Added dynamic content for images, links and rich texts<br \\/>\\n<br \\/>\\n<strong> 0.0.1 - 2018-08-24 <\\/strong><br \\/>\\n* New: Added limited Role Manager role\\\";}\",\"plugin\":\"brizy-pro\\/brizy-pro.php\"}\";}','off'),(607112,'_site_transient_update_plugins','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1754533670;s:8:\"response\";a:0:{}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:8:{s:19:\"akismet/akismet.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:21:\"w.org/plugins/akismet\";s:4:\"slug\";s:7:\"akismet\";s:6:\"plugin\";s:19:\"akismet/akismet.php\";s:11:\"new_version\";s:3:\"5.5\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/akismet/\";s:7:\"package\";s:54:\"https://downloads.wordpress.org/plugin/akismet.5.5.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:60:\"https://ps.w.org/akismet/assets/icon-256x256.png?rev=2818463\";s:2:\"1x\";s:60:\"https://ps.w.org/akismet/assets/icon-128x128.png?rev=2818463\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/akismet/assets/banner-1544x500.png?rev=2900731\";s:2:\"1x\";s:62:\"https://ps.w.org/akismet/assets/banner-772x250.png?rev=2900731\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.8\";}s:51:\"all-in-one-wp-migration/all-in-one-wp-migration.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:37:\"w.org/plugins/all-in-one-wp-migration\";s:4:\"slug\";s:23:\"all-in-one-wp-migration\";s:6:\"plugin\";s:51:\"all-in-one-wp-migration/all-in-one-wp-migration.php\";s:11:\"new_version\";s:4:\"7.97\";s:3:\"url\";s:54:\"https://wordpress.org/plugins/all-in-one-wp-migration/\";s:7:\"package\";s:71:\"https://downloads.wordpress.org/plugin/all-in-one-wp-migration.7.97.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:76:\"https://ps.w.org/all-in-one-wp-migration/assets/icon-256x256.png?rev=2458334\";s:2:\"1x\";s:76:\"https://ps.w.org/all-in-one-wp-migration/assets/icon-128x128.png?rev=2458334\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:79:\"https://ps.w.org/all-in-one-wp-migration/assets/banner-1544x500.png?rev=3264554\";s:2:\"1x\";s:78:\"https://ps.w.org/all-in-one-wp-migration/assets/banner-772x250.png?rev=3264554\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"3.3\";}s:15:\"brizy/brizy.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:19:\"w.org/plugins/brizy\";s:4:\"slug\";s:5:\"brizy\";s:6:\"plugin\";s:15:\"brizy/brizy.php\";s:11:\"new_version\";s:5:\"2.7.4\";s:3:\"url\";s:36:\"https://wordpress.org/plugins/brizy/\";s:7:\"package\";s:54:\"https://downloads.wordpress.org/plugin/brizy.2.7.4.zip\";s:5:\"icons\";a:2:{s:2:\"1x\";s:50:\"https://ps.w.org/brizy/assets/icon.svg?rev=2995174\";s:3:\"svg\";s:50:\"https://ps.w.org/brizy/assets/icon.svg?rev=2995174\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:61:\"https://ps.w.org/brizy/assets/banner-1544x500.jpg?rev=1857924\";s:2:\"1x\";s:60:\"https://ps.w.org/brizy/assets/banner-772x250.jpg?rev=1857924\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.5\";}s:35:\"disable-xml-rpc/disable-xml-rpc.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:29:\"w.org/plugins/disable-xml-rpc\";s:4:\"slug\";s:15:\"disable-xml-rpc\";s:6:\"plugin\";s:35:\"disable-xml-rpc/disable-xml-rpc.php\";s:11:\"new_version\";s:5:\"1.0.1\";s:3:\"url\";s:46:\"https://wordpress.org/plugins/disable-xml-rpc/\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/plugin/disable-xml-rpc.1.0.1.zip\";s:5:\"icons\";a:1:{s:7:\"default\";s:59:\"https://s.w.org/plugins/geopattern-icon/disable-xml-rpc.svg\";}s:7:\"banners\";a:0:{}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"3.5\";}s:17:\"poll-wp/index.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:21:\"w.org/plugins/poll-wp\";s:4:\"slug\";s:7:\"poll-wp\";s:6:\"plugin\";s:17:\"poll-wp/index.php\";s:11:\"new_version\";s:5:\"2.5.2\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/poll-wp/\";s:7:\"package\";s:56:\"https://downloads.wordpress.org/plugin/poll-wp.2.5.2.zip\";s:5:\"icons\";a:1:{s:2:\"1x\";s:60:\"https://ps.w.org/poll-wp/assets/icon-128x128.png?rev=2692920\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:62:\"https://ps.w.org/poll-wp/assets/banner-772x250.png?rev=2692928\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.0\";}s:31:\"popup-builder/popup-builder.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:27:\"w.org/plugins/popup-builder\";s:4:\"slug\";s:13:\"popup-builder\";s:6:\"plugin\";s:31:\"popup-builder/popup-builder.php\";s:11:\"new_version\";s:5:\"4.4.0\";s:3:\"url\";s:44:\"https://wordpress.org/plugins/popup-builder/\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/plugin/popup-builder.4.4.0.zip\";s:5:\"icons\";a:1:{s:2:\"1x\";s:66:\"https://ps.w.org/popup-builder/assets/icon-128x128.gif?rev=2698840\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:68:\"https://ps.w.org/popup-builder/assets/banner-772x250.jpg?rev=2698842\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.2\";}s:24:\"wpforms-lite/wpforms.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:26:\"w.org/plugins/wpforms-lite\";s:4:\"slug\";s:12:\"wpforms-lite\";s:6:\"plugin\";s:24:\"wpforms-lite/wpforms.php\";s:11:\"new_version\";s:7:\"1.9.7.1\";s:3:\"url\";s:43:\"https://wordpress.org/plugins/wpforms-lite/\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/plugin/wpforms-lite.1.9.7.1.zip\";s:5:\"icons\";a:2:{s:2:\"1x\";s:57:\"https://ps.w.org/wpforms-lite/assets/icon.svg?rev=3254748\";s:3:\"svg\";s:57:\"https://ps.w.org/wpforms-lite/assets/icon.svg?rev=3254748\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:68:\"https://ps.w.org/wpforms-lite/assets/banner-1544x500.png?rev=3091364\";s:2:\"1x\";s:67:\"https://ps.w.org/wpforms-lite/assets/banner-772x250.png?rev=3091364\";}s:11:\"banners_rtl\";a:2:{s:2:\"2x\";s:72:\"https://ps.w.org/wpforms-lite/assets/banner-1544x500-rtl.png?rev=3254748\";s:2:\"1x\";s:71:\"https://ps.w.org/wpforms-lite/assets/banner-772x250-rtl.png?rev=3254748\";}s:8:\"requires\";s:3:\"5.5\";}s:23:\"brizy-pro/brizy-pro.php\";O:8:\"stdClass\":14:{s:11:\"new_version\";s:5:\"2.7.2\";s:4:\"name\";s:9:\"Brizy Pro\";s:4:\"slug\";s:9:\"brizy-pro\";s:3:\"url\";s:35:\"https://www.brizy.io/changelog-pro/\";s:8:\"homepage\";s:25:\"https://www.brizy.io/pro/\";s:7:\"package\";s:215:\"https://www.brizy.io/account/misc/brizy-license/download?token=MTc1NDU3Njg3MDpCUE5XVzlRSjFZUEpUR05FOExMOmE4YzlkYjAyZmZmZjcwMGM1YTRjMmE1MjgwYTI3YjExOmJyaXp5LXByby0yLjcuMi56aXA6MjE2LjcuOTEuMTIzOmNsZWFuc2xhdGVzaG9wLmNh\";s:13:\"download_link\";s:215:\"https://www.brizy.io/account/misc/brizy-license/download?token=MTc1NDU3Njg3MDpCUE5XVzlRSjFZUEpUR05FOExMOmE4YzlkYjAyZmZmZjcwMGM1YTRjMmE1MjgwYTI3YjExOmJyaXp5LXByby0yLjcuMi56aXA6MjE2LjcuOTEuMTIzOmNsZWFuc2xhdGVzaG9wLmNh\";s:6:\"tested\";s:5:\"6.8.1\";s:12:\"requires_php\";s:6:\"7.2.24\";s:8:\"requires\";s:3:\"4.5\";s:5:\"icons\";a:3:{s:2:\"2x\";s:46:\"https://ps.w.org/brizy/assets/icon-256x256.jpg\";s:2:\"1x\";s:38:\"https://ps.w.org/brizy/assets/icon.svg\";s:3:\"svg\";s:38:\"https://ps.w.org/brizy/assets/icon.svg\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:49:\"https://ps.w.org/brizy/assets/banner-1544x500.jpg\";s:2:\"1x\";s:48:\"https://ps.w.org/brizy/assets/banner-772x250.jpg\";}s:8:\"sections\";s:49675:\"a:2:{s:11:\"description\";s:220:\"Creating WordPress pages should be fast & easy. Brizy is a new and innovative way of building WordPress pages visually. No designer or developer skills required. The only tools you\'ll need to master are clicks and drags.\";s:9:\"changelog\";s:49394:\"<strong> 2.7.2 - 2025-07-23 </strong><br />\n* Fixed: reverse column<br />\n* Fixed: popup trigger once condtion<br />\n<br />\n<strong> 2.7.1 - 2025-07-17 </strong><br />\n* New: Compatibility with Wordpress 6.8.2<br />\n<br />\n<strong> 2.7.0 - 2025-07-15 </strong><br />\n* New: DC Text can be limited to a chosen number of lines<br />\n* New: Global Blocks can be renamed directly in the sidebar<br />\n* Fixed: WS Form Pro now embeds and submits correctly inside Brizy pages<br />\n* Fixed: Global Block Rules – category selector works<br />\n* Fixed: Global Block Rules – missing loading indicator when saving<br />\n* Fixed: Scroll Animation – scale effect option now functions correctly<br />\n* Fixed: Fonts – all Adobe Font weights are available<br />\n* Fixed: Menu – hamburger icons display correctly<br />\n* Fixed: Story – background DC image shows<br />\n* Fixed: Accordion – tag color picker works<br />\n* Fixed: DC‑Text – number of lines setting works<br />\n<br />\n<strong> 2.6.14 - 2025-06-10 </strong><br />\n* Improved: Enhanced performance for image resizing.<br />\n<br />\n<strong> 2.6.13 - 2025-05-26 </strong><br />\n* Fixed: Plugin name for WL users.<br />\n<br />\n<strong> 2.6.12 - 2025-05-13 </strong><br />\n* New: Chart element<br />\n* Fixed: Rounded corners on video playlists look right in the preview<br />\n* Fixed: Social icons use the correct default URL<br />\n* Fixed: Webhook names display correctly<br />\n* Fixed: Playlist items with only a cover image work on click<br />\n* Fixed: Form styles render properly in RTL<br />\n* Fixed: Select fields show up in Global Pop-ups<br />\n* Fixed: Mega Menu opens from the Hamburger Menu without issues<br />\n<br />\n<strong> 2.6.11 - 2025-04-24 </strong><br />\n* Fixed: Review component fix<br />\n<br />\n<strong> 2.6.10 - 2025-04-17 </strong><br />\n* Fixed: Not all weights in Fonts tab for Adobe Fonts<br />\n<br />\n<strong> 2.6.9 - 2025-03-13 </strong><br />\n* Fixed: Elements not displayed in preview<br />\n* Fixed: User with \'Editor\' role cannot edit page<br />\n<br />\n<strong> 2.6.8 - 2025-02-25 </strong><br />\n* New: Added Linkedin Feed Component<br />\n* Fixed: Wrong arrangement of gallery images (masonry layout) at first render<br />\n* Fixed: Placeholder is rendered in comment<br />\n* Fixed: Custom icons for menu subitems<br />\n* Fixed: Form bug unable to set more fields on same row<br />\n* Fixed: Flipbox copy and paste styles<br />\n* Fixed: Flipbox set background image on Tablet and Mobile<br />\n<br />\n<strong> 2.6.7 - 2025-02-18 </strong><br />\n* Fixed: Gallery with layout justify <br />\n<br />\n<strong> 2.6.6 - 2025-02-03 </strong><br />\n* Fixed: Issues with recursive menu<br />\n<br />\n<strong> 2.6.5 - 2025-01-30 </strong><br />\n* Fixed: Images cannot be deleted from Media Gallery<br />\n<br />\n<strong> 2.6.4 - 2025-01-15 </strong><br />\n* Improved: Lazy load for Carousel element<br />\n* Fixed: Overlapped text on icons on Form and Login elements<br />\n* Fixed: Translate status messages in Form element<br />\n* Fixed: Instagram element is not loaded when Facebook element persists in page<br />\n* Fixed: Radio and Checkbox values are not send to Webhook in Form element<br />\n* Fixed: Hover color of custom icon in Menu element<br />\n* Fixed: Menu items alignment<br />\n* Fixed: Copy and paste styles from dynamic content text to simple text<br />\n* Fixed: Alt tag for featured image not working<br />\n* Fixed: Carousel dots in responsive mode<br />\n* Fixed: Input sanitization <br />\n<br />\n<strong> 2.6.3 - 2024-12-20 </strong><br />\n* Fixed: Featured image focal point<br />\n<br />\n<strong> 2.6.2 - 2024-12-17 </strong><br />\n* Fixed: Page crash because of adobe fonts<br />\n* Fixed: Zapier integration<br />\n<br />\n<strong> 2.6.1 - 2024-11-26 </strong><br />\n* Fixed: Text domain loaded too early<br />\n<br />\n<strong> 2.6.0 - 2024-11-12 </strong><br />\n* New: Added option to set number of columns for Carousel element on mobile <br />\n* New: Add a link to a checkbox in the Form element <br />\n* New: Set width in % and PX for column in Table element <br />\n* New: Instagram Feed element <br />\n* New: Added dotLottie and Media Library <br />\n* Fixed: Scroll Effect (MouseTrack, 3D Title) for PostInfo Element on Tablet/Mobile<br />\n* Fixed: Effects panel disappears when an effect is activated <br />\n* Fixed: Header block overlaps the add new block blue icon <br />\n* Fixed: Logout is not Translated <br />\n* Fixed: Gallery light box not working with animations <br />\n* Fixed: Form reCAPTCHA error on disconnect <br />\n* Fixed: Hamburger Menu <br />\n<br />\n<strong> 2.5.6 - 2024-11-05 </strong><br />\n* Fixed: Polylang compatibilty with  Brizy pages<br />\n<br />\n<strong> 2.5.5 - 2024-10-21 </strong><br />\n* Fixed: PayPal element displaying Brizy branded keywords.<br />\n<br />\n<strong> 2.5.4 - 2024-09-19 </strong><br />\n* Fixed: The flipbox element is not working on Firefox <br />\n* Improved: Adobe Fonts Helper message<br />\n<br />\n<strong> 2.5.3 - 2024-09-18 </strong><br />\n* Fixed: nav_menu_css_class filter parameter count<br />\n<br />\n<strong> 2.5.2 - 2024-09-17 </strong><br />\n* New: Multistep option for the Form element<br />\n* New: Flipbox element<br />\n* New: Table of Contents element<br />\n* New: Adobe Fonts integration<br />\n* New: Custom icons upload in Icon element<br />\n* New: Transform effects for elements<br />\n* New: Features for Lottie element (trigger options, lazy load and more)<br />\n* New: Search in Global blocks conditions<br />\n* New: Height and Overflow options for Embed element<br />\n* New: Ability to change order of rows in Table element<br />\n* New: Columns options for Posts element in responsive modes<br />\n* Improved: Increase Dynamic Content selection size<br />\n* Improved: Moved EmbedCode element to PRO<br />\n* Improved: Text decoration underline for Text element with Dynamic Content link<br />\n* Improved: Use original name for custom uploaded files<br />\n* Fixed: Background video size when persists Lottie<br />\n* Fixed: Twitter element has no default type<br />\n* Fixed: Close popup button in Image and Icon elements<br />\n* Fixed: EmbedCode font size in Story mode<br />\n* Fixed: Form select drowdown height<br />\n* Fixed: Carousel element change min and max values for speed and stop time<br />\n* Fixed: Post content elements typography styles with link<br />\n* Fixed: Update Lottie element in story items after changing lottie link<br />\n* Fixed: Broken space of Text element when is used DC as block type<br />\n* Fixed: Popup conditions (displaying multiple times)<br />\n* Fixed: Menu element does not display in category<br />\n* Fixed: Form does not work when recaptcha is enabled<br />\n<br />\n<strong> 2.5.1 - 2024-08-01 </strong><br />\n* Fixed: Placeholder terms links<br />\n<br />\n<strong> 2.5.0 - 2024-07-22 </strong><br />\n* Fixed: Rating element bug with tooltip for settings<br />\n* Fixed: Bug with align for next post in PostNavigation<br />\n* Fixed: Popup close button not showing in some cases<br />\n* Fixed: Form margin not showing with radio type option<br />\n* Fixed: Popup with MegaMenu z-index bug<br />\n* Fixed: Bug when duplicating popups in some instances<br />\n<br />\n<strong> 2.4.38 - 2024-03-26 </strong><br />\n* Fixed: dynamic content<br />\n<br />\n<strong> 2.4.37 - 2024-03-20 </strong><br />\n* Fixed: Breadcrumbs title for non-ascii code<br />\n* Fixed: Switcher element cursor not showing pointer<br />\n* Fixed: Text element mask with Dynamic Image not working<br />\n* Improved: Changed UI for Dynamic population option<br />\n* Improved: Text element toolbar closing when changing Dynamic option<br />\n<br />\n<strong> 2.4.36 - 2024-02-13 </strong><br />\n* Fixed: Text color from hex when we have the type transparent<br />\n* Fixed: Text Copy and Paste<br />\n<br />\n<strong> 2.4.35 - 2024-02-07 </strong><br />\n* New: Dynamic Image for Video cover<br />\n* Improved: Increases rows number for Posts<br />\n* Fixed: Stories are not aligned in the middle of the screen<br />\n* Fixed: Animated background section when Carousel element is on the page<br />\n* Fixed: Unable to set Global Block<br />\n<br />\n<strong> 2.4.34 - 2024-01-17 </strong><br />\n * New: Add Right Click context Menu to Mega Menu element<br />\n * Improved: Update Integration name Sendinblue to Brevo<br />\n * Improved: AI Options for Text<br />\n * Fixed: Carousel element is not displayed on mobile<br />\n * Fixed: Hover Animation on Icon with link<br />\n * Fixed: Save Trigger condition for popups do not save<br />\n * Fixed: Lottie element crash on non-lottie json upload<br />\n<br />\n<strong> 2.4.33 - 2023-12-19 </strong><br />\n* Improved: Localisation for Login element<br />\n* Improved: Localisation for Playlist element<br />\n* Improved: Localisation for Gallery tags<br />\n* Improved: Localisation for Login element<br />\n* Improved: Localisation for Twitter element<br />\n* Improved: Localisation for Condition Triggers<br />\n* Improved: Localisation for Global Blocks<br />\n* Improved: Localisation for Timeline element<br />\n* Improved: Localisation for Integrations<br />\n* Improved: Localisation for Gallery element<br />\n* Fixed: Youtube Shorts link in Playlist<br />\n<br />\n<strong> 2.4.32 - 2023-12-07 </strong><br />\nImproved: Reduce text generation time<br />\n<br />\n<strong> 2.4.31 - 2023-12-05 </strong><br />\n* Fixed: Buttons width in preview<br />\n* Fixed: Overlay was visible under gradient color<br />\n<br />\n<strong> 2.4.30 - 2023-12-01 </strong><br />\n* Fixed: Buttons width in preview<br />\n* Fixed: Overlay was visible under gradient color<br />\n<br />\n<strong> 2.4.29 - 2023-11-29 </strong><br />\n* New: Close button for hamburger menu<br />\n* New: Transition speed for carousel<br />\n* New: AI option for Text<br />\n* New: Custom column width for table element<br />\n* Improved: Optimised code output for the Playlist element<br />\n* Improved: Optimised code output for the Timeline element<br />\n* Improved: Optimised code output for the Switcher element<br />\n* Fixed: Popup conditions dropdown too small<br />\n* Fixed: Row and Column items alignment when you set up a scroll effect<br />\n* Fixed: Carousel element is zoomed when placed in a block that has background video<br />\n<br />\n<strong> 2.4.26 - 2023-10-20 </strong><br />\n* Fixed: Login element error when try to register<br />\n<br />\n<strong> 2.4.25 - 2023-10-11 </strong><br />\n* Improved: Changed Popup close delay suffix to s instead of px<br />\n* Improved: Extended population option with custom attributes<br />\n* Improved: Posts columns number for mobile and tablet <br />\n* Fixed: Image gallery empty space when changing column number <br />\n* Fixed: Menu will not open on mobile or tablet inside Section Slider and Carousel <br />\n* Fixed: Toolbar Dynamic Content <br />\n* Fixed: Division by 0 on image resize<br />\n* Fixed: Images are not uploading when GoDaddy CDN or Jetpack CDN is configured<br />\n* Fixed: Gallery option cannot load images in thumbnails <br />\n* Fixed: Popup styles in preview <br />\n* Fixed: Mega Menu styles in preview <br />\n<br />\n<strong> 2.4.24 - 2023-07-12 </strong><br />\n* New: Added vertical spacing option for the Timeline element<br />\n* New: Mask image for all containers: Headers, Footers<br />\n* Fixed: The color gets reset when a dynamic text is linked to its URL<br />\n* Fixed: Option Scroll page behind on popups was not working correctly<br />\n<br />\n<strong> 2.4.23 - 2023-06-26 </strong><br />\n* Fixed: MegaMenu dnd<br />\n* Fixed: Scrollbar inside Popup<br />\n<br />\n<strong> 2.4.22 - 2023-06-22 </strong><br />\n* Fixed: Section Header container<br />\n* Fixed: Section Footer container<br />\n<br />\n<strong> 2.4.21 - 2023-06-21 </strong><br />\n* New: Image Gallery multi upload<br />\n* New: Added layout types and aspect ratio options to Image Gallery<br />\n* New: Added option to sort tags alphabetically in Gallery<br />\n* New: Added new order filter Relevance in Posts element<br />\n* New: Added Webhooks integration in the Form element<br />\n* Fixed: Popup Scroll when you disable Click outside to close pop-up<br />\n* Fixed: Posts Element query<br />\n* Fixed: Posts Element custom dynamic image<br />\n* Fixed: Sticky Menu on scrolling<br />\n* Fixed: Added Typography in mobile and tablet for Product Rating<br />\n<br />\n<strong> 2.4.20 - 2023-06-07 </strong><br />\n* Fixed: Button style fill<br />\n* Fixed: IconBox with hover effect<br />\n<br />\n<strong> 2.4.18 - 2023-05-31 </strong><br />\n* Improved: Menu option source <br />\n* Improved: Carousel toolbar when reordering items <br />\n* Improved: Added active color in mobile Menu element<br />\n* Improved: Twitter element <br />\n* Improved: Added .min suffix for all css and js minified files <br />\n* Improved: Removed demo.themefuse URLs in Brizy blocks when white label is activated<br />\n* Fixed: Dynamic content link <br />\n* Fixed: Dynamic content image in preview <br />\n* Fixed: Click on an image in the Cart element <br />\n* Fixed: Filter and Offset options for Posts element in mobile and tablet <br />\n* Fixed: White label is not working in multisite dashboard<br />\n<br />\n<strong> 2.4.17 - 2023-04-03 </strong><br />\n* Fixed: Sticky Menu scroll <br />\n* Fixed: Mega Menu colors and typography <br />\n* Fixed: Popup removes hardcoded value 300px for width <br />\n* Fixed: Popup in preview <br />\n<br />\n<strong> 2.4.16 - 2023-03-10 </strong><br />\n* Fixed: Screenshots<br />\n* Fixed: Section Background Image<br />\n<br />\n<strong> 2.4.15 - 2023-03-07 </strong><br />\n* New: Preparations for future UI color themes<br />\n* Improved: Minified CSS in HTML <br />\n* Improved: Alphabetical sorting for Gallery tags<br />\n* Updated: Twitter library <br />\n* Fixed: Excerpt element is saving the font family from the post title<br />\n* Fixed: Typography styles for dynamic content in Text element <br />\n* Fixed: Capitalize dynamic content for Text element <br />\n* Fixed: Posts include or exclude query <br />\n* Fixed: Timeline horizontal style in preview<br />\n* Fixed: Losing global styling in Text element after refresh<br />\n* Fixed: Mobile hamburger menu items scroll bar <br />\n* Fixed: Blurred image in Carousel element<br />\n* Fixed: Posts pagination when Blocky theme is activated<br />\n* Fixed: Copy style from text to dynamic content <br />\n* Fixed: Copy error when menu is not selected in the Menu element<br />\n* Fixed: HubSpot connection: Invalid key<br />\n* Fixed: Compatibility with php 8.1 <br />\n<br />\n<strong> 2.4.15 - 2023-03-07 </strong><br />\n* New: Preparations for future UI color themes<br />\n* Improved: Minified CSS in HTML <br />\n* Improved: Alphabetical sorting for Gallery tags<br />\n* Updated: Twitter library <br />\n* Fixed: Excerpt element is saving the font family from the post title<br />\n* Fixed: Typography styles for dynamic content in Text element <br />\n* Fixed: Capitalize dynamic content for Text element <br />\n* Fixed: Posts include or exclude query <br />\n* Fixed: Timeline horizontal style in preview<br />\n* Fixed: Losing global styling in Text element after refresh<br />\n* Fixed: Mobile hamburger menu items scroll bar <br />\n* Fixed: Blurred image in Carousel element<br />\n* Fixed: Posts pagination when Blocky theme is activated<br />\n* Fixed: Copy style from text to dynamic content <br />\n* Fixed: Copy error when menu is not selected in the Menu element<br />\n* Fixed: HubSpot connection: Invalid key<br />\n* Fixed: Compatibility with php 8.1 <br />\n<br />\n<strong> 2.4.14 - 2023-01-31 </strong><br />\n* Fixed: Menu hamburger - items link on responsive mode<br />\n<br />\n<strong> 2.4.13 - 2022-12-26 </strong><br />\n* New: Added stroke option for the Post Title element<br />\n* New: Added paddings for the Facebook element<br />\n* Improved: Shadow for Header and Footer elements <br />\n* Fixed: Text alignment in the hamburger Menu  <br />\n* Fixed: WOO Pages Order Tracking<br />\n* Fixed: Popup cookies problems with local-storage<br />\n* Fixed: Carousel preview - custom height in responsive mode<br />\n* Fixed: Timeline style<br />\n* Improved: StickTitle option on hamburger menu was deleted. Now new users always will have non sticky title <br />\n* Improved: Table responsive<br />\n* Fixed: The order of woo reviews<br />\n<br />\n<strong> 2.4.12 - 2022-11-17 </strong><br />\n* New: Added width and corner options for the Facebook element <br />\n* New: Added padding options for Facebook, Lottie, Search, VideoPlayList<br />\n* New: Added corner option for the Menu element<br />\n* Fixed: Breadcrumbs typography <br />\n* Fixed: White space for text in Playlist element <br />\n* Fixed: Button color in the Facebook Comments element <br />\n* Fixed: Custom fonts in Post Info <br />\n<br />\n<strong> 2.4.11 - 2022-10-27 </strong><br />\n* New: Calendly element<br />\n* Improved: Added badge status in global blocks conditions<br />\n* Fixed: Post Title<br />\n* Fixed: Woo Add To Cart breaks the template<br />\n* Fixed: Video doesn\'t stop when story slide is changed<br />\n* Fixed: Header translations<br />\n* Fixed: Align center not working in previews for Posts<br />\n<br />\n<strong> 2.4.10 - 2022-10-11 </strong><br />\n* New: Added type Outset to Shadow option for Header and Footer blocks<br />\n* Fixed: Twitter height issue<br />\n* Fixed: Corner option for the close icon in a popup<br />\n* Fixed: Redirect after login incompatibility with WishList Member TM plugin<br />\n* Fixed: Table width issue<br />\n* Improved: Timeline element options<br />\n<br />\n<strong> 2.4.9 - 2022-10-03 </strong><br />\n* Fixed: Content shift caused by Carousel on page load <br />\n<br />\n<strong> 2.4.8 - 2022-09-28 </strong><br />\n* Fixed: Mailchimp error on creating new list <br />\n* Fixed: Link to File option was missing in toolbar on Button <br />\n* Fixed: Section Image crop issue in mobile view for Popups<br />\n* Fixed: Mobile 100vw width for Mega Menus<br />\n* Fixed: Misalignment for Menu arrows in mobile view<br />\n* Fixed: Switcher spacing option <br />\n* Fixed: Fatal error happening in is_plugin_active function<br />\n* Fixed: Review element is broken in product pages<br />\n* Fixed: Fatal error happening with Highend theme<br />\n<br />\n<strong> 2.4.7 - 2022-09-17 </strong><br />\n* New: Text Image mask that works with post and page featured image<br />\n* Fixed: Pagination color on hover for Posts element<br />\n* Fixed: Post type names were not white label   <br />\n* Fixed: Global styles changes in post content<br />\n* Fixed: Switcher style two icon active color <br />\n* Fixed: Adding more than one popup in Text element on text links<br />\n* Fixed: Menu gradient background<br />\n* Fixed: Popup inside Posts Element <br />\n* Fixed: White label - Form apps contained the name Brizy <br />\n* Fixed: Posts context right click menu does not appear <br />\n* Fixed: Table syncing styles between all cells <br />\n* Fixed: Hamburger menu closing if is in Mega Menu <br />\n* Fixed: Menu tab overlaps menu items on scroll<br />\n* Fixed: Sticky options on Header element <br />\n* Fixed: Option go to slide in Story on Lottie elements<br />\n* Fixed: WooGallery does not change main image <br />\n* Fixed: Popup content vertical alignment<br />\n* Fixed: PostExcerpt in Woo Products <br />\n* Fixed: Header type fixed shaking on scroll <br />\n* Fixed: Hamburger menu drawer position in responsive <br />\n* Fixed: Edit static header <br />\n* Fixed: getting global popups <br />\n* Fixed: Mega Menu 100 vw width in responsive modes <br />\n* Fixed: Activate and Deactivate license when all license fields license are empty<br />\n* Fixed: Do not load updater hooks on multisite envs, show only in network admin the notice about license<br />\n* Improved: Current Query for customers in Posts element<br />\n* Improved: The size icons in the Timeline element   <br />\n* Improved: Post navigation links  <br />\n<br />\n<strong> 2.4.6 - 2022-08-30 </strong><br />\n* Fixed: RichText with popups<br />\n<br />\n<strong> 2.4.5 - 2022-08-16 </strong><br />\n* Fixed: RichText with popups<br />\n<br />\n<strong> 2.4.4 - 2022-08-09 </strong><br />\n* New: Is activated command for wp-cli <br />\n* Fixed: Error handling for forms<br />\n* Fixed: Admin notice in dashboard<br />\n<br />\n<strong> 2.4.3 - 2022-07-20 </strong><br />\n* New: New Templates<br />\n<br />\n<strong> 2.4.2 - 2022-06-15 </strong><br />\n* Fixed:  Check immediately if there is a new version of the pro plugin after we got a new version of the free plugin<br />\n<br />\n<strong> 2.4.1 - 2022-06-02 </strong><br />\n* New: Added background image and gradient to hamburger menu <br />\n* New: In excerpt dynamic content on Text, display only the filled in tags: p, H1, H2, etc<br />\n* Fixed: Leave page window when you did not change anything in the page<br />\n* Fixed: Feature image on hover did not inherit image from normal state for Menu, Header, Footer, Popup<br />\n* Fixed: Rounded corners on Images that are dynamic <br />\n* Fixed: Contact forms in Mega Menu <br />\n* Fixed: Some outline icons did not display in the editor<br />\n* Fixed: Dynamic text alignment <br />\n* Fixed: Sidebar for Timeline element in mobile view <br />\n* Fixed: Menu background color hover when you select a global color <br />\n<br />\n<strong> 2.4.0 - 2022-05-18 </strong><br />\n* New: Added dynamic text population method in the Line element<br />\n* New: Added Icons for Switcher element<br />\n* New: Added Rating scale option 5 and 10<br />\n* New: Added scroll animation Effects funtionality<br />\n* New: Added reorder to Gallery element<br />\n* New: Added reorder to Timeline element<br />\n* New: Added reorder to Playlist element<br />\n* New: Added support for placeholders in email templates<br />\n* New: Added new Sale element for the WooCommerce builder<br />\n* Improved: WooCart variable products label styling<br />\n* Improved: Can change name for All tag in Posts element<br />\n* Improved: Removed max depth limit for the Menu element<br />\n* Improved: Multi tabs for the Facebook element<br />\n* Improved: WooCart styling improvements<br />\n* Improved: WooAtributes made title come from backend<br />\n* Fixed: Hover option for filters on Header and Footer elements<br />\n* Fixed: Fonts in the Menu element when you have Twenty Twenty-One WP theme activated<br />\n* Fixed: Lottie resize dots<br />\n* Fixed: White label default links for Twitter and Facebook<br />\n* Fixed: Mobile Menu text when empty<br />\n* Fixed: Added horizontal scroll for Table element in responsive views<br />\n* Fixed: Hide additional info about the product if there is no data<br />\n* Fixed: Editor product gallery<br />\n* Fixed: Added all tags in post tag loop<br />\n* Fixed: Compiler returns empty array on page styles and scripts<br />\n<br />\n<strong> 2.3.30 - 2022-05-05 </strong><br />\n* Fixed: Hover on menu dropdown<br />\n* Fixed: Header and Footer dividers on Firefox<br />\n<br />\n<strong> 2.3.29 - 2022-05-03 </strong><br />\n* Fixed: Hover transition on the play icon in the Playlist element <br />\n* Fixed: Popups screenshots <br />\n<br />\n<strong> 2.3.28 - 2022-04-21 </strong><br />\n* Fixed: Headers Dividers<br />\n* Fixed: Footer Dividers<br />\n<br />\n<strong> 2.3.27 - 2022-04-20 </strong><br />\n* New: Text link to specific story slide <br />\n* Improved: Hover Transition for ImageGallery <br />\n* Improved: Hover Transition for Comments, WOOAddToCart, WOORating<br />\n* Improved: Posts in Archive page <br />\n* Improved: RichText with dynamic content <br />\n* Improved: Global color palette performance <br />\n* Improved: Global typography performance <br />\n* Improved: Performance when you remove blocks from the sidebar  <br />\n* Fixed: Active color for Image Gallery<br />\n* Fixed: Colors and transition for the Video Playlist element<br />\n* Fixed: Video with border radius in Safari <br />\n* Fixed: Menu placeholder issue for desktop<br />\n* Fixed: Empty license key submitted error<br />\n* Fixed: Warning: This plugin has not been tested with your current version of WordPress <br />\n<br />\n<strong> 2.3.26 - 2022-03-10 </strong><br />\n* New: Show progress on story when autoplay is on<br />\n* Updated: Removed loop from story <br />\n* Fixed: Disabled Lottie link for responsive <br />\n* Fixed: Background image for Header blocks with Sticky option on<br />\n* Fixed: Posts include and exclude select <br />\n<br />\n<strong> 2.3.25 - 2022-03-02 </strong><br />\n* New: Add links to any slide in Stories <br />\n* New: Auto slide option for Stories<br />\n* Fixed: Prefetching fonts in white label Agency and Reseller plans<br />\n* Fixed: Reset password<br />\n* Fixed: Added hover state on Back to Login and Register links in the Login element<br />\n* Fixed: Loop for VideoPlaylist element<br />\n<br />\n<strong> 2.3.24 - 2022-02-09 </strong><br />\n* New: Stories - added Lottie render option<br />\n* Fixed: Timeline element - element spacing bug on mobile<br />\n* Fixed: Timeline element - line and border display issues<br />\n* Fixed: Buttons and Icons - custom class, ID population<br />\n* Fixed: Playlist element - cover image not working<br />\n<br />\n<strong> 2.3.23 - 2022-02-07 </strong><br />\n* Fixed: Restore blog on multisite environments<br />\n* New: Added User registration URL placeholder<br />\n<br />\n<strong> 2.3.22 - 2022-02-03 </strong><br />\n* Fixed: Saves scripts relative to the plugin main folder<br />\n* Fixed: Get license key in the multisite environments<br />\n<br />\n<strong> 2.3.21 - 2022-01-17 </strong><br />\n* Fixed: Color and align for text element<br />\n<br />\n<strong> 2.3.20 - 2022-01-14 </strong><br />\n* Fixed:  Load One Site License admin notice only on multisite<br />\n<br />\n<strong> 2.3.19 - 2022-01-10 </strong><br />\n* New: Added spacing for text in timeline<br />\n* Fixed: Do not opened PromptConditions when make it global on a simple page<br />\n* Fixed: Image toolbar with dynamic content<br />\n* Fixed: Sanitize the white label prefix<br />\n* Fixed:  WPML Menu switcher is missing from Brizy pages<br />\n<br />\n<strong> 2.3.18 - 2021-12-20 </strong><br />\n* New: Archive for title and excerpt<br />\n* Fixed: Text gradient in safari<br />\n<br />\n<strong> 2.3.17 - 2021-12-13 </strong><br />\n* Fixed: MegaMenu Drag and Drop <br />\n* Fixed: Popup v1 alignment <br />\n* Fixed: Carousel dots style on 2021 theme<br />\n* Fixed: The canonical URL for brizy pagination<br />\n* Fixed: Use original URL of the image when featured image is used as background<br />\n* Updated: Exclude WP navigation from simple page<br />\n* Improved: TranslatePress compatibility for the Menu element <br />\n<br />\n<strong> 2.3.16 - 2021-11-30 </strong><br />\n* New: 13 Popups design<br />\n* New: 8 Layout packs and Landing pages<br />\n* Improved: Logout URL with redirect<br />\n* New: Added custom context for the Post Title dynamic element<br />\n* Fixed: Publish option when you create internal Popups <br />\n* Fixed: Image dynamic content<br />\n* Fixed: Active state for Switcher element<br />\n* Fixed: Login and Logout redirect <br />\n* Fixed: Saved blocks in white label instance<br />\n* Fixed: Sale and price color for WooPrice<br />\n* Fixed: Remove undefined index placeholder<br />\n* Fixed: Display a notification when the free version is not activated<br />\n<br />\n<br />\n<strong> 2.3.15 - 2021-11-09 </strong><br />\n* Improved: Changed the default Twitter handle when you added it to the page <br />\n* Improved: Changed icon in toolbar for Navigation <br />\n* Fixed: Regex for some placeholders in Dynamic content <br />\n* Fixed: Carousel sidebar for mobile and tablet <br />\n* Fixed: Gallery sidebar for responsive <br />\n* Fixed: The lines in the timeline element now connect correctly on mobile <br />\n* Fixed: Changed default paragraph text value for Carousel <br />\n* Fixed: Alt attribute for logo on dynamic content<br />\n* Fixed: Show and Hide posts title on navigation post on single post<br />\n<br />\n<strong> 2.3.14 - 2021-10-18 </strong><br />\n* Improved: Show display conditions popup on setting a global Block<br />\n* Improved: Active tags hover behavior for Posts element <br />\n* Improved: White label options, removed Brizy from custom font upload <br />\n* New: 9 design layout packs<br />\n* New: Added categories in Posts element<br />\n* Fixed: Story text and images flickering on different devices<br />\n* Fixed: Some PRO layouts are displaying in the FREE category <br />\n* Fixed: File upload on Lottie element<br />\n* Fixed: Nested Switcher elements <br />\n* Fixed: Styles issues for nested Switcher elements <br />\n* Fixed: Menu element font broken by Twenty Twenty-One theme<br />\n* Fixed: UI issues when Dynamic content is larger in toolbar<br />\n* Fixed: Mega Menu hover transition<br />\n* Fixed: Content alignment when you activate membership options in Footer blocks<br />\n* Fixed: Dynamic content value in Countdown element<br />\n* Fixed: Close option hover on Image Gallery lightbox<br />\n* Fixed: Post loop setup global post on every iteration<br />\n* Fixed: Added back the post tags placeholder<br />\n* Fixed: Product short description does not work in the products element<br />\n* Fixed: Woocommerce Product Bundle plugin failed to open stream<br />\n* Fixed: Renamed brizy_dc_post_tags to brizy_dc_post_terms and changed it according to its name<br />\n<br />\n<strong> 2.3.13 - 2021-09-16 </strong><br />\n* Fixed: Shortcodes Element in popup <br />\n* Fixed: Mega Menu preview position<br />\n* Fixed: Options toolbar position inside Sticky Header<br />\n* Improved: Mega Menu passive events on touch <br />\n* Improved: Page loading speed on preview when you have custom fonts on your page<br />\n* Fixed: False positives malware File Found notifications <br />\n* Fixed: Brizy Yoast pagination incompatibility<br />\n* Fixed: Post Loop, Pagination, Tags refactoring <br />\n* Fixed: Apply do_shortcode in the post loop on every item <br />\n<br />\n<strong> 2.3.12 - 2021-09-06 </strong><br />\n* New: Added the Lottie element in Stories <br />\n* Fixed: Text links in Stories <br />\n* Fixed: Placeholder options values for the Post element<br />\n<br />\n<strong> 2.3.11 - 2021-08-26 </strong><br />\n* Fixed: Editor for Internal Popup<br />\n<br />\n<strong> 2.3.10 - 2021-08-24 </strong><br />\n* Fixed: Global popup bug<br />\n* Fixed: Icon link in Story<br />\n* Fixed: Mega Menu secondary level bug<br />\n* Fixed: Hamburger Menu on mobile bug<br />\n* Fixed: Mobile menu bug when using Astra theme<br />\n<br />\n<strong> 2.3.8 - 2021-08-17 </strong><br />\n* Improved: White Label, removed keyword Brizy from two places in the code<br />\n* Fixed: Global popup<br />\n* Fixed: Cache assets on Brizy websites<br />\n* Fixed: Fatal error on compile templates for single product<br />\n<br />\n<strong> 2.3.7 - 2021-08-06 </strong><br />\n* Fixed: Assets on preview<br />\n* Fixed: Toolset and metabox custom fields<br />\n<br />\n<strong> 2.3.6 - 2021-08-05 </strong><br />\n* Fixed: Composer versions<br />\n<br />\n<strong> 2.3.5 - 2021-08-05 </strong><br />\n* Fixed: Broken WooCommerce Products template in preview<br />\n<br />\n<strong> 2.3.4 - 2021-08-04 </strong><br />\n* New: Added Free stories category in sidebar when you add stories<br />\n* New: Added 10 new Layout Packs (Templates)<br />\n* Improved: Renamed a couple of Story templates<br />\n* Improved: Stories templates global styling, previews, thumbs, etc<br />\n<br />\n<strong> 2.3.3 - 2021-07-26 </strong><br />\n* New: Added icon position option for Menu item<br />\n* Improved: Removed submenu lvl limit for the Menu element<br />\n* Improved: White label for blocks and layouts syncing popup<br />\n* Improved: White label for the default global style name<br />\n* Fixed: Adapt Pods placeholder to the latest version of dynamic content<br />\n* Fixed: Filters for dynamic images<br />\n* Fixed: Submenu styles for the Menu element<br />\n<br />\n<br />\n<strong> 2.3.2 - 2021-07-23 </strong><br />\n* Fixed: Comments placeholder<br />\n* Fixed: Carousel with dynamic content<br />\n* Fixed: Empty items in Posts component<br />\n<br />\n<strong> 2.3.1 - 2021-07-20 </strong><br />\n* Fixed: Pods, Metabox and Toolset placeholder providers<br />\n<br />\n<strong> 2.3.0 - 2021-07-19 </strong><br />\n* New: Dynamic Content in editor mode<br />\n* New: Added pagination in Archive element<br />\n* New: Added reorder option in Carousel<br />\n* Improved: Moved password link to type links dynamic content<br />\n* Improved: Posts include, exclude filters<br />\n* Improved: Login element<br />\n* Fixed: Action priority<br />\n* Fixed: Changed the behavior for offset attribute in Posts element<br />\n<br />\n<strong> 2.2.13 - 2021-07-13 </strong><br />\n* Fixed: empty breadcrumbs when there are no conditions in the template<br />\n* Fixed: translate membership string View as role<br />\n* Fixed: show role change only for allowed users<br />\n<br />\n<strong> 2.2.12 - 2021-07-07 </strong><br />\n* Fixed: Menu transparency bug and icon size spacing unit<br />\n* Fixed: Login submit button normal color<br />\n* Fixed: Custom audio not close automatically<br />\n* Fixed: Cart element display total with calculated taxes<br />\n* Fixed: Cart element do not ignore the settings of WooCommerce currency position<br />\n* Fixed: Login Element - Wrong Password Redirects to standard WP login page<br />\n* Fixed: Empty breadcrumbs when the template has the condition for search archive<br />\n<br />\n<strong> 2.2.11 - 2021-05-18 </strong><br />\n* Fixed: Mega menu scrollable<br />\n<br />\n<strong> 2.2.10 - 2021-05-13 </strong><br />\n* Fixed: Mega menu in small viewport<br />\n* Fixed: Lightbox blurred image<br />\n<br />\n<strong> 2.2.9 - 2021-04-12 </strong><br />\n* Fixed: Burger Menu scroll with anchor<br />\n* Fixed: Global popups in global Block<br />\n<br />\n<strong> 2.2.8 - 2021-04-08 </strong><br />\n* New: Added horizontal align for Table aside and header<br />\n* New:  Placeholder for active menu item<br />\n* New: Calculate the excerpt for posts edited with Brizy by excluding the header and footer<br />\n* Fixed: Show plugins when the white label is enabled<br />\n* Fixed: Post content placeholder for posts edited with Gutenberg<br />\n* Fixed: Always render comments to HTML5<br />\n* Fixed: Align left for Image Gallery element<br />\n* Fixed: Hovers for custom Video element<br />\n* Fixed: Typography for Menu element<br />\n* Fixed: Added href for title in Menu element<br />\n<br />\n<strong> 2.2.7 - 2021-03-23 </strong><br />\n* New:  Placeholder for menu item active<br />\n* Fixed: Post content placeholder for posts edited with Gutenberg<br />\n* Fixed: Always render comments to HTML5<br />\n<br />\n<strong> 2.2.5 - 2021-02-16 </strong><br />\n* Fixed: Global Popups CSS<br />\n<br />\n<strong> 2.2.4 - 2021-02-04 </strong><br />\n* Fixed: Excerpt component<br />\n<br />\n<strong> 2.2.3 - 2021-02-02 </strong><br />\n* Improved: Code refactoring and optimization<br />\n* Fixed: Popups on links within RichText element<br />\n* Fixed: Broken URL for uploaded fonts<br />\n<br />\n<strong> 2.2.2 - 2021-01-14 </strong><br />\n* Fixed: Global Popups<br />\n<br />\n<strong> 2.2.1 - 2021-01-12 </strong><br />\n* New: Added margin option in Footer<br />\n* Fixed: Lottie in section<br />\n* Fixed: Post content line breaks with classic editor<br />\n* Fixed: License form for other languages<br />\n* Fixed: Pagination refactoring<br />\n* Fixed: Posts loop no products with polylang<br />\n* Fixed: calculate the excerpt a bit different for posts edited with Brizy<br />\n<br />\n<br />\n<strong> 2.2.0 - 2020-12-03 </strong><br />\n* New: 14 Pre-made Layouts and Landing pages<br />\n<br />\n<strong> 2.1.3 - 2020-11-13 </strong><br />\n* Fixed: Show editor elements on Product page<br />\n* Fixed: Show cart on Woocommerce pages<br />\n<br />\n<strong> 2.1.2 - 2020-11-12 </strong><br />\n* Fixed: PostContent in template<br />\n<br />\n<strong> 2.1.1 - 2020-11-10 </strong><br />\n* Improved: WooRating better color defaults<br />\n* Improved: WooCart vertical align option also appears when height is Auto<br />\n* Fixed: MegaMenu offset and width options<br />\n<br />\n<strong> 2.1.0 - 2020-11-05 </strong><br />\n* New: Multiple WooCommerce elements<br />\n* New: Added shop page option in template rules<br />\n<br />\n<br />\n<strong> 2.0.9 - 2020-11-03 </strong><br />\n* Fixed: Featured image upload<br />\n<br />\n<strong> 2.0.8 - 2020-10-28 </strong><br />\n* Fixed: MenuPro dropdowns toolbar was missing typography and color options<br />\n* Fixed: MenuPro was escaping HTML Entities<br />\n* Fixed: Videos inside Switcher element were continuing to play when switching between tabs<br />\n* Fixed: Media upload on white label settings page<br />\n<br />\n<strong> 2.0.7 - 2020-10-13 </strong><br />\n* Improved: MegaMenu alignment<br />\n* Improved: Integration SDK<br />\n* Fixed: Posts element columns were sometimes of different heights<br />\n<br />\n<strong> 2.0.6 - 2020-09-17 </strong><br />\n* Fixed: Show License page if white label is activated and the white label menu is available<br />\n<br />\n<strong> 2.0.5 - 2020-09-11 </strong><br />\n* Improvement: Playlist element<br />\n* Fixed: RichText dynamic content wasn\'t editable in posts<br />\n* Fixed: Custom font with white label<br />\n* Fixed: Call do_shortcode on every iteration in post loop<br />\n* Fixed: Breadcrumbs styles<br />\n* Fixed: Remove a warning in white label<br />\n* Fixed: Added white label flag in config<br />\n* Fixed: Mark all pages to be re-compiled if the white label prefix is changed<br />\n<br />\n<strong> 2.0.4 - 2020-08-19 </strong><br />\n* Fixed: The License page for multi-sites<br />\n<br />\n<strong> 2.0.3 - 2020-08-18 </strong><br />\n* Fixed: Take the license data from main site if the multi-site is enabled<br />\n* Fixed: License page<br />\n* Fixed: apply the_content filter on component post content<br />\n<br />\n<strong> 2.0.2 - 2020-08-06 </strong><br />\n* Fixed: Table width on Safari<br />\n* Fixed: Lightbox in Carousel Element<br />\n* Fixed: Carousel refresh when changed tabs on mobile<br />\n* Fixed: Archive component<br />\n<br />\n<strong> 2.0.1 - 2020-08-05 </strong><br />\n* Fixed: Archive component<br />\n<br />\n<strong> 2.0.1 - 2020-07-31 </strong><br />\n* Fixed: Archive component<br />\n<br />\n<strong> 2.0 - 2020-07-30 </strong><br />\n* New: Global blocks conditions<br />\n* New: Mega Menu builder<br />\n* New: Table element<br />\n* New: Lottie element<br />\n* New: Login element<br />\n* New: Post Navigation element<br />\n* Improved: Added active color option for the Playlist element<br />\n* Improved: Added vertical orientation for the Menu Element<br />\n* Improved: Menu padding option for mobile menu items<br />\n* Improved: Menu styling options for active menu item<br />\n* Improved: Load plugin<br />\n* Improved: Styles are added automatically when importing a Layout<br />\n* Improved: Custom Email template is now edited with a code editor<br />\n* Improved: Dynamic content was partly re written and extended<br />\n* Improved: Added option to change the link prefix ?brizy-edit (White Label)<br />\n* Improved: Removed any content related to Brizy from the pre made blocks and popups (White Label)<br />\n* Improved: Replaced block thumbnails that contained Brizy related content (White Label)<br />\n* Improved: Added active state colour for Accordion, Switch, Tabs, Menu, Playlist and Gallery elements<br />\n* Improved: Moved submenu license in a new tab in the sub-menu settings<br />\n* Improved: Added brizy_form_email_subject filter<br />\n* Improved: Added support for placeholders in email subject<br />\n* Improved: Styles are added automatically when importing a Layout<br />\n* Improved: Custom Email template can now be edited with a code editor<br />\n* Fixed: Posts element masonry layout jumping<br />\n* Fixed: MMenu z-index for shape<br />\n* Fixed: Gallery inside container elements (Tabs, Accordion, Switcher, etc.)<br />\n* Fixed: Restricted access for non licensed users<br />\n* Fixed: Carousel incorrect width<br />\n* Fixed: PostContent bold and italic styles<br />\n* Fixed: Encryption values for SMTP integration<br />\n* Fixed: Comments skin 1 divider width<br />\n* Fixed: Post pagination colour and spacing<br />\n* Fixed: Search on multisite installations<br />\n* Fixed: Search button corner option<br />\n* Fixed: Carousel inside container elements (Tabs, Accordion, Switcher, etc.)<br />\n* Fixed: White labeling in query string<br />\n* Fixed: Gallery inside container elements (Tabs, Accordion, Switcher, etc.)<br />\n<br />\n<strong> 0.0.41 - 2020-04-25 </strong><br />\n* New: Minor refactoring needed to integrate with new icon system<br />\n<br />\n<strong> 0.0.40 - 2020-04-14 </strong><br />\n* Fixed: Mobile menu now closes when clicking on an anchor link from it<br />\n* Fixed: Search Element not appearing in the elements list<br />\n<br />\n<strong> 0.0.39 - 2020-03-27 </strong><br />\n* Fixed: Menu options on mobile<br />\n<br />\n<strong> 0.0.38 - 2020-03-25 </strong><br />\n* Fixed: Check for Brizy Free version<br />\n<br />\n<strong> 0.0.37 - 2020-03-25 </strong><br />\n* New: Comments element (Discuss, WP Comments)<br />\n* New: Timeline element<br />\n* New: Audio element (Custom audio)<br />\n* New: Switcher element<br />\n* New: Star Rating element<br />\n* New: Video Player element<br />\n* New: Search element<br />\n* New: Twitter element<br />\n* Improved: Added custom video upload for the Video element<br />\n* Improved: Added tags for the Gallery element<br />\n* Fixed: Post field shortcode to use a sample post for templates<br />\n* Fixed: Refactoring the post type field in editor config<br />\n* Fixed: Removed header ‘To’ from email headers<br />\n* Fixed: Force SMTP encryption by default until there will be a option to change it in configuration form<br />\n* Fixed: Disabled news dasbaboard widget not for instances with white label<br />\n* Fixed: File type field<br />\n* Fixed: Disabled news dashboard widget for instances where white label is active<br />\n* Fixed: Force SMTP encryption by default until there will be a option to change it in configuration form<br />\n* Fixed: Updated forms SDK<br />\n* Fixed: Menu element<br />\n* Fixed: Fixed post loop pagination for all categories<br />\n* Fixed: Project save when activate/disable License<br />\n<br />\n<strong> 0.0.36 - 2020-03-12 </strong><br />\n* Fixed: Updated forms sdk<br />\n* Fixed: Menu element<br />\n<br />\n<strong> 0.0.35 - 2020-03-10 </strong><br />\n* Fixed: enqueue scripts preview.pro.js<br />\n<br />\n<strong> 0.0.34 - 2020-01-24 </strong><br />\n* New: Added new Layouts to Pro<br />\n<br />\n<strong> 0.0.33 - 2020-01-23 </strong><br />\n* Fixed: GetResponse form integration<br />\n<br />\n<strong> 0.0.32 - 2020-01-16 </strong><br />\n* New: Forms added Gmail SMTP, Custom SMTP<br />\n* Fixed: Front page pagination for posts component<br />\n* Fixed: Featured images placeholder to work with svg images<br />\n<br />\n<strong> 0.0.31 - 2019-11-13 </strong><br />\n* New: Popups<br />\n<br />\n<strong> 0.0.30 - 2019-10-08 </strong><br />\n* New: Added Kit 2<br />\n<br />\n<strong> 0.0.29 - 2019-10-01 </strong><br />\n* New: Added Breadcrumbs element (WP only)<br />\n* New: Added File tab to Link option enabling linking to custom uploaded files<br />\n* New: Hover background filters for Section, Footer, Header, Row, Column<br />\n* Fixed: Translation texts<br />\n<br />\n<strong> 0.0.28 - 2019-09-18 </strong><br />\n* New: Custom fonts<br />\n* Improved: Reduced JavaScript file size<br />\n* Fixed: Background images not working with dynamic content<br />\n<br />\n<strong> 0.0.27 - 2019-05-29 </strong><br />\n* Fixed: Post loop pagination<br />\n* Fixed: Deactivate license form<br />\n<br />\n<strong> 0.0.26 - 2019-05-23 </strong><br />\n* Improved: Cleaned up the Popup blank block<br />\n* Fixed: Videos in the page changing src after a popup is closed<br />\n* Fixed: Popups not working properly in Global blocks, after duplicating and in other situations<br />\n<br />\n<strong> 0.0.25 - 2019-04-23 </strong><br />\n* Fixed: Redirect URL after license activation/deactivation in networks<br />\n<br />\n<strong> 0.0.24 - 2019-04-18 </strong><br />\n* New: Hover transition option for Facebook elements<br />\n* New: Map Address option supports dynamic content<br />\n* New: Video Link option supports dynamic content<br />\n* Improved: Link to popup option available in tablet and mobile<br />\n* Fixed: Carousel in rtl mode<br />\n* Fixed: Posts order by option<br />\n* Fixed: License menu<br />\n<br />\n<strong> 0.0.23 - 2019-04-12 </strong><br />\n* Fixed: License form<br />\n<br />\n<strong> 0.0.22 - 2019-04-09 </strong><br />\n* Fixed: License activation bug<br />\n<br />\n<strong> 0.0.21 - 2019-04-09 </strong><br />\n* Fixed: Fixed white-label bug for new installs<br />\n<br />\n<strong> 0.0.20 - 2019-04-09 </strong><br />\n* New: White label<br />\n* Fixed: Fixed post-loop notice warning<br />\n<br />\n= 0.0.19 - 2019-03-21<br />\n* New: Added 17 layouts<br />\n* Fixed: The default post loop attributes<br />\n<br />\n<br />\n<strong> 0.0.18 - 2019-03-11 </strong><br />\n* New: Custom CSS option<br />\n* New: Facebook Button element<br />\n* New: Facebook Comments element<br />\n* New: Facebook Page element<br />\n* New: Facebook Embed element<br />\n* Fixed: Return login name if the first name and last name are not set.<br />\n* Fixed: Fixed updater<br />\n* Fixed: Small tweaks in getLicenseActivationData<br />\n* Fixed: Removed some \'code optimizations\'<br />\n* Fixed: Fixed compile parameters<br />\n* Fixed: Return no image url if there is the height attribute for attachment<br />\n* Fixed: moved the filter for license data config<br />\n* Fixed: Fixed the license deactivation action<br />\n<br />\n<strong> 0.0.17 - 2019-01-25 </strong><br />\n* New: Added form integrations with 12 services<br />\n<br />\n<strong> 0.0.16 - 2019-01-09 </strong><br />\n* New: Dynamic content placeholders for Metabox<br />\n<br />\n<strong> 0.0.15 - 2018-12-19 </strong><br />\n* Improved: Menu. Not found message<br />\n* Fixed: Menu. Hide submenu items when page is loading<br />\n* Fixed: Carousel. Zooming before slider initialization<br />\n* Fixed: Carousel. Showing submenu items in Astra theme<br />\n* Fixed: Popup. z-index conflicts with header blocks<br />\n* Fixed: Activate/Dezactivate license callbacks<br />\n<br />\n<strong> 0.0.14 - 2018-12-06 </strong><br />\n* New: Added new Header blocks<br />\n* New: Added new Footer blocks<br />\n* New: Added Menu element<br />\n* New: RichText can now set colors for different tags when using Post Content dynamic content<br />\n* Fixed: Fixed autloader path<br />\n* Fixed: Pagination refactoring<br />\n* Fixed: ACF dynamic content fixes<br />\n* Fixed: Limited access option in role manager<br />\n<br />\n<strong> 0.0.13 - 2018-11-23 </strong><br />\n* New: Added Brizy PRO licensing system<br />\n* New: Added Brizy PRO dashboard update system<br />\n* New: Added possibility to use block dynamic content in RichText<br />\n* Fixed: Multiple Galleries in Tabs and Accordion<br />\n* Fixed: Updated license form layout<br />\n* Fixed: Dynamic content placeholders for pods<br />\n* Fixed: Post loop pagination<br />\n* Fixed: The content for post loops<br />\n* Fixed: Added placeholder display type<br />\n<br />\n<strong> 0.0.12 - 2018-11-08 </strong><br />\n* New: Added more Popup and Blog blocks<br />\n* Fixed: Dynamic content post loop<br />\n<br />\n<strong> 0.0.11 - 2018-10-03 </strong><br />\n* New: Added first batch of predesigned pages (53) and styles (10)<br />\n* New: Renamed main plugin file<br />\n* Improved: Optimised svg shapes<br />\n* Fixed: Bugs in dynamic content module<br />\n* Fixed: Class autoloader fix<br />\n<br />\n<strong> 0.0.10 - 2018-10-03 </strong><br />\n* New: Added Pods support<br />\n* New: Added Toolset support<br />\n* Fixed:  Taxonomy return data type<br />\n<br />\n<strong> 0.0.9 - 2018-10-01 </strong><br />\n* New: Added dynamic content option for Section background image<br />\n* New: Added dynamic content option to Carousel<br />\n* New: Added filter options to Posts<br />\n* New: Added Archives element (available in templates only)<br />\n* Improved: Added order attr. for post loop place holder<br />\n* Improved: Format the content from content placeholder<br />\n* Improved: Changed the post loop to be able to work with posts from main loop.<br />\n* Fixed: Animations in Popup<br />\n* Fixed: Carousel image quality<br />\n* Fixed: Added loop pagination<br />\n* Fixed: Added filters to template posts<br />\n* Fixed: Calculate the container width and height from image size<br />\n* Fixed: Allow any char in placeholder name<br />\n* Fixed: Fixed the crop function to accept 0 in container width/height<br />\n* Fixed: Calculate the container width and height from image size<br />\n* Fixed: Fixed brizy min version waring<br />\n<br />\n<strong> 0.0.8 - 2018-09-22 </strong><br />\n* New: Added Posts element<br />\n<br />\n<strong> 0.0.7 - 2018-09-21 </strong><br />\n* New: Return the taxonomies in editor config<br />\n* New: Added filters to Image and Video<br />\n* New: Added shape dividers to Section<br />\n* Fixed: Dynamic context extractor<br />\n* Fixed: RichText dynamic content trigger  not working for non US keyboard layouts<br />\n<br />\n<strong> 0.0.6 - 2018-09-17 </strong><br />\n* New: Added Carousel element<br />\n* Fixed: Hide certain options in Popup for limited Role Manager role<br />\n<br />\n<strong> 0.0.5 - 2018-09-14 </strong><br />\n* New: Added popups<br />\n* Fixed: Removed one warning from acf provider<br />\n<br />\n<strong> 0.0.4 - 2018-09-07 </strong><br />\n* New: Added ACF support<br />\n<br />\n<strong> 0.0.3 - 2018-09-04 </strong><br />\n* New: Added Gallery element<br />\n<br />\n<strong> 0.0.2 - 2018-08-31 </strong><br />\n* New: Added dynamic content for images, links and rich texts<br />\n<br />\n<strong> 0.0.1 - 2018-08-24 </strong><br />\n* New: Added limited Role Manager role\";}\";s:6:\"plugin\";s:23:\"brizy-pro/brizy-pro.php\";}}s:7:\"checked\";a:9:{s:19:\"akismet/akismet.php\";s:3:\"5.5\";s:51:\"all-in-one-wp-migration/all-in-one-wp-migration.php\";s:4:\"7.97\";s:15:\"brizy/brizy.php\";s:5:\"2.7.4\";s:23:\"brizy-pro/brizy-pro.php\";s:5:\"2.7.2\";s:35:\"disable-xml-rpc/disable-xml-rpc.php\";s:5:\"1.0.1\";s:19:\"wp-poll/wp-poll.php\";s:6:\"3.3.72\";s:17:\"poll-wp/index.php\";s:5:\"2.5.2\";s:31:\"popup-builder/popup-builder.php\";s:5:\"4.4.0\";s:24:\"wpforms-lite/wpforms.php\";s:7:\"1.9.7.1\";}}','off');

--
