


<p>On top of that, discourse around web3 is extremely polarising: everyone involved is very keen to a) pick a team, and b) get you to join their team. If you haven&#8217;t picked a team, you must be secretly with the other team.</p>



<p>Max Read made a compelling argument that the web3 debate is in fact two different debates:</p>



<blockquote class="wp-block-quote is-style-default"><p>But, OK, what is the root disagreement, exactly? The way I read it there are two broad &#8220;is web3 bullshit?&#8221; debates, not just one, centered around the following questions:</p><p>Can the blockchain do anything that other currently existing technology <em>cannot</em> do and/or do anything <em>better or more efficiently </em>than other currently existing technology?</p><p>Will the blockchain form the architecture of the internet of the future (i.e. &#8220;web3&#8221;), and/or will blockchain-native companies and organizations become important and powerful?</p><cite><a href="https://maxread.substack.com/p/is-web3-bullshit">Max Read — Is web3 bullshit?</a></cite></blockquote>



<p>I&#8217;m inclined to agree with Max&#8217;s analysis here: there&#8217;s a technical question, and there&#8217;s a business/cultural question. It&#8217;s hard to separate the two when every day sees new headlines about <a href="https://www.theblockcrypto.com/linked/126367/crypto-exchange-bitmart-reportedly-hacked-for-100-million">millions of dollars being stolen or scammed</a>; or thousands of people putting millions of dollars into <a href="https://en.wikipedia.org/wiki/ConstitutionDAO">highly optimistic ventures</a>. There are extreme positives and extreme negatives happening all the time in the web3 world.</p>



<p>With that in mind, I want to take a step back from the day-to-day excitement of cryptocurrency and web3, and look at some of the driving philosophies espoused by the movement.</p>



<h2 id="philosophies-of-web3">Philosophies of web3</h2>



<p>There are a lot of differing viewpoints on web3, every individual has a slightly different take on it. There are three broad themes that stand out, however. </p>



<h3 id="decentralised">Decentralised</h3>



<p>Blockchain-based technology is inherently distributed (with some esoteric caveats, but we can safely ignore them for now). In a world where the web centres around a handful of major services, where we&#8217;ve seen the harm that the likes of Facebook and YouTube can inflict on society, it&#8217;s not surprising that decentralisation would be a powerful theme drawing in anyone looking for an alternative.</p>



<p>Decentralisation isn&#8217;t new to the Internet, of course: it&#8217;s right there in the name. This giant set of &#8220;<strong>inter</strong>connected <strong>net</strong>works&#8221; has been decentralised from the very beginning. It&#8217;s not perfect, of course: oppressive governments can take control of the borders of their portion of the Internet, and we&#8217;ve come to rely on a handful of web services to handle the trickier parts of using the web. But fundamentally, that decentralised architecture is still there. I can still set up a web site hosted on my home computer, which anyone in the world could access.</p>



<p>I <em>don&#8217;t</em> do that, however, for the same reason that web3 isn&#8217;t immune from centralised services: Centralisation is convenient. Just as we have Facebook, or Google, or Amazon as giant centralised services on the current web, we can already see similar services appearing for web3. For payments, Coinbase has established itself as a hugely popular place exchange cryptocurrencies and traditional currencies. For NFTs, OpenSea is the service where you&#8217;ll find nearly every NFT collection. MetaMask keeps all of your crypto-based keys, tokens, and logins in a single &#8220;crypto wallet&#8221;.</p>



<blockquote><p>Centralisation is convenient.</p></blockquote>



<p>While web3 proponents give a lot of credence to the decentralised nature of cryptocurrency being a driver of popularity, I&#8217;m not so sure. At best, I&#8217;m inclined to think that decentralisation is table stakes these days: you can&#8217;t even get started as a global movement without a strong commitment to decentralisation.</p>



<p>But if decentralisation isn&#8217;t the key, what is?</p>



<h3 id="ownership">Ownership</h3>



<p>When we talk about ownership in web3, NFTs are clearly the flavour of the month, but recent research indicates that the entire NFT market is massively artificially inflated.</p>



<div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Analysis of 6.1 million trades of 4.7 million NFTs shows that the top 10% of traders have traded 97% of NFTs which definitely puts meat on the bones of the hypothesis that a lot of NFT trades are wash sales intended to artificially boost prices. <a href="https://t.co/ufgmhE2iBi">https://t.co/ufgmhE2iBi</a></p>&mdash; Dare Obasanjo (@Carnage4Life) <a href="https://twitter.com/Carnage4Life/status/1465811132954800131?ref_src=twsrc%5Etfw">November 30, 2021</a></blockquote>
</div>



<p>Rather than taking pot-shots at the NFT straw man, I think it&#8217;s more interesting to look at the idea of ownership in terms of <em>attribution</em>. The more powerful element of this philosophy isn&#8217;t about who owns something, it&#8217;s who created it. NFTs do something rather novel with attribution, allowing royalty payments to the original artist every time an NFT is resold. I love this aspect: royalties shouldn&#8217;t just be for movie stars, they should be for everyone.</p>



<p>Comparing that to the current web, take the 3 paragraphs written by Max Read that I quoted above. I was certainly under no <em>technical</em> obligation to show that it was a quote, to attribute it to him, or to link to the source. In fact, it would have been easier for me to just paste his words into this post, and pretend they were my own. I didn&#8217;t, of course, because I feel an <em>ethical</em> obligation to properly attribute the quote.</p>



<p>In a world where unethical actors will automatically copy/paste your content for SEO juice (indeed, I expect this blog post to show up on a bunch of these kinds of sites); where massive corporations will consume everything they can find about you, in order to advertise more effectively to you, it&#8217;s not at all surprising that people are looking for a technical solution for taking back control of their data, and for being properly attributed for their creations.</p>



<blockquote><p>The interesting element of this philosophy isn&#8217;t about who owns something, it&#8217;s who created it.</p></blockquote>



<p>That&#8217;s not to say that existing services discourage attribution: a core function of Twitter is retweets, a core function of Tumblr is reblogging. WordPress still supports trackbacks, even if many folks turn them off these days.</p>



<p>These are all blunt instruments, though, aimed at attributing an entire piece, rather than a more targeted approach. What I&#8217;d really like is a way to easily quote and attribute a small chunk of a post: 3 paragraphs (or blocks, if you want to see where I&#8217;m heading <img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f609.png" alt="?" class="wp-smiley" />), inserted into my post, linking back to where I got them from. If someone chooses to quote some of this post, I&#8217;d love to receive a pingback just for that quote, so it can be seen in the right context.</p>



<p>The functionality provide by Twitter and Tumblr is less of a technologically-based enforcement of attribution, and more of an example of paving the cow path: by and large, people want to properly attribute others, providing the tools to do so can easily become a fundamental part of how any software is used.</p>



<p>These tools only work so long as there&#8217;s an incentive to use them, however. web3 certainly provides the tools to attribute others, but much like SEO scammers copy/pasting blog posts, the economics of the NFT bubble is clearly a huge incentive to ignore those tools and ethical obligations, to the point that existing services have had to build additional features just to detect this abuse.</p>



<div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content"><a href="https://melmagazine.com/en-us/story/art-theft-nfts">Digital Bandits: The New Art Thieves Selling Stolen Works As NFTs</a></blockquote>
</div>



<h3 id="monetisation">Monetisation</h3>



<p>With every major blockchain also being a cryptocurrency, monetisation is at the heart of the entire web3 movement. Every level of <a href="https://web3.foundation/about/">the web3 tech stack</a> involves a cryptocurrency-based protocol. This naturally permeates through the entire web3 ecosystem, where money becomes a major driving factor for every web3-based project.</p>



<p>And so, it&#8217;s impossible to look at web3 applications without also considering the financial aspect. When you have to pay just to participate, you have to ask whether every piece of content you create is &#8220;worth it&#8221;.</p>



<p>Again, let&#8217;s go back to the 3 paragraphs I quote above. In a theoretical web3 world, I&#8217;d publish this post on a blockchain in some form or another, and that act would also likely include noting that I&#8217;d quoted 3 blocks of text attributed to Max Read. I&#8217;d potentially pay some amount of money to Max, along with the fees that every blockchain charges in order to perform a transaction. While this process is potentially helpful to the original author at a first glance, I suspect the second and third order effects will be problematic. Having only just clicked the Publish button a few seconds earlier, I&#8217;m already some indeterminate amount of money out of pocket. Which brings me back to the question, is this post &#8220;worth it&#8221;? Will enough people tip/quote/remix/whatever me, to cover the cost of publishing? When every creative work <em>must</em> be viewed through a lens of financial impact, it fundamentally alters that creative process.</p>



<blockquote><p>When you have to pay just to participate, you have to ask whether every piece of content you create is &#8220;worth it&#8221;.</p></blockquote>



<p>Ultimately, we live in a capitalist society, and everyone deserves the opportunity to profit off their work. But by baking monetisation into the underlying infrastructure of web3, it becomes impossible to opt-out. You either have the money to participate without being concerned about the cost, <em>or</em> you&#8217;re going to need to weigh up every interaction by whether or not you can afford it.</p>



<h2 id="web3-philosophies-in-wordpress">Web3 Philosophies in WordPress</h2>



<p>After breaking it all down, we can see that it&#8217;s not all black-and-white. There are some positive parts of web3, and some negative parts. Not that different to the web of today, in fact. <img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f642.png" alt="?" class="wp-smiley" /> That&#8217;s not to say that either approach is the correct one: instead, we should be looking to learn from both, and produce something better.</p>



<h3 id="decentralised-1">Decentralised</h3>



<p>I&#8217;ve long been a proponent of leveraging the massive install base of WordPress to provide distributed services to anyone. Years ago, I spoke about an idea called &#8220;<a href="https://wordpress.tv/2016/07/02/gary-pendergast-connected-wordpress/">Connected WordPress</a>&#8221; that would do exactly that. While the idea didn&#8217;t gain a huge amount of traction at the time, the DNA of the Connected WordPress concept shares a lot of similar traits to the decentralised nature of web3.</p>



<p>I&#8217;m a big fan of decentralised technologies as a way for individuals to claw back power over their own data from the governments and massive corporations that would prefer to keep it all centralised, and I absolutely think we should be exploring ways to make the existing web more resistant to censorship.</p>



<p>At the same time, we have to acknowledge that there are certainly benefits to centralisation. As long as people have the freedom to choose how and where they participate, and centralised services are required to play nicely with self hosted sites, is there a practical difference?</p>



<p>I quite like how <a href="https://solidproject.org/">Solid</a> allows you have it both ways, whilst maintaining control over your own data.</p>



<h3 id="ownership-attribution"><s>Ownership</s> Attribution</h3>



<p>Here&#8217;s the thing about attribution: you can&#8217;t enforce it with technology alone. Snapchat have indirectly demonstrated exactly this problem: in order to not lose a message, people would screenshot or record the message on their phone. In response, Snapchat implemented a feature to notify the other party when you screenshot a message from them. To avoid this, people will now use a second phone to take a photo or video of the message. While this example isn&#8217;t specifically about attribution, it demonstrates the problem that there&#8217;s no way to technologically restrict how someone interacts with content that you&#8217;ve published, once they&#8217;ve been granted access.</p>



<p>Instead of worrying about technical restrictions, then, we should be looking at how attribution can be made easier.</p>



<p><a href="https://indieweb.org/">IndieWeb</a> is a great example of how this can be done in a totally decentralised fashion.</p>



<h3 id="monetisation-1">Monetisation</h3>



<p>I&#8217;m firmly of the opinion that monetisation of the things you create should be opt-in, rather than opt-out.</p>



<p>Modern society is currently obsessed with monetising everything, however. It comes in many different forms: hustle culture, side gigs, transforming hobbies into businesses, <a href="https://en.wikipedia.org/wiki/Meme_stocks">meme stocks</a>, and cryptocurrencies: they&#8217;re all symptoms of this obsession.</p>



<p>I would argue that, rather than accepting as <em>fait accompli</em> that the next iteration of the web will be monetised to the core, we should be pushing back against this approach. Fundamentally, we should be looking to build for a post scarcity society, rather than trying to introduce scarcity where there previously was none.</p>



<p>While we work towards that future, we should certainly be easier for folks to monetise their work, but the current raft of cryptocurrencies just aren&#8217;t up to the task of operating as&#8230; currencies.</p>



<h2 id="what-should-you-do">What Should You Do?</h2>



<p>Well, that depends on what your priorities are. The conversations around web3 are taking up a lot of air right now, so it&#8217;s possible to get the impression web3 will be imminently replacing everything. It&#8217;s important to keep perspective on this, though. While there&#8217;s a lot of money in the web3 ecosystem right now, it&#8217;s dwarfed by the sheer size of the existing web.</p>



<p>If you&#8217;re excited about the hot new tech, and feeling inspired by the ideas espoused in web3 circles? Jump right in! I&#8217;m certain you&#8217;ll find something interesting to work on.</p>



<p>Always wanted to get into currency speculation, but didn&#8217;t want to deal with all those pesky &#8220;regulations&#8221; and &#8220;safeguards&#8221;? Boy howdy, are cryptocurrencies or NFTs the place for you. (Please don&#8217;t pretend that this paragraph is investment advice, it is nothing of the sort.)</p>



<p>Want to continue building stuff on the web, and you&#8217;re willing to learn new things when you need them, but are otherwise happy with your trajectory? Just keep on doing what you&#8217;re doing. Even if web3 does manage to <a href="https://www.gartner.com/en/documents/3887767/understanding-gartner-s-hype-cycles">live up to the hype</a>, it&#8217;ll take a long time for it to be adopted by the mainstream. You&#8217;ll have years to adapt.</p>



<h2 id="final-thoughts">Final Thoughts</h2>



<p>There are some big promises associated with web3, many of which sound very similar to the promises that were made around web 2.0, particularly around open APIs, and global interoperability. We saw <a href="https://en.wikipedia.org/wiki/Facebook%E2%80%93Cambridge_Analytica_data_scandal">what happened when those kinds of tools go wrong</a>, and web3 doesn&#8217;t really solve those problems. It may exacerbate them in some ways, since it&#8217;s impossible to delete your data from a blockchain.</p>



<p>That said, (and I say this as a WordPress Core developer), just because a particular piece of software is not the optimal technical solution doesn&#8217;t mean it won&#8217;t become the most popular. Market forces can be a far stronger factor that technical superiority. There are many legitimate complaints about blockchain (including performance, bloat, fit for purpose, and security) that have been levelled against WordPress in the past, but WordPress certainly isn&#8217;t slowing down. I&#8217;m not even close to convinced that blockchain is the right technology to base the web on, but I&#8217;ve been doing this for too long to bet everything against it. </p>



<blockquote><p>Markets can remain irrational a lot longer than you and I can remain solvent.</p><cite>—A. Gary Shilling</cite></blockquote>



<p>As for me, well&#8230; <img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f604.png" alt="?" class="wp-smiley" /></p>



<div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Web3? Pass.<br /><br />I’ll wait for Web 3.11 for Workgroups, thanks. <a href="https://t.co/bauv3rH4bh">pic.twitter.com/bauv3rH4bh</a></p>&mdash; Gary (@GaryPendergast) <a href="https://twitter.com/GaryPendergast/status/1467017336121004035?ref_src=twsrc%5Etfw">December 4, 2021</a></blockquote>
</div>



<p>I remain sceptical of web3 as it&#8217;s currently defined, but I think there&#8217;s room to change it, and to adopt the best bits into the existing web. Web 1.0 didn&#8217;t magically disappear when Web 2.0 rolled in, it adapted. Maybe we&#8217;ll look back in 10 years and say this was a time when the web fundamentally changed. Or, maybe we&#8217;ll refer to blockchain in the same breath as pets.com, and other examples from the dotcom boom of the 1990&#8217;s.</p>



<blockquote><p>The Net interprets censorship as damage and routes around it.</p><cite>—John Gilmore</cite></blockquote>



<p>This quote was originally referring to Usenet, but it&#8217;s stayed highly relevant in the decades since. I think it applies here, too: if the artificial scarcity built into web3 behaves too much like censorship, preventing people from sharing what they want to share, the internet (or, more accurately, the billions of people who interact with the internet) will just&#8230; go around it. It won&#8217;t all be smooth sailing, but we&#8217;ll continue to experiment, evolve, and adapt as it changes.</p>



<p>Personally, I think now is a great time for us to be embracing the values and ideals of projects like <a href="https://solidproject.org/">Solid</a>, and <a href="https://indieweb.org/">IndieWeb</a>. Before web3 referred to blockchains, it was more commonly used in reference to the <a href="https://en.wikipedia.org/wiki/Semantic_Web">Semantic Web</a>, which is far more in line with WordPress&#8217; ideals, whilst also matching many of the values prioritised by the new web3. As a major driver of the Open Web, WordPress can help people own their content in a sustainable way, engage with others on their own terms, and build communities that don&#8217;t depend on massive corporations or hand-wavy magical tech solutions.</p>



<p>Don&#8217;t get too caught up in the drama of whatever is the flavour of the month. I&#8217;m optimistic about the long term resilience of the internet, and I think you should be, too. <img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f973.png" alt="?" class="wp-smiley" /></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, 09 Dec 2021 21:16:29 +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:4:"Gary";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:13:"
	
	
	
	
	
	
";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:"WPTavern: Surge: A New Page Caching Plugin for WordPress with No Configuration Required";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://wptavern.com/?p=126693";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:217:"https://wptavern.com/surge-a-new-page-caching-plugin-for-wordpress-with-no-configuration-required?utm_source=rss&utm_medium=rss&utm_campaign=surge-a-new-page-caching-plugin-for-wordpress-with-no-configuration-required";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:3597:"<p>WordPress Core Contributor Konstantin Kovshenin has <a href="https://konstantin.blog/2021/surge-page-caching-plugin-wordpress/">released</a> a new page caching plugin called <a href="https://wordpress.org/plugins/surge/">Surge</a>. Searching the WordPress plugin directory, you will find hundreds of caching and cache purging plugins, but this one stands out from competitors in that it requires no configuration. The plugin starts working as soon as it&#8217;s activated, and there are no options. </p>



<p>What kind of performance improvements can you expect with Surge activated? Kovshenin&#8217;s tests indicate that WordPress site performance on cheap hosting can be significantly improved with the plugin:</p>



<blockquote class="wp-block-quote"><p>Surge stores cache files on the filesystem, leveraging the Linux kernel page cache for efficient in-memory caching and invalidation. In various load tests, Surge has shown to easily handle 1000-2500 requests per second at 100 concurrent, on a cheap single-core virtual server with only 1 GB of memory. That’s over 70x faster than a stock WordPress install with a default theme and no plugins. </p></blockquote>



<p>Kovshenin built Surge because he could not find a suitable plugin to work well with <a href="https://wptavern.com/konstantin-kovshenin-launches-sail-a-cli-tool-for-deploying-to-digital-ocean">Sail</a>, the CLI tool he has been developing for deploying WordPress apps to DigitalOcean.</p>



<p>&#8220;The biggest blocker for me was the configuration, screen after screen after screen, the amount of hoops I had to jump through just to get things working,&#8221; he said. &#8220;And sure, there are on-screen guides and wizards, video tutorials, hundreds of documentation articles, but all I wanted was a page caching plugin, not a rocket (no pun intended). I had to roll my own.&#8221;</p>



<p>In the interest of simplicity, Surge doesn&#8217;t even come with a &#8220;clear cache&#8221; button. Kovshenin said the plugin will automatically invalidate cached entries on various different events, such as when content is updated. He said you can toggle the plugin off and on if for some reason you need to clear the page cache. </p>



<p>&#8220;If you have to flush the cache, it means my invalidation is not good enough for you,&#8221; Kovshenin said in response to Twitter inquiries about no button to purge the cache. &#8220;If you do find yourself flushing the cache every once in a while, do let me know why. I&#8217;m sure there are plenty of cases I haven&#8217;t considered yet.&#8221;</p>



<p>When asked if Surge works with sites that have lots of dynamic content, Kovshenin said only anonymous requests are cached right now. Surge also forces some requests, such as robots.txt and favicon.ico, to be anonymous for better cacheability. </p>



<p>&#8220;Expanding into logged-in territory is something on my list to look at, but not going to make any promises,&#8221; he said.</p>



<p>I tested Surge on a few simple blog sites and found that it works as advertised. On one site it took the GTMetrix Performance score from 91% to 99%. Please note that the plugin requires PHP 7.4+.</p>



<p><a href="https://wordpress.org/plugins/surge/">Surge</a> is available for free on WordPress.org. If you are already using a page caching plugin, you will need to deactivate it if you want to try Surge. Kovshenin cautioned in his announcement post that many managed WordPress hosts already have some built-in caching in place, so it may be a good idea to check with your host before adding a caching plugin.</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, 09 Dec 2021 02:22:30 +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:13:"Sarah Gooding";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:13:"
	
	
	
	
	
	
";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:"WPTavern: Gutenberg 12.1 Fixes Block Appender Layout Shift, Adds Template List Views, and Enhances Global Styles";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://wptavern.com/?p=126698";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:265:"https://wptavern.com/gutenberg-12-1-fixes-block-appender-layout-shift-adds-template-list-views-and-enhances-global-styles?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-12-1-fixes-block-appender-layout-shift-adds-template-list-views-and-enhances-global-styles";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:7784:"<p class="has-drop-cap">Earlier today, Gutenberg 12.1 landed in the WordPress plugin directory. The <a href="https://make.wordpress.org/core/2021/12/08/whats-new-in-gutenberg-12-1-8-december/">latest release</a> was heavy on improvements to the user experience, including a fix for the block appender layout shift, new global styles features, and improved templates list view. Theme authors also have a new flag for enabling all appearance-related tools.</p>



<p>WordPress 5.9 was slated for launch today, but it has been <a href="https://wptavern.com/wordpress-5-9-revised-release-date-confirmed-for-january-25-2022">pushed to January 25, 2022</a>. Contributors needed more time to refine the site editor and related tools bundled alongside the release. Thus far, they are using the extra time by fixing bugs and creating an overall better user experience.</p>



<h2 id="no-more-layout-shift">No More Layout Shift</h2>



<p class="has-drop-cap">If this was the one and only change in Gutenberg 12.1, I would have been the happiest user in the world. Fortunately, there are other nice-to-have items, but my biggest pet peeve in three years of using the block editor has now been fixed.</p>



<p>The block appender (those little <code>+</code> buttons) in the content canvas are now <a href="https://github.com/WordPress/gutenberg/pull/36605">shown using fixed positioning</a>. This means that when you select blocks, particularly those nested within others, the screen no longer bounces around, shifts the layout, or leaves gaps of whitespace in an otherwise-perfect section.</p>



<img />Appender button does not shift layout.



<p>I know from talking to others that this has been a pain point when building complex layouts in the past. For some, they would not use the block editor at all because it was so irritating. If you fall into this camp, it is worth giving it a try once again. It is a marked improvement in the user experience.</p>



<h2 id="global-styles-improvements">Global Styles Improvements</h2>



<p class="has-drop-cap">Users can now <a href="https://github.com/WordPress/gutenberg/pull/36820">define custom gradients</a> via the color palette section in the global styles sidebar. These will be available throughout the site and are not tied to the theme.</p>



<img />Creating a custom gradient.



<p>The palette also <a href="https://github.com/WordPress/gutenberg/pull/36920">shows duotone colors</a> under the same gradient section. However, there is not an option for creating custom duotone filters yet.  It is a read-only section.</p>



<p>The global styles panel also <a href="https://github.com/WordPress/gutenberg/pull/36718">splits typography options</a> between text and link elements, opening the door for other HTML elements in the future.</p>



<img />Link typography section.



<p>Users probably should not change this for links. Instead, they should generally match the surrounding text. If we get text-decoration or similar options in the future, the separation might make more sense. However, altering settings like the font-size or line-height would likely be detrimental to the design.</p>



<h2 id="templates-and-template-parts-views">Templates and Template Parts Views</h2>



<p class="has-drop-cap">Gutenberg 12.1 introduces a new templates and template parts list view from the site editor. The UI for this feature has jumped around over the past few plugin versions. The list was available via the left slide-out panel in the editor for months. Then, it was removed altogether in 11.9. It reappeared between that release and 12.0.</p>



<p>The panel has now been scaled back to include three links for Site, Templates, and Template Parts. The first link brings up the site editor. The others display tables of existing templates.</p>



<img />Templates list view.



<p>Switching between the screens feels slow at the moment. However, this is the 1.0 version of the site editor that WordPress users around the world will see. It will likely change over time. &#8220;The current iteration of the design favors simplicity and usability,&#8221; wrote Riad Benguella in the announcement post. &#8220;Iterations implementing client side navigation and mosaic view might be added in the future.&#8221;</p>



<p>There does not seem to be a way to add custom templates, such as a category or author archive. Clicking on the &#8220;Add New&#8221; button presents options for a Front Page and Search template when using the Twenty Twenty-Two theme.</p>



<p>However, adding a new template part is a much more refined process. After clicking the button to create one, users are presented with an overlay and form as shown in the following screenshot:</p>



<img />Creating a custom template part.



<p>Users can give it a custom name and choose between three allowed areas: general, header, and footer. After creating a new part, users are taken to the editor.</p>



<p>When viewing the template part list again, it displays the user who created it and has an options dropdown (ellipsis button). Currently, the only action is to delete the part.</p>



<img />Template Parts list view.



<p>I would love to see top-level templates receive the same treatment as template parts when creating a new one. While there are some slight differences between them, both are templates at the end of the day. The user experience would benefit if the creation processes matched.</p>



<p>Creating custom templates outside of the default list from this screen would also help designers build themes visually from the site editor.</p>



<h2 id="empty-navigation-fallback">Empty Navigation Fallback</h2>



<p class="has-drop-cap">The latest release introduced a fallback for empty Navigation menu block. Ultimately, if no menu is found, it will <a href="https://github.com/WordPress/gutenberg/pull/36724">display the Page List block</a>. Depending on how many pages a user&#8217;s site has, this can quickly get out of hand, as shown in the following screenshot of Twenty Twenty-Two:</p>



<img />Navigation block fallback with long page list.



<p>Theme developers can <a href="https://github.com/WordPress/gutenberg/pull/36850">overwrite this fallback</a> via the <code>block_core_navigation_render_fallback</code> filter hook by either returning a <code>false</code> value or a set of valid child blocks for the Navigation parent. Theme authors, I invite them to make generous use of this filter hook.</p>



<h2 id="noteworthy-block-theme-items">Noteworthy Block Theme Items</h2>



<p class="has-drop-cap">For block theme developers, the standard <a href="https://github.com/WordPress/gutenberg/pull/36647">template-related folders have been renamed</a>. The old names will continue working, but authors should update the following in their themes:</p>



<ul><li><code>/block-templates</code> renamed to <code>/templates</code></li><li><code>/block-template-parts</code> renamed to <code>/parts</code></li></ul>



<p>This change cleans up the top-level theme directory, but it also creates a <a href="https://github.com/WordPress/gutenberg/issues/36548">path toward more standardization</a> in the future. There is already an open ticket for <code>/patterns</code>, and a <code>/styles</code> folder is possible.</p>



<p>Gutenberg 12.1 also <a href="https://github.com/WordPress/gutenberg/pull/36646">introduces an <code>appearanceTools</code> flag</a> for <code>theme.json</code>, allowing theme authors to enable support for all current and future border, color, spacing, and typography options. I covered this in more detail in the <a href="https://wptavern.com/gutenberg-12-0-focuses-on-cleanup-and-minor-enhancements">Gutenberg 12.0 post</a>, which had erroneously marked the feature as bundled with the last release.</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, 09 Dec 2021 01:03:45 +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:"Justin Tadlock";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:13:"
	
	
	
	
	
	
";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:74:"WPTavern: Ask the Bartender: Is There a Starter for Building Block 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:30:"https://wptavern.com/?p=126654";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:189:"https://wptavern.com/ask-the-bartender-is-there-a-starter-for-building-block-themes?utm_source=rss&utm_medium=rss&utm_campaign=ask-the-bartender-is-there-a-starter-for-building-block-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:6328:"<blockquote class="wp-block-quote">
<p>I read some posts from &#8220;Ask the Bartender,&#8221; and I appreciate it a lot! Thanks. I have a question now. :)</p>

<p>I want to refine my WordPress theme development process, which is:</p>

<ol>
<li>To make a unique-creative design with Adobe XD or Figma.</li>
<li>To convert it to static HTML using VS Code with Bootstrap.</li>
<li>In WordPress, create custom post types with PODS.</li>
<li>To convert the static HTML in WP templates with Timber.</li>
</ol>

<p>Based on my experience, this process is the best for me, but I want to integrate my themes better with WP-Blocks.</p>

<p>So, my question is: is there some starter-theme ready to use with blocks as the main theme and later extend it with a child theme with my custom theme?</p>

<cite>Federico</cite>
</blockquote>



<p class="has-drop-cap">This question depends on one of two things: Do you want to build classic themes with block support or full-blown block themes? How you approach projects going forward will depend on the answer to that. It was unclear which direction you prefer from your question, so I will tackle both.</p>



<p>It also seems like you are more interested in child theming. For clarity, I consider &#8220;starter&#8221; themes a starting point for building standalone or custom parent themes. My guess is that you want something closer to a blank canvas parent theme that does not have an opinionated set of default styles.</p>



<p>As for your tools, I have almost zero experience with any of them. I suspect you can maintain a similar process by sticking to classic themes with block support. However, with block themes, you will likely want to switch over to visually designing in the upcoming site editor and exporting the templates. It would cut out a lot of the steps you usually take.</p>



<h2 id="classic-with-block-support">Classic With Block Support</h2>



<p class="has-drop-cap">I tend to hype WordPress theming with blocks, but let us be realistic. Most theme authors will not take that step forward when WordPress 5.9 rolls around. And, there is no reason for everyone to dive face-first into something that is not 100% on par with what you can build going the traditional route. So, classic themes are the safest bet for a while.</p>



<p>Starter themes or frameworks are a dime a dozen in the classic theming world. My advice is to continue using what suits you best. Adding block support is mostly a matter of some style adjustments and possibly a <code>theme.json</code> file.</p>



<p>If you want to ease yourself into integrating with blocks, start learning the <a href="https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-json/">global styles and settings system</a> (i.e., <code>theme.json</code>). It works with any type of theme, so you do not have to transition entirely over to block theming if you are not ready. This also allows you to continue using whatever setup you are accustomed to with one additional file. It has also been a part of WordPress since 5.8, so you can use it now without relying on the Gutenberg plugin or waiting for 5.9 to launch.</p>



<img />GoDaddy&#8217;s Go theme.



<p>If you really need a starting point or parent theme in the classic + blocks space, I recommend <a href="https://wordpress.org/themes/go/">Go by GoDaddy</a>. The block-first project gets routine updates, supports CoBlocks and WooCommerce, and has a large enough user base to keep the ecosystem around it going.</p>



<h2 id="building-block-themes">Building Block Themes</h2>



<p class="has-drop-cap">If you want to move forward and put yourself in a solid position for WordPress&#8217;s future, block theming is the way to go. Sooner or later, almost every theme author will need to build on top of it. In this context, it also makes it easy to answer your question. And, I have two options for you.</p>



<p>The go-to choice for many theme authors is to learn and build from the latest default WordPress theme. In this case, it is <a href="https://wptavern.com/first-look-at-wordpress-upcoming-twenty-twenty-two-default-theme-the-most-flexible-default-theme-ever-created-for-wordpress">Twenty Twenty-Two</a>. It was supposed to be ready by December 8, along with WordPress 5.9. However, the official release date is now <a href="https://wptavern.com/wordpress-5-9-revised-release-date-confirmed-for-january-25-2022">January 25, 2022</a>.</p>



<img />Twenty Twenty-Two screenshots.



<p>While it has not officially launched yet, it is a solid starting point if you want to release a child theme in the next couple of months on top of the latest default.</p>



<p>The goal is for Twenty Twenty-Two to ship with <a href="https://wptavern.com/skins-are-back-in-style-proposal-for-themes-to-bundle-user-selectable-design-variations">alternate color palettes and fonts</a>. However, this feature is not ready yet. In the meantime, these custom designs are <a href="https://github.com/WordPress/theme-experiments/pull/292">available as child themes</a> that you can tinker around with. They are just as good of a starting point as any.</p>



<p>However, you may be looking for something a bit more mature &#8212; as mature as anything can be for something yet to officially launch. Automattic&#8217;s <a href="https://wordpress.org/themes/blockbase/">Blockbase parent theme</a> is the easy choice.</p>



<img />Custom Blockbase child theme.



<p>Blockbase has a low-key design that makes it easy to overwrite via child themes. It was literally built for this purpose. The Automattic Theme Team rolled out the <a href="https://wptavern.com/videomaker-block-theme-targets-film-directors-and-video-creators">Videomaker child theme</a> for it yesterday. That makes six altogether, which are available via the company&#8217;s <a href="https://wordpress.org/themes/author/automattic/">WordPress.org profile</a>. Not only is it a good starting point, but it has plenty of examples to learn from.</p>



<p>Plus, you do not need to dirty your hands with code if you do not want to. By installing and activating the accompanying <a href="https://wptavern.com/automattic-theme-team-releases-a-plugin-to-build-blockbase-child-themes">Create Blockbase Theme plugin</a>, you can build child themes directly from the site editor and export them.</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, 08 Dec 2021 00:42: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:14:"Justin Tadlock";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:13:"
	
	
	
	
	
	
";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:154:"WPTavern: Vizio Responds to Software Freedom Conservancy’s GPL Compliance Lawsuit: Will Not Release Source Code, Files to Move Case to US Federal Court";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://wptavern.com/?p=126529";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:341:"https://wptavern.com/vizio-responds-to-software-freedom-conservancys-gpl-compliance-lawsuit-will-not-release-source-code-files-to-move-case-to-us-federal-court?utm_source=rss&utm_medium=rss&utm_campaign=vizio-responds-to-software-freedom-conservancys-gpl-compliance-lawsuit-will-not-release-source-code-files-to-move-case-to-us-federal-court";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:3735:"<p>In October 2021, the Software Freedom Conservancy (SFC) <a href="https://wptavern.com/software-freedom-conservancy-takes-on-vizio-in-lawsuit-alleging-gpl-violations">initiated a lawsuit against Vizio</a>, an American TV manufacturer, for shipping products with copyleft licenses but refusing to provide the source code after multiple attempts at contact since 2018.</p>



<p>The lawsuit is historic in its approach, because it focuses on consumer rights conferred by copyleft licenses and SFC is filing as a third-party beneficiary.</p>



<p>Vizio has responded by <a href="https://storage.courtlistener.com/recap/gov.uscourts.cacd.837808/gov.uscourts.cacd.837808.1.0.pdf">filing a request to remove the case from the California State Court</a> and move it into US federal court. The company contends that the computer programs and source code at issue in VIZIO’s SmartCast operating system &#8220;fall within the &#8216;subject matter of copyright.'&#8221; </p>



<p>Vizio&#8217;s legal representation cited several past cases involving open source licenses that were litigated within the scope of federal copyright law:</p>



<blockquote class="wp-block-quote"><p>&#8220;Although plaintiff asserts claims against VIZIO under the guise of a breach of contract claim, that claim is based solely on rights that are qualitatively equivalent to those protected by federal copyright law. It is well established that exceeding the scope of a license by violating its &#8216;conditions&#8217; gives rise to a claim for copyright infringement.&#8221;</p></blockquote>



<p>The Software Freedom Conservancy published an <a href="https://sfconservancy.org/blog/2021/nov/30/vizio-update-0/">update on the lawsuit</a>, speculating on Vizio&#8217;s intent based on its initial response:</p>



<blockquote class="wp-block-quote"><p>Vizio&nbsp;<a href="https://storage.courtlistener.com/recap/gov.uscourts.cacd.837808/gov.uscourts.cacd.837808.1.0.pdf">filed a request to “remove” the case from California State Court (into US federal court)</a>, which indicates Vizio&#8217;s belief that consumers have no third-party beneficiary rights under&nbsp;<a href="https://sfconservancy.org/copyleft-compliance/glossary.html#copyleft">copyleft</a>. In other words, Vizio’s answer to this complaint is&nbsp;<em>not</em>&nbsp;to comply with the copyleft licenses, but instead imply that Software Freedom Conservancy — and all other purchasers of the devices who might want to assert their right under GPL and LGPL to complete, corresponding source — have no right to even&nbsp;<strong>ask</strong>&nbsp;for that source code.</p><p>That’s right: Vizio’s filing implies that only copyright holders, and&nbsp;<strong>no one else</strong>, have a right to ask for source code under the&nbsp;GPL&nbsp;and&nbsp;LGPL.</p></blockquote>



<p>SFC Executive Director Karen Sandler and Policy Fellow Bradley M. Kuhn, who co-penned the update, said they expected Vizio held this position since the company ignored their requests during discussions in the past years. They characterized Vizio&#8217;s recent filing as &#8220;a disturbing step further.&#8221;</p>



<p>&#8220;Vizio’s strategy is to deny consumers their rights under copyleft licenses, and we intend to fight back,&#8221; SFC representatives said.</p>



<p>If you want to follow the progress on the case, <a href="https://www.courtlistener.com/docket/61578720/software-freedom-conservancy-inc-v-vizio-inc/">the filings are public</a>. SFC has paid the Pacer fees and used <a href="https://free.law/recap">the Recap</a> browser plugin to make all the documents in the case freely available via <a href="https://www.courtlistener.com/recap/">the Recap project archives</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, 07 Dec 2021 22:53:31 +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:13:"Sarah Gooding";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:13:"
	
	
	
	
	
	
";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:"WordPress.org blog: WordPress 5.9 Beta 2";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=11794";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:56:"https://wordpress.org/news/2021/12/wordpress-5-9-beta-2/";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:6101:"<p>WordPress 5.9 Beta 2 is now available for testing!</p>



<p><strong>This software version is still under development.</strong> Please do not run this software on a production site. Instead, install it on a test site, where you can try out the newest features to get a feel for how they will work on your site.</p>



<p>You can test the WordPress 5.9 Beta 2 in three ways:</p>



<p><strong>Option 1:</strong> Install and activate the <strong><a href="https://wordpress.org/plugins/wordpress-beta-tester/">WordPress Beta Tester</a> </strong>plugin (select the “Bleeding edge” channel and “Beta/RC Only” stream).</p>



<p><strong>Option 2:</strong> Direct download the beta version here (<a href="https://wordpress.org/wordpress-5.9-beta2.zip"><strong>zip</strong></a>).</p>



<p><strong>Option 3:</strong> When using WP-CLI to upgrade from Beta 1 to Beta 2 on a case-insensitive filesystem, please use the following command sequence:<br /></p>



<p>Command One: </p>



<pre class="wp-block-code"><code>wp core update --version=5.9-beta1 </code></pre>



<p>Command Two: </p>



<pre class="wp-block-code"><code> wp core update --version=5.9-beta2 --force </code></pre>



<p>The current target for the final release of 5.9 is January 25, 2022, which is just seven weeks away. Your help testing this version is a vital part of making this release as good as it can be.</p>



<h2 id="some-highlights"><strong>Some Highlights</strong></h2>



<p>Since<a href="https://wordpress.org/news/2021/06/wordpress-5-8-beta-1/"> </a><a href="https://wordpress.org/news/2021/11/wordpress-5-9-beta-1/">Beta 1</a>, <a href="https://core.trac.wordpress.org/query?status=closed&changetime=11%2F30%2F2021..12%2F07%2F2021&milestone=5.9&group=component&max=500&col=id&col=summary&col=owner&col=type&col=priority&col=component&col=version&order=priority">24</a> bugs have been fixed. Here are a few of the changes you will find in Beta 2:</p>



<ul><li>Block Editor: Remove navigation areas (<a href="https://core.trac.wordpress.org/ticket/54506">#54506</a>)</li><li>Block Editor: Navigation block view JavaScript error (<a href="https://core.trac.wordpress.org/ticket/54456">#54456</a>)</li><li>Block Editor: Block template theme error related to child themes (<a href="https://core.trac.wordpress.org/ticket/54515">#54515</a>)</li><li>General: Fixing existing links to Customizer when the Site Editor is enabled (<a href="https://core.trac.wordpress.org/ticket/54460">#54460</a>)</li><li>Media: Media library showing only the selected image (<a href="https://core.trac.wordpress.org/ticket/53765">#53765</a>)</li><li>Media: Fatal error uploading media on PHP8 (<a href="https://core.trac.wordpress.org/ticket/54385">#54385</a>)</li><li>REST API: Add Global Styles REST API endpoints from Gutenberg into Core (<a href="https://core.trac.wordpress.org/ticket/54336">#54336</a>)</li></ul>



<p>Also, note that some users testing 5.9 Beta 1 faced some fatal errors upon upgrade. In turn, these errors revealed the need for some extra work on the filesystem and upgrader.&nbsp;Those fatal errors are no longer a problem, and the enhancements will be part of version 6.0.</p>



<h2 id="how-you-can-help"><strong>How You Can Help</strong></h2>



<p><strong>Do some testing!</strong></p>



<p><a href="https://make.wordpress.org/core/handbook/testing/beta-testing/">Testing for bugs</a> is vital for polishing the release in the beta stage and a great way to contribute.&nbsp;</p>



<p>If you think you’ve found a bug, please post to the <a href="https://wordpress.org/support/forum/alphabeta/">Alpha/Beta</a> area in the support forums. If you’re comfortable writing a reproducible <a href="https://make.wordpress.org/core/reports/">bug report</a>, file one on <a href="https://core.trac.wordpress.org/newticket">WordPress Trac</a>. That’s also where you can find a list of <a href="https://core.trac.wordpress.org/tickets/major">known bugs</a>.</p>



<h2 id="where-can-i-get-more-information">Where can I get more information?</h2>



<p>In the coming weeks, follow the <a href="https://make.wordpress.org/core/">Make WordPress Core blog</a> for <a href="https://make.wordpress.org/core/tag/5-9+dev-notes/">5.9-related developer notes</a> that cover these items in detail.</p>



<p>So far, contributors have fixed <a href="https://core.trac.wordpress.org/query?status=closed&group=component&milestone=5.9&resolution=fixed">305 tickets in WordPress 5.9</a>, including <a href="https://core.trac.wordpress.org/query?status=closed&status=reopened&changetime=..12%2F07%2F2021&type=enhancement&type=feature+request&milestone=5.9&group=component&col=id&col=summary&col=type&col=status&col=milestone&col=changetime&col=owner&col=priority&col=keywords&order=changetime">110 new features and enhancements</a>. More bug fixes are on the way with your help through testing.</p>



<p><em>Props to</em><a href="https://profiles.wordpress.org/chanthaboune/"><em> </em></a><em><a href="https://profiles.wordpress.org/psykro/" class="mention"><span class="mentions-prefix">@</span>psykro</a>, <a href="https://profiles.wordpress.org/estelaris/" class="mention"><span class="mentions-prefix">@</span>estelaris</a>, <a href="https://profiles.wordpress.org/hellofromtonya/" class="mention"><span class="mentions-prefix">@</span>hellofromtonya</a>, <a href="https://profiles.wordpress.org/marybaum/" class="mention"><span class="mentions-prefix">@</span>marybaum</a>, <a href="https://profiles.wordpress.org/webcommsat/" class="mention"><span class="mentions-prefix">@</span>webcommsat</a>, <a href="https://profiles.wordpress.org/cbringmann/" class="mention"><span class="mentions-prefix">@</span>cbringmann</a>, <a href="https://profiles.wordpress.org/davidb/" class="mention"><span class="mentions-prefix">@</span>davidb</a>, <a href="https://profiles.wordpress.org/audrasjb/" class="mention"><span class="mentions-prefix">@</span>audrasjb</a>, and </em><a href="https://profiles.wordpress.org/pbiron/" class="mention"><span class="mentions-prefix">@</span>pbiron</a><em> for contributions to this post.</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, 07 Dec 2021 22:02:19 +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:"Jonathan Bossenger";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:13:"
	
	
	
	
	
	
";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:93:"WordCamp Central: WordCamp Taiwan 2021 is coming on December 11-12. Get Your Free Ticket 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:39:"https://central.wordcamp.org/?p=3143489";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:119:"https://central.wordcamp.org/news/2021/12/07/wordcamp-taiwan-2021-is-coming-on-december-11-12-get-your-free-ticket-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:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2919:"<img src="https://taiwan.wordcamp.org/2021/files/2021/12/WordCampTaiwan2021-KV-1.jpg" alt="" />



<p class="has-text-align-center"><strong>WFH (work from home) cannot stop us.<br />Let’s WFH (WordPress from home).</strong></p>



<p>Tickets for the <a href="https://taiwan.wordcamp.org/2021/">first-ever WordCamp Taiwan</a> are now available! WordCamp Taiwan is a regional online WordCamp happening on December 11-12, 2021. By purchasing a ticket, you can attend the event online OR participate in a local in-person watch party of the camp organized by a local WordPress meetup group in Taiwan.</p>



<p><strong>And yes &#8211; you guessed it right, tickets for WordCamp Taiwan 2021 are completely free!</strong></p>



<div class="wp-block-buttons">
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-text-color" href="https://taiwan.wordcamp.org/2021/tickets/" target="_blank" rel="noreferrer noopener">Get your Free WordCamp Taiwan 2021 Ticket!</a></div>
</div>



<p>The following local meetups are organizing watch parties for WordCamp Taiwan! If you are based out of Taiwan, join us for one of these events:</p>



<ul><li><a rel="noopener" href="https://hyc.im/kaohsiung2112" target="_blank">12/11 Kaohsiung City</a></li><li><a rel="noopener" href="https://hyc.im/hsinchu2112" target="_blank">12/12 Hsinchu</a></li><li><a rel="noopener" href="https://hyc.im/tpms2112" target="_blank">12/11 + 12/12 Taipei</a></li><li><a rel="noopener" href="https://hyc.im/tyc2112" target="_blank">12/11 + 12/12 Taoyuan</a></li><li><a rel="noopener" href="https://hyc.im/taichung2112" target="_blank">12/11 + 12/12 Taichung</a> </li></ul>



<p>WordCamp Taiwan 2021 is a two-day event and has <a rel="noopener" href="https://taiwan.wordcamp.org/2021/schedule/" target="_blank">one session track and one workshop track</a>. You can also watch live streaming for the session track on <a rel="noopener" href="https://www.youtube.com/channel/UCLfbwVFPm9C8coz28qOudmA" target="_blank">YouTube</a>. However, our workshops are exclusive for attendees who have tickets. Check out our event schedule to learn about <a href="https://taiwan.wordcamp.org/2021/schedule/">all the exciting sessions</a> we have in store for you.</p>



<p>The online event including networking will also take place on <a href="https://gather.town/">Gather Town</a> (a virtual networking tool). By joining us on our Gather Town space, you will be able to roam in WordCamp virtual world and connect with fellow attendees while watching sessions online. You will need a free WordCamp Taiwan ticket to gain access to our Gather Town space.</p>



<p>We have sold most of our available tickets already and we only have a few more tickets left. So why wait, <a href="https://taiwan.wordcamp.org/2021/tickets/">get your ticket now</a>, and join us for WordCamp Taiwan 2021! </p>



<p>We look forward to seeing you this weekend! </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, 07 Dec 2021 05:36:28 +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:"Yuli Yang";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:13:"
	
	
	
	
	
	
";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:106:"WPTavern: Gravatar Says It Was Not Hacked After “Have I Been Pwned” Service Notifies Users of a Breach";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://wptavern.com/?p=126546";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:245:"https://wptavern.com/gravatar-says-it-was-not-hacked-after-have-i-been-pwned-service-notifies-users-of-a-breach?utm_source=rss&utm_medium=rss&utm_campaign=gravatar-says-it-was-not-hacked-after-have-i-been-pwned-service-notifies-users-of-a-breach";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:8925:"<p>Gravatar is fielding questions today after &#8220;Have I Been Pwned,&#8221; a data breech checker service, <a href="https://twitter.com/haveibeenpwned/status/1467630383990640642">tweeted</a> <strong>&#8220;<em>New scraped data: Gravatar had 167M profiles scraped in Oct last year via an enumeration vector. 114M of the MD5 email address hashes were subsequently cracked and distributed alongside names and usernames.</em>&#8220;</strong> It claims 72% of these email addresses were already logged with the service.  </p>



<p>The tweet referenced a BleepingComputer article from October 2020 titled, &#8220;<a href="https://www.bleepingcomputer.com/news/security/online-avatar-service-gravatar-allows-mass-collection-of-user-info/">Online avatar service Gravatar allows mass collection of user info</a>,&#8221; which explains how the hashes were originally obtained. After Italian security researcher Carlo Di Dato was unable to get an answer from Gravatar, he demonstrated to the publication how one could access user data by using a numeric ID associated with each profile to fetch it. He then wrote a test script that sequentially visits profile URLs from IDs 1 to 5000 and said he was able to collect JSON data of the first 5000 Gravatar users with no issues.</p>



<p>Many Gravatar users were startled and upset by notices from Firefox Monitor and Have I Been Pwned this morning, stating that their information had appeared in a new data breach.</p>



<div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Oh cmon, way to ruin my day <a href="https://twitter.com/gravatar?ref_src=twsrc%5Etfw">@gravatar</a> <a href="https://t.co/FsmxkL7zpq">pic.twitter.com/FsmxkL7zpq</a></p>&mdash; Lundy (@simplyeazy) <a href="https://twitter.com/simplyeazy/status/1467788669348036615?ref_src=twsrc%5Etfw">December 6, 2021</a></blockquote>
</div>



<p>The BleepingComputer article has gained more attention after Have I Been Pwned&#8217;s disclosure today, spurring Gravatar to <a href="https://twitter.com/gravatar/status/1467769008963436548">respond on Twitter</a>:  </p>



<blockquote class="wp-block-quote"><p>Gravatar helps establish your identity online with an authenticated profile. We’re aware of the conversation online that claims Gravatar was hacked, so we want to clear up the misinformation. </p><p>Gravatar was not hacked. Our service gives you control over the data you want to share online. The data you choose to share publicly is made available via our API. Users can choose to share their full name, display name, location, email address, and a short biography. </p><p>Last year, a security researcher scraped public Gravatar data &#8211; usernames and MD5 hashes of email addresses used to reference users’ avatars by abusing our API. We immediately patched the ability to harvest the public profile data en masse. If you want to learn more about how Gravatar works or adjust the data shared on your profile, please visit <a rel="noreferrer noopener" href="https://t.co/B5nhjnQolp" target="_blank">Gravatar.com</a>.</p></blockquote>



<p>Gravatar does not consider the incident to be a data breach, which is why the service did not disclose the changes made in response to the security researcher in 2020. </p>



<p>The Automattic-owned service is used across WordPress websites, GitHub, Stackoverflow, and other places online. Security researchers and privacy advocates have warned about privacy attacks on Gravatar for years. Many have demonstrated how readily available user information is and how easy it is to scrape it.</p>



<div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Someone did it a bit bigger recently. Seems there is nothing new in the world. <a href="https://twitter.com/hashtag/gravatar?src=hash&ref_src=twsrc%5Etfw">#gravatar</a> <a href="https://t.co/5ZxyGYYBR0">https://t.co/5ZxyGYYBR0</a></p>&mdash; jasperwillem<img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f69c.png" alt="?" class="wp-smiley" /><img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f3d7.png" alt="?" class="wp-smiley" /><img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f41f.png" alt="?" class="wp-smiley" /><img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f696.png" alt="?" class="wp-smiley" /> (@jasperwillem) <a href="https://twitter.com/jasperwillem/status/1467675233662423043?ref_src=twsrc%5Etfw">December 6, 2021</a></blockquote>
</div>



<p>In July 2013, Dominique Bongard spoke at Passwordscon in Las Vegas about <a href="https://www.youtube.com/watch?v=fdphoc3XUF8">De-anonymizing Members of French Political Forums</a>. He explained how a custom crawler could be written to acquire MD5 hashes for forum users and demonstrated that an attack with custom cracking software was able to recover 70% of Gravatar users&#8217; email addresses.</p>



<p>Bogard noted that de-anonymizing members of political forums can be particularly dangerous in places where the forums&#8217; users have no constitutional right to free speech, or where participants may be likely to get harassed or attacked. </p>



<p>Wordfence <a href="https://www.wordfence.com/blog/2016/12/gravatar-advisory-protect-email-address-identity/">published an advisory</a> regarding Gravatar in 2016, which referenced Bongard&#8217;s research, as well earlier work done in 2009 where a researcher proved that he could <a rel="noreferrer noopener" href="http://www.developer.it/post/gravatars-why-publishing-your-email-s-hash-is-not-a-good-idea" target="_blank">reverse engineer ~10% of gravatar hashes into email addresses</a>.</p>



<p>Wordfence founder and CEO Mark Maunder explained how using email address hashes can lead to people to googling the extracted hash to find other websites and services that an individual is using. </p>



<p>&#8220;For example: A user may be comfortable having their full name and profile photo appear on a website about skiing,&#8221; Maunder said. &#8220;But they may not want their name or identity exposed to the public on a website specializing in a medical condition. Someone researching this individual could extract their Gravatar hash from the skiing website along with their full name. They could then Google&nbsp;the hash and determine that the individual suffers from a medical condition they wanted to keep private.&#8221;</p>



<p>Many Gravatar users were not satisfied with the service&#8217;s explanation that all of the information users entered was public, which disqualified the incident from being labeled a breach. In the same explanation, however, the service claims the API was abused, instead of admitting that it was vulnerable and could have been better protected. </p>



<p>After years of researchers demonstrating that this was possible, is scraping Gravatar an unethical data acquisition because the scraper is abusing the service&#8217;s architecture? Or is it unethical that Gravatar made it possible to harvest profile data en masse for years?</p>



<div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">That sounds like your data was accessed in a way you didn't intend (if only there was a word for that), but you didn't mean to be?</p>&mdash; Christopher Foster (@CF99) <a href="https://twitter.com/CF99/status/1467818837810757636?ref_src=twsrc%5Etfw">December 6, 2021</a></blockquote>
</div>



<p>&#8220;If someone is able to use an API for other than its intended purpose and can gather information which otherwise wouldn&#8217;t be available through &#8216;standard&#8217; means&#8230; it&#8217;s a breach,&#8221; Twitter user @RegGBlinker commented on the matter.</p>



<p>Gravatar undoubtedly wants to minimize the damage done by the breach notices sent out this morning to its users, but making this an issue of semantics was not reassuring. Most users did not intend to share their Gravatar emails with whoever has the motivation to scrape the data that was exposed for harvesting. Even if that data was dumped through &#8220;abuse&#8221; of their API, it feels like a breach to those who expected that user data would not be available for distribution elsewhere.</p>



<p>The incident serves as a reminder that, as Gravatar emphasized today, the data users choose to share publicly is made available by the service&#8217;s API and is not private. As a user, there are risks to enjoying the convenience of not having to upload your profile photo multiple times across various websites. Publishers who want their sites to offer a more privacy-conscious option should look to alternatives like <a href="https://wptavern.com/privacy-conscious-wordpress-plugin-caches-and-serves-gravatar-images-locally">Local Gravatars</a> or <a href="https://wptavern.com/privacy-first-gravatar-replacement-pixel-avatars-module-released-for-the-toolbelt-wordpress-plugin">Pixel Avatars</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, 07 Dec 2021 01:39: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:13:"Sarah Gooding";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:42:"Requests_Utility_CaseInsensitiveDictionary":1:{s:7:"*data";a:8:{s:6:"server";s:5:"nginx";s:4:"date";s:29:"Wed, 29 Dec 2021 13:09:52 GMT";s:12:"content-type";s:8:"text/xml";s:4:"vary";s:15:"Accept-Encoding";s:13:"last-modified";s:29:"Wed, 29 Dec 2021 12:45:07 GMT";s:15:"x-frame-options";s:10:"SAMEORIGIN";s:4:"x-nc";s:9:"HIT ord 2";s:16:"content-encoding";s:2:"br";}}s:5:"build";s:14:"20170131231416";}