CINXE.COM
Human Who Codes Newsletter - Chrome
<!DOCTYPE html><html lang="en" prefix="og:http://ogp.me/ns#"><head><meta name="viewport" content="width=device-width, initial-scale=1"/><script defer="" data-cfasync="false" src="https://cdn.kit.com/pages/js/runtime-838763a89775b3f11d2a.js"></script><script defer="" data-cfasync="false" src="https://cdn.kit.com/pages/js/creator-profile-v2-post-6a5316716701f8698eee.chunk.js"></script><script data-cfasync="false">window.props = {"pageTitle":"Post","currentPageId":null,"currentPageType":"post","templateName":"hudson","properties":{"cardColor":"#ffffff","buttonText":"Subscribe","accentColor":"#5678ff","bodyTextColor":"#373f45","backgroundColor":"#f3f6f9","bodyFontFamily":"Charter, Georgia, Times, 'Times New Roman', serif","bodyFontWeight":400,"buttonTextColor":"#ffffff","headingTextColor":"#373f45","headingFontFamily":"Charter, Georgia, Times, 'Times New Roman', serif","headingFontWeight":700,"backgroundTextColor":"#373f45"},"data":{"bio":"A once-per-month newsletter discussing topics important to senior-level software engineers, with a particular focus on frontend technology and leadership.","name":"Human Who Codes Newsletter","byline":"Nicholas C. Zakas","imageUrl":"https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/jEXCgZYDxkeevYrvt2o4fK","seoVersion":5,"navigationName":"Human Who Codes LLC","seoImage":"https://functions-js.convertkit.com/cp-social-image?accent=%235678ff&account=343082&avatar=https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F2dCejp6yj6tBWKNzNYcedy%2FjEXCgZYDxkeevYrvt2o4fK&bg=%23f3f6f9&byline=Nicholas+C.+Zakas&headline=Human+Who+Codes+Newsletter&version=5","seoFavicon":"https://pages.convertkit.com/templates/favicon.ico"},"pages":[{"pageType":"posts","displayName":"Posts","url":"/profile/posts","id":665335,"data":{}}],"accountId":343082,"profileUrl":"https://newsletter.humanwhocodes.com/profile","siteKey":"0x4AAAAAAAYy1pe6L_wKYCMp","canonicalUrl":"https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-chrome","poweredByUrl":"https://kit.com/features/forms?utm_campaign=poweredby&utm_content=newsletter_feed&utm_medium=referral&utm_source=dynamic","rebrand":true,"post":{"id":7424198,"title":"Human Who Codes Newsletter - Chrome","slug":"human-who-codes-newsletter-chrome","status":"published","readingTime":5,"campaignCompletedAt":"2024-12-03T14:13:53.000Z","publishedAt":"2024-12-03T14:13:53.000Z","orderByDate":"2024-12-03T14:13:53.000Z","timeAgo":"3 months","thumbnailUrl":"https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/7aXmyMiXV5URxEC1d6UbaK","thumbnailAlt":"","path":"posts/human-who-codes-newsletter-chrome","url":"https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-chrome","isPaid":null,"introContent":"Thoughts on Chrome That ruling stated that Google had an illegal monopoly on search and excluded competition by paying other browsers to feature Google search as their default search engine. Subsequently, the U.S. Department of Justice requested that a judge force Google to sell off its own browser, Chrome, as well as stop all exclusive search deals (among other concessions). This represents the most significant legal loss for a tech company in the United States since Microsoft was ordered to...","campaignId":17414865,"publicationId":13960466,"metaDescription":null},"content":"\n<table><tbody><tr><td>\n<h1>Thoughts on Chrome</h1>\n<p>That ruling stated that Google had an illegal monopoly on search and excluded competition by paying other browsers to feature Google search as their default search engine. Subsequently, the U.S. Department of Justice requested that a judge force Google to <a href=\"https://www.cnn.com/2024/11/20/business/google-sell-chrome-justice-department/index.html\" target=\"_blank\">sell off its own browser</a>, Chrome, as well as stop all exclusive search deals (among other concessions). This represents the most significant legal loss for a tech company in the United States since <a href=\"https://money.cnn.com/2001/11/01/news/microsoft_chronology/\" target=\"_blank\">Microsoft was ordered to be split in two</a> in 2001 following a ruling that they held an illegal monopoly in operating systems.</p>\n<p>If you’re unfamiliar with the Microsoft case, Microsoft appealed and the company avoided being split up. Google is likely headed for a similar appeal, but will they succeed? And would such success be a good thing?</p>\n<p><strong>Maintaining a browser is costly.</strong> While selling Chrome might initially seem effective for limiting Google’s search dominance and user tracking capabilities, it presents significant challenges. Development and upkeep of a web browser engine requires substantial financial resources, which led <a href=\"https://www.extremetech.com/computing/148312-opera-drops-presto-switch-to-google-and-apples-webkit-rendering-engine\" target=\"_blank\">Opera</a> and later <a href=\"https://www.theverge.com/2019/5/6/18527550/microsoft-chromium-edge-google-history-collaboration\" target=\"_blank\">Microsoft</a>, to adopt Google’s open source <a href=\"https://chromium.org\" target=\"_blank\">Chromium</a> project. The only remaining browser competition comes from Mozilla’s Firefox and Apple’s Safari, and Mozilla is primarily funded by Google (see next section).</p>\n<p>If Google were forced to sell off Chrome, the only companies that could likely afford the hefty price tag would be other big tech companies: Microsoft, Apple, Amazon, and Meta, primarily. These companies could also face monopoly concerns, raising questions about the viability of selling Chrome. An alternative could be spinning off Chrome as a separate company, similar to the solution proposed for Microsoft in 2001, though this option hasn’t yet been discussed.</p>\n<p><strong>What does selling Chrome mean?</strong> Significantly, Chrome is largely based on the open source Chromium project, which receives contributions from various companies. Google then includes some proprietary software before distribution, a practice also followed by Opera, Microsoft, and several smaller browser vendors. If Google were to sell Chrome, would the sale include just the proprietary part? Would Google continue to contribute to, distribute, or recommend Chromium? If they’re not allowed to contribute to Chromium, would other companies step up? Or would Chromium’s attractiveness diminish due to increased upkeep costs by contributing companies? Google also spends a lot of time developing new web standards – will they continue to do that or drop out completely?</p>\n<p><strong>Collateral damage. </strong>While Apple can surely withstand the $20 billion in lost revenue from a cancelled Google search deal, Mozilla might not be so fortunate. The maker of Firefox reported $593 million in revenue on their 2021-2022 financial statement, of which <a href=\"https://fortune.com/2024/08/05/mozilla-firefox-biggest-potential-loser-google-antitrust-search-ruling/\" target=\"_blank\">$510 million came from their search deal with Google</a>. Needless to say, when a company loses 86% of their revenue all at once, that makes it difficult to stay in business. Even if Google retains Chrome but loses search deals, Firefox may be the next browser to disappear.</p>\n<p>Another factor to consider is that Google currently makes <a href=\"https://chrome-commit-tracker.arthursonzogni.com/organizations/commits?repositories=chromium&organizations=all&grouping=quarterly&colors=organizations&kind=author&metric=commit&chart=bar&dates=2000-01-01,2024-11-27&percent\" target=\"_blank\">over 90% of the commits</a> to the Chromium project. If that stops, and no other company steps up, that means alternative browsers that are built on top of Chromium (such as <a href=\"https://brave.com/\" target=\"_blank\">Brave</a> and <a href=\"https://arc.net\" target=\"_blank\">Arc</a>) will face significant challenges. This could lead to stagnation in browser technology development reminiscent of the period following Internet Explorer 6’s dominance.</p>\n<p>If the U.S. government enforces any of their proposed measures on Google,it will dramatically alter the browser landscape. Removing a monopolist might create a vacuum that could slow down browser development. It’s conceivable that this was part of Google’s strategy with Chrome from the beginning. By making your product essential to the web, it becomes more challenging for governments to intervene.</p>\n<p>Google will undoubtedly appeal any such verdict, and it could take years to negotiate a final decision. However, the old browser world order is being upended, making it challenging to predict the future landscape.</p>\n<h2>Key Takeaways</h2>\n<ul>\n<li><span>The U.S. Department of Justice ruled that Google has an illegal monopoly on search, leading to proposals to force Google to sell Chrome and stop exclusive search deals.</span></li>\n<li><span>Selling Chrome is complicated and costly, with potential buyers facing similar monopoly concerns and the challenge of maintaining Google's significant contributions to the Chromium project.</span></li>\n<li><span>Forcing Google to sell Chrome or cease search deals could harm companies like Mozilla and stall advancements in browser technology due to Google's major role in Chromium development.</span></li>\n</ul>\n<hr />\n<table><tbody><tr>\n<td><div><table><tbody><tr><td><figure><a href=\"http://leanpub.com/understanding-javascript-promises\" target=\"_blank\"></a></figure></td></tr></tbody></table></div></td>\n<td></td>\n<td><div>\n<h2>Understanding JavaScript Promises</h2>\n<p>I just updated my e-book, <em>Understanding JavaScript Promises</em>, for 2024! It now includes information about Promise.withResolvers() and a whole new chapter on using and creating abortable functions. </p>\n<table><tbody><tr><td><a href=\"http://leanpub.com/understanding-javascript-promises\" target=\"_blank\">Buy the E-book</a></td></tr></tbody></table>\n\n</div></td>\n</tr></tbody></table>\n<hr />\n<h2>Stuff I've Enjoyed this Month</h2>\n<p>🎬 <a href=\"https://youtu.be/n18Lrbo8VU8?si=9jc6OYve3Z7p3u7I\" target=\"_blank\">Transformers.js: State of the art machine learning for the web</a> by Chrome for Developers<br />I didn't realize that webapps are now able to run some AI models directly in the browser. Transformers.js allows any browser with JavaScript enabled to do just that without the needing dedicated servers.</p>\n<p>🎬 <a href=\"https://youtu.be/NvWl-bZTDKw?si=mE7HUXxZjEvsFCRf\" target=\"_blank\">The all NEW GitHub Copilot Experience</a> by Visual Studio Code<br />GitHub rolled out a significant update to Copilot in the last month, and this video walks you through all of Copilot's capabilities to get the most out of the update. I can say that I've seen some nice improvements in my own workflow with this latest update.</p>\n<p>🎬 <a href=\"https://youtu.be/DJtOn_Vt1uw?si=lsDr5c5eLjgEn4Vr\" target=\"_blank\">I've been sleeping on CloudFlare's compute offerings</a> by backpine labs<br />I had no idea that CloudFlare now offered a variety of cloud services to developers. This short video walks through each of the available services and how you might use them.</p>\n<p>📝<a href=\"https://socket.dev/blog/exploiting-npm-to-build-a-blockchain-powered-botnet\" target=\"_blank\">Threat actor exposes playbook for exploiting npm to build blockchain-powered botnets</a> by Kirill Boychenko<br />Someone shared explicit details on how to exploit npm's many vulnerabilities to create botnets on the dark web. This information was picked up by Shape Security and this article explains exactly what this threat actor shared. A terrifying look at just how easy it is to exploit npm.</p>\n<p>📝<a href=\"https://www.infoworld.com/article/3612364/uspto-petitioned-to-cancel-oracles-javascript-trademark.html\" target=\"_blank\">USPTO petitioned to cancel Oracle's JavaScript trademark</a> by Paul Krill<br />Deno Land, the company behind Deno, has petitioned to have Oracle's JavaScript trademark canceled due to abandonment. Earlier this year, Deno Land posted an open letter to Oracle asking the company to willingly release the trademark into the public domain. </p>\n<p>📝<a href=\"https://joshcollinsworth.com/blog/antiquated-react\" target=\"_blank\">Things you forgot (or never knew) because of React</a> by Josh Collinsworth<br />This long article is really a deep dive into how React has failed to evolve with the times. It goes through several examples where other frameworks, and even the browser itself, has changed and React has still not caught up. A good read on the world that React was designed for vs. the world we live in now.</p>\n<hr />\n<h2>What I'm Working On</h2>\n<p>🏠 <strong>Real Estate: </strong>Unfortunately, one of my properties had it's second major plumbing issue in the past year. These 100+ year old houses always have surprises. This is the house I ended up putting $70,000 to fix up but didn't have the money to re-pipe the house. Sadly, if there's another major issue, it looks like I'll need to do it. Follow <a href=\"https://www.instagram.com/p/CoIYSVlOy4J/?utm_source=ig_web_copy_link\" target=\"_blank\">my Instagram</a> for real estate photos.</p>\n<p>💻<strong> Open Source: </strong>I released <a href=\"https://github.com/humanwhocodes/crosspost/\" target=\"_blank\">Crosspost</a>, a utility and CLI for posting messages across different social media networks at the same time. Currently, Crosspost supports Twitter, Mastodon, and Bluesky. It's primarily designed to be used as part of a CI process to help publish updates.</p>\n<p>💻<strong> ESLint:</strong> We released the first version of the <a href=\"https://github.com/eslint/css/\" target=\"_blank\">CSS language plugin</a>. This was a lot of fun, getting to work on rules for CSS like I did back in the <a href=\"https://csslint.net\" target=\"_blank\">CSS Lint</a> days.</p>\n</td></tr></tbody></table>\n\n","recentPosts":[{"id":7999060,"title":"Human Who Codes Newsletter - People Skills","slug":"human-who-codes-newsletter-people-skills","status":"published","readingTime":4,"campaignCompletedAt":"2025-02-04T14:08:04.000Z","publishedAt":"2025-02-04T14:08:04.000Z","orderByDate":"2025-02-04T14:08:04.000Z","timeAgo":"27 days","thumbnailUrl":"https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/7aXmyMiXV5URxEC1d6UbaK","thumbnailAlt":"","path":"posts/human-who-codes-newsletter-people-skills","url":"https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-people-skills","isPaid":null,"introContent":"Thoughts on People Skills roles that require more interaction with our colleagues and customers. It’s at that point where a software engineering role shifts from primarily code-based to primarily people-based, and all of a sudden, it’s a different job. Previously, transitioning to a people-focused role took over five years and typically involved several promotions. However, with the advent of AI in software engineering, this timeline is shortening significantly. Companies once hired mediocre...","campaignId":18133907,"publicationId":14686127,"metaDescription":""},{"id":7699863,"title":"Human Who Codes Newsletter - Debuggability","slug":"human-who-codes-newsletter-debuggability","status":"published","readingTime":4,"campaignCompletedAt":"2025-01-07T14:03:02.000Z","publishedAt":"2025-01-07T14:03:02.000Z","orderByDate":"2025-01-07T14:03:02.000Z","timeAgo":"about 2 months","thumbnailUrl":"https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/7aXmyMiXV5URxEC1d6UbaK","thumbnailAlt":"","path":"posts/human-who-codes-newsletter-debuggability","url":"https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-debuggability","isPaid":null,"introContent":"Thoughts on Debuggability In the early days of web browsers, there were no developer tools. From Netscape to Internet Explorer, and the first version of Firefox, if something wasn’t aligning properly or your JavaScript wasn’t behaving as expected, there was little you could do. The browser provided no additional information. Everything changed with the arrival of Firebug, the first real developer tool for web applications. As a Firefox plugin, it exposed the inner workings of a web browser to...","campaignId":17807155,"publicationId":14355468,"metaDescription":""},{"id":7093251,"title":"Human Who Codes Newsletter - Return-to-Office","slug":"human-who-codes-newsletter-return-to-office","status":"published","readingTime":5,"campaignCompletedAt":"2024-11-05T14:03:25.000Z","publishedAt":"2024-11-05T14:03:25.000Z","orderByDate":"2024-11-05T14:03:25.000Z","timeAgo":"4 months","thumbnailUrl":"https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/7aXmyMiXV5URxEC1d6UbaK","thumbnailAlt":"","path":"posts/human-who-codes-newsletter-return-to-office","url":"https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-return-to-office","isPaid":null,"introContent":"Thoughts on Return-to-Office If you’ve been following tech news in the past month, you’ve likely heard about Amazon’s strict return-to-office policy, which will require employees into the office five days per week beginning in January 2025. The climate for tech workers has changed dramatically over the past three years, and Amazon, along with other companies, now shows no fear of losing employees with strict return-to-office mandates. For the first time in a long time, tech companies aren’t...","campaignId":17071815,"publicationId":13615332,"metaDescription":null}],"newsletter":{"formId":2233218,"productId":null,"productUrl":null,"featuredPostId":null,"subscribersOnly":false},"isPaidSubscriber":false,"isSubscriber":false,"originUrl":"https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-chrome","creatorProfileName":"Human Who Codes Newsletter","creatorProfileId":43379}</script><link rel="stylesheet" href="https://cdn.kit.com/pages/css/creator-profile-v2-post-c7c69a58526ff77fc131.css"/><link rel="stylesheet" href="https://cdn.kit.com/pages/css/shared-aabe47d19e6f5769d797.css"/><title>Human Who Codes Newsletter - Chrome</title><meta property="og:url" content="https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-chrome"/><meta property="og:title" content="Human Who Codes Newsletter - Chrome"/><meta property="og:description" content=""/><meta property="og:image" content="https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/7aXmyMiXV5URxEC1d6UbaK"/><meta property="og:image:alt" content=""/><meta property="og:type" content="article"/><meta name="twitter:card" content="summary_large_image"/><style> .content h1, .content h2, .content h3, .content h4, .content h5 { font-family: Charter, Georgia, Times, 'Times New Roman', serif !important; } .content p, .content li { font-family: Charter, Georgia, Times, 'Times New Roman', serif !important; } </style></head><body><div id="root"><style> .font-heading { font-family: Charter, Georgia, Times, 'Times New Roman', serif; } .font-weight-heading { font-weight: 700; } .font-body { font-family: Charter, Georgia, Times, 'Times New Roman', serif; } .font-weight-body { font-weight: 400; } .color-heading { color: #373f45; } .color-body { color: #373f45; } .color-button { color: #ffffff; } html, .bg-page { background-color: #f3f6f9; } .bg-card { background-color: #ffffff; } .bg-accent { background-color: #5678ff; } .content-max-width { max-width: 840px; } .opacity-80 { opacity: 0.8; } .hover\:opacity-90:hover { opacity: 0.9; } .border-accent { border-color: #5678ff; } .hover\:border-accent:hover { border-color: #5678ff; } .border-body, .border-body > :not(template) ~ :not(template) { border-color: #373f451a } .button:hover { background-color: #373f451a; } .button:disabled { color: #373f4599; background-color: transparent; } .text-8 { font-size: 2rem; } .share-button { background-color: #373f450d; } .hover\:bg-highlight:hover { background-color: #00000008 } .line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } .line-clamp-4 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; } .heading-line-height { line-height: undefined; } .body-line-height { line-height: undefined; } @media (min-width: 640px) { .sm\:line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .sm\:line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } } .color-badge { fill: #373f45; } .recommendations-form { --active-checkbox: #5678ff; } </style><style> .bg-post-intro { background: linear-gradient( to bottom, #ffffff00, #ffffff 90% ) } </style><div class="page page-post w-full sm:pt-16 sm:px-16 bg-page"><div class="flex flex-col lg:flex-row max-w-6xl w-full mx-auto gap-4"><div class="sidebar flex flex-col gap-4 flex-1 px-4 pt-4 sm:px-0 sm:pt-0"><div class="flex flex-row gap-4 lg:flex-wrap items-center"><a class="back-button flex items-center justify-center hover:bg-black hover:bg-opacity-10 w-8 h-8 rounded sm:-ml-12 self-start" href="/posts"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 24 24" class="fill-current inline-block overflow-visible w-6 h-6" name="arrow-left" style="color:black"><path d="M7.821 13.292H19a.97.97 0 0 0 .712-.287.97.97 0 0 0 .288-.713.97.97 0 0 0-.288-.712.97.97 0 0 0-.712-.288H7.82l4.902-4.899q.3-.3.287-.7a1 1 0 0 0-.312-.7 1.06 1.06 0 0 0-.7-.287.92.92 0 0 0-.7.288l-6.603 6.598q-.15.15-.213.325a1.1 1.1 0 0 0-.062.375q0 .2.062.375a.9.9 0 0 0 .213.325l6.602 6.599a.93.93 0 0 0 .688.275q.413 0 .713-.275.3-.3.3-.713 0-.412-.3-.712z"></path></svg></a><div class="creator-image w-6 h-6 flex-shrink-0 sm:w-24 sm:h-24"><img alt="profile" src="https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/jEXCgZYDxkeevYrvt2o4fK" class="h-full w-full rounded-full object-cover object-center"/></div><div class="grid"><h1 class="creator-name font-heading font-weight-heading color-heading text-base sm:text-2xl overflow-hidden break-words whitespace-pre-wrap">Human Who Codes Newsletter</h1></div></div><div class="hidden sm:block"><div class="grid"><p class="creator-bio font-body font-weight-body color-body text-sm overflow-hidden break-words whitespace-pre-wrap">A once-per-month newsletter discussing topics important to senior-level software engineers, with a particular focus on frontend technology and leadership.</p></div></div><div class="grid"><button id="form-submit-button" class="subscribe-button font-body font-semibold bg-accent color-button sm:flex-0 font-sans font-normal text-sm md:text-base rounded lg:self-start py-2 px-3 inline-block text-center truncate" style="min-width:50px">Subscribe</button></div><div class="hidden lg:block border-t border-gray-400 border-opacity-25 py-4"><div class="share-buttons flex items-center gap-4"><span class="color-body font-body font-semibold text-sm break-normal">Share</span><a class="text-center text-base flex justify-center align-center share-button button color-body w-10 h-10 rounded-full p-3 transition transition-colors ease-in-out duration-200" href="https://x.com/intent/tweet/?text=&url=https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-chrome"><span class="sr-only"></span><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="x-twitter" class="svg-inline--fa fa-x-twitter fa-w-16 " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a><a class="text-center text-base flex justify-center align-center share-button button color-body w-10 h-10 rounded-full p-3 transition transition-colors ease-in-out duration-200" href="https://facebook.com/sharer/sharer.php?u=https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-chrome"><span class="sr-only"></span><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook" class="svg-inline--fa fa-facebook fa-w-16 " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z"></path></svg></a><a class="text-center text-base flex justify-center align-center share-button button color-body w-10 h-10 rounded-full p-3 transition transition-colors ease-in-out duration-200" href="mailto:?subject=&body=Visit%20the%20link%20at%20https%3A%2F%2Fnewsletter.humanwhocodes.com%2Fposts%2Fhuman-who-codes-newsletter-chrome"><span class="sr-only"></span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="envelope" class="svg-inline--fa fa-envelope fa-w-16 " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg></a></div></div></div><div class="w-full"><div class="sm:rounded-lg bg-card post-container flex flex-col w-full py-4 px-4 sm:px-12 relative"><div class="p-2"><h1 class="post-title font-heading font-weight-heading color-heading text-4xl sm:text-5xl mb-4">Human Who Codes Newsletter - Chrome</h1><div class="post-meta font-body font-semibold color-body flex flex-row gap-4 items-center text-xs"><span>Published <!-- -->3 months ago<!-- --> • <!-- -->5<!-- --> min read</span></div><hr class="my-6 sm:my-8 color-body opacity-25"/><div class="content font-body font-weight-body" style="color:#373f45 !important"> <table cellpadding="0" cellspacing="0" style="width:100%;margin:0 auto"><tbody><tr><td> <h1 class="">Thoughts on Chrome</h1> <p class="">That ruling stated that Google had an illegal monopoly on search and excluded competition by paying other browsers to feature Google search as their default search engine. Subsequently, the U.S. Department of Justice requested that a judge force Google to <a href="https://www.cnn.com/2024/11/20/business/google-sell-chrome-justice-department/index.html" target="_blank" rel="noopener noreferrer">sell off its own browser</a>, Chrome, as well as stop all exclusive search deals (among other concessions). This represents the most significant legal loss for a tech company in the United States since <a href="https://money.cnn.com/2001/11/01/news/microsoft_chronology/" target="_blank" rel="noopener noreferrer">Microsoft was ordered to be split in two</a> in 2001 following a ruling that they held an illegal monopoly in operating systems.</p> <p class="">If you’re unfamiliar with the Microsoft case, Microsoft appealed and the company avoided being split up. Google is likely headed for a similar appeal, but will they succeed? And would such success be a good thing?</p> <p class=""><strong>Maintaining a browser is costly.</strong> While selling Chrome might initially seem effective for limiting Google’s search dominance and user tracking capabilities, it presents significant challenges. Development and upkeep of a web browser engine requires substantial financial resources, which led <a href="https://www.extremetech.com/computing/148312-opera-drops-presto-switch-to-google-and-apples-webkit-rendering-engine" target="_blank" rel="noopener noreferrer">Opera</a> and later <a href="https://www.theverge.com/2019/5/6/18527550/microsoft-chromium-edge-google-history-collaboration" target="_blank" rel="noopener noreferrer">Microsoft</a>, to adopt Google’s open source <a href="https://chromium.org" target="_blank" rel="noopener noreferrer">Chromium</a> project. The only remaining browser competition comes from Mozilla’s Firefox and Apple’s Safari, and Mozilla is primarily funded by Google (see next section).</p> <p class="">If Google were forced to sell off Chrome, the only companies that could likely afford the hefty price tag would be other big tech companies: Microsoft, Apple, Amazon, and Meta, primarily. These companies could also face monopoly concerns, raising questions about the viability of selling Chrome. An alternative could be spinning off Chrome as a separate company, similar to the solution proposed for Microsoft in 2001, though this option hasn’t yet been discussed.</p> <p class=""><strong>What does selling Chrome mean?</strong> Significantly, Chrome is largely based on the open source Chromium project, which receives contributions from various companies. Google then includes some proprietary software before distribution, a practice also followed by Opera, Microsoft, and several smaller browser vendors. If Google were to sell Chrome, would the sale include just the proprietary part? Would Google continue to contribute to, distribute, or recommend Chromium? If they’re not allowed to contribute to Chromium, would other companies step up? Or would Chromium’s attractiveness diminish due to increased upkeep costs by contributing companies? Google also spends a lot of time developing new web standards – will they continue to do that or drop out completely?</p> <p class=""><strong>Collateral damage. </strong>While Apple can surely withstand the $20 billion in lost revenue from a cancelled Google search deal, Mozilla might not be so fortunate. The maker of Firefox reported $593 million in revenue on their 2021-2022 financial statement, of which <a href="https://fortune.com/2024/08/05/mozilla-firefox-biggest-potential-loser-google-antitrust-search-ruling/" target="_blank" rel="noopener noreferrer">$510 million came from their search deal with Google</a>. Needless to say, when a company loses 86% of their revenue all at once, that makes it difficult to stay in business. Even if Google retains Chrome but loses search deals, Firefox may be the next browser to disappear.</p> <p class="">Another factor to consider is that Google currently makes <a href="https://chrome-commit-tracker.arthursonzogni.com/organizations/commits?repositories=chromium&organizations=all&grouping=quarterly&colors=organizations&kind=author&metric=commit&chart=bar&dates=2000-01-01,2024-11-27&percent" target="_blank" rel="noopener noreferrer">over 90% of the commits</a> to the Chromium project. If that stops, and no other company steps up, that means alternative browsers that are built on top of Chromium (such as <a href="https://brave.com/" target="_blank" rel="noopener noreferrer">Brave</a> and <a href="https://arc.net" target="_blank" rel="noopener noreferrer">Arc</a>) will face significant challenges. This could lead to stagnation in browser technology development reminiscent of the period following Internet Explorer 6’s dominance.</p> <p class="">If the U.S. government enforces any of their proposed measures on Google,it will dramatically alter the browser landscape. Removing a monopolist might create a vacuum that could slow down browser development. It’s conceivable that this was part of Google’s strategy with Chrome from the beginning. By making your product essential to the web, it becomes more challenging for governments to intervene.</p> <p class="">Google will undoubtedly appeal any such verdict, and it could take years to negotiate a final decision. However, the old browser world order is being upended, making it challenging to predict the future landscape.</p> <h2 class="">Key Takeaways</h2> <ul class="unordered_list" style="list-style-position:inside"> <li class="list_item"><span>The U.S. Department of Justice ruled that Google has an illegal monopoly on search, leading to proposals to force Google to sell Chrome and stop exclusive search deals.</span></li> <li class="list_item"><span>Selling Chrome is complicated and costly, with potential buyers facing similar monopoly concerns and the challenge of maintaining Google's significant contributions to the Chromium project.</span></li> <li class="list_item"><span>Forcing Google to sell Chrome or cease search deals could harm companies like Mozilla and stall advancements in browser technology due to Google's major role in Chromium development.</span></li> </ul> <hr style="margin-top:48px;margin-bottom:48px"> <table class="ck-layout-block ck-layout-stack" width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff" style="background-color:#ffffff;padding:0px 0px 0px 0px;margin:24px 0px 24px 0px;overflow:hidden;background-size:cover;background-position:center"><tbody><tr> <td as="td" class="ck-column ck-column-stack ck-column-1" width="50%" style="background-size:cover;background-position:center;box-sizing:border-box;vertical-align:top"><div style="padding:0px 0px 0px 0px"><table width="100%" border="0" cellspacing="0" cellpadding="0" style="text-align:center;table-layout:fixed;float:none" class="email-image"><tbody><tr><td align="center"><figure style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;max-width:100%;width:100%"><a style="display:block" href="http://leanpub.com/understanding-javascript-promises" target="_blank" rel="noopener noreferrer" trigger-id="4440601" class="kit-image-link"><img src="https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/7aXmyMiXV5URxEC1d6UbaK" alt="" width="100%" height="auto" style="width:100%;height:auto;object-fit:contain"></a></figure></td></tr></tbody></table></div></td> <td style="padding-left:30px"></td> <td as="td" class="ck-column ck-column-2" width="50%" style="background-size:cover;background-position:center;box-sizing:border-box;vertical-align:middle"><div style="padding:0px 0px 0px 0px"> <h2 style="margin-top:0;margin-bottom:0;color:#000000" class="">Understanding JavaScript Promises</h2> <p style="margin-top:8px;margin-bottom:8px;color:#4d4d4d" class="">I just updated my e-book, <em>Understanding JavaScript Promises</em>, for 2024! It now includes information about Promise.withResolvers() and a whole new chapter on using and creating abortable functions. </p> <!--[if !mso]>--><table width="100%"><tbody><tr><td align="center"><a class="email-button" href="http://leanpub.com/understanding-javascript-promises" target="_blank" rel="noopener noreferrer" style="border-color:#0077e6;background-color:#0077e6;box-sizing:border-box;border-style:solid;color:#ffffff;display:inline-block;text-align:center;text-decoration:none;padding:12px 20px;margin-top:8px;margin-bottom:8px;font-size:16px;border-radius:4px 4px 4px 4px" trigger-id="4440595">Buy the E-book</a></td></tr></tbody></table> <!--<![endif]--><!--[if mso]><table class="button-table" width="100%" border="0" cellSpacing="0" cellPadding="0" style="margin-top:8px;margin-bottom:8px"><tr><td align="center"><table border="0" cellSpacing="0" cellPadding="0"><tr><td align="center" bgcolor="#0077e6" style="background-color:#0077e6;overflow:hidden;padding:12px 20px"><a class="email-button" href="http://leanpub.com/understanding-javascript-promises" target="_blank" rel="noopener noreferrer" style="background-color:inherit;display:inline-block;text-decoration:none;border-style:solid;margin:0;color:#ffffff;font-size:16px" trigger-id="4440595" data-ck-element="button">Buy the E-book</a></td></tr></table></td></tr></table><![endif]--> </div></td> </tr></tbody></table> <hr style="margin-top:48px;margin-bottom:48px"> <h2 class="">Stuff I've Enjoyed this Month</h2> <p class="">🎬 <a href="https://youtu.be/n18Lrbo8VU8?si=9jc6OYve3Z7p3u7I" trigger-id="4819268" target="_blank" rel="noopener noreferrer">Transformers.js: State of the art machine learning for the web</a> by Chrome for Developers<br>I didn't realize that webapps are now able to run some AI models directly in the browser. Transformers.js allows any browser with JavaScript enabled to do just that without the needing dedicated servers.</p> <p class="">🎬 <a href="https://youtu.be/NvWl-bZTDKw?si=mE7HUXxZjEvsFCRf" trigger-id="4819273" target="_blank" rel="noopener noreferrer">The all NEW GitHub Copilot Experience</a> by Visual Studio Code<br>GitHub rolled out a significant update to Copilot in the last month, and this video walks you through all of Copilot's capabilities to get the most out of the update. I can say that I've seen some nice improvements in my own workflow with this latest update.</p> <p class="">🎬 <a href="https://youtu.be/DJtOn_Vt1uw?si=lsDr5c5eLjgEn4Vr" trigger-id="4819280" target="_blank" rel="noopener noreferrer">I've been sleeping on CloudFlare's compute offerings</a> by backpine labs<br>I had no idea that CloudFlare now offered a variety of cloud services to developers. This short video walks through each of the available services and how you might use them.</p> <p class="">📝<a href="https://socket.dev/blog/exploiting-npm-to-build-a-blockchain-powered-botnet" trigger-id="4819294" target="_blank" rel="noopener noreferrer">Threat actor exposes playbook for exploiting npm to build blockchain-powered botnets</a> by Kirill Boychenko<br>Someone shared explicit details on how to exploit npm's many vulnerabilities to create botnets on the dark web. This information was picked up by Shape Security and this article explains exactly what this threat actor shared. A terrifying look at just how easy it is to exploit npm.</p> <p class="">📝<a href="https://www.infoworld.com/article/3612364/uspto-petitioned-to-cancel-oracles-javascript-trademark.html" trigger-id="4819321" target="_blank" rel="noopener noreferrer">USPTO petitioned to cancel Oracle's JavaScript trademark</a> by Paul Krill<br>Deno Land, the company behind Deno, has petitioned to have Oracle's JavaScript trademark canceled due to abandonment. Earlier this year, Deno Land posted an open letter to Oracle asking the company to willingly release the trademark into the public domain. </p> <p class="">📝<a href="https://joshcollinsworth.com/blog/antiquated-react" trigger-id="4819338" target="_blank" rel="noopener noreferrer">Things you forgot (or never knew) because of React</a> by Josh Collinsworth<br>This long article is really a deep dive into how React has failed to evolve with the times. It goes through several examples where other frameworks, and even the browser itself, has changed and React has still not caught up. A good read on the world that React was designed for vs. the world we live in now.</p> <hr> <h2 class="">What I'm Working On</h2> <p class="">🏠 <strong>Real Estate: </strong>Unfortunately, one of my properties had it's second major plumbing issue in the past year. These 100+ year old houses always have surprises. This is the house I ended up putting $70,000 to fix up but didn't have the money to re-pipe the house. Sadly, if there's another major issue, it looks like I'll need to do it. Follow <a href="https://www.instagram.com/p/CoIYSVlOy4J/?utm_source=ig_web_copy_link" trigger-id="3596952" target="_blank" rel="noopener noreferrer">my Instagram</a> for real estate photos.</p> <p class="">💻<strong> Open Source: </strong>I released <a href="https://github.com/humanwhocodes/crosspost/" trigger-id="4819347" target="_blank" rel="noopener noreferrer">Crosspost</a>, a utility and CLI for posting messages across different social media networks at the same time. Currently, Crosspost supports Twitter, Mastodon, and Bluesky. It's primarily designed to be used as part of a CI process to help publish updates.</p> <p class="">💻<strong> ESLint:</strong> We released the first version of the <a href="https://github.com/eslint/css/" trigger-id="4771023" target="_blank" rel="noopener noreferrer">CSS language plugin</a>. This was a lot of fun, getting to work on rules for CSS like I did back in the <a href="https://csslint.net" trigger-id="4819358" target="_blank" rel="noopener noreferrer">CSS Lint</a> days.</p> </td></tr></tbody></table> <!-- --> </div><div class="post-subscribe-form rounded bg-page p-8 md:p-12 mt-4"><div class="grid"><h1 class="creator-name font-heading font-weight-heading color-heading text-2xl text-center overflow-hidden break-words whitespace-pre-wrap">Human Who Codes Newsletter</h1></div><div class="grid"><p class="creator-byline font-heading font-weight-heading color-heading opacity-80 text-base mb-4 text-center overflow-hidden break-words whitespace-pre-wrap">Nicholas C. Zakas</p></div><div class="grid"><p class="creator-bio font-body font-weight-body color-body text-sm mb-4 text-center overflow-hidden break-words whitespace-pre-wrap">A once-per-month newsletter discussing topics important to senior-level software engineers, with a particular focus on frontend technology and leadership.</p></div><form class="form subscribe-form flex flex-col sm:flex-row leading-8 rounded gap-2" method="POST" action="/posts"><input id="email" name="email_address" type="email" placeholder="Email Address" class="color-body flex-1 font-sans text-base w-full p-2 px-4 email-input rounded border border-gray-200 outline-none focus:shadow-outline" required="" value=""/><div class="grid"><button id="form-submit-button" class="subscribe-button font-body font-semibold bg-accent color-button sm:flex-0 font-sans font-normal text-sm md:text-base rounded hover:opacity-90 transition-opacity duration-300 py-2 px-3 inline-block text-center truncate" style="min-width:200px">Subscribe</button></div></form></div><div class="font-heading font-weight-heading color-heading pt-6">Read more from <!-- -->Human Who Codes Newsletter</div><div class="flex flex-col divide-y border-body"><div><div class="post-preview flex flex-col sm:flex-row gap-4 sm:gap-6 py-4 sm:py-6"><div class="post-thumbnail relative w-full sm:w-48 sm:h-48 pb-1/2 sm:pb-0 sm:flex-shrink-0"><a href="https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-people-skills"><img src="https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/7aXmyMiXV5URxEC1d6UbaK" class="absolute object-cover object-center h-full w-full sm:h-48 rounded" alt=""/></a></div><div class="flex flex-col sm:flex-1 justify-center gap-4 overflow-hidden break-words"><div><a href="https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-people-skills"><h3 class="post-title font-heading font-weight-heading color-heading text-2xl leading-8 hover:underline line-clamp-3 sm:line-clamp-2">Human Who Codes Newsletter - People Skills</h3></a></div><p class="post-intro font-body font-weight-body color-body text-sm leading-6 line-clamp-4 sm:line-clamp-2">Thoughts on People Skills roles that require more interaction with our colleagues and customers. It’s at that point where a software engineering role shifts from primarily code-based to primarily people-based, and all of a sudden, it’s a different job. Previously, transitioning to a people-focused role took over five years and typically involved several promotions. However, with the advent of AI in software engineering, this timeline is shortening significantly. Companies once hired mediocre...</p><div class="post-meta font-body font-semibold color-body flex flex-row gap-4 items-center text-xs"><span>27 days ago<!-- --> • <!-- -->4<!-- --> min read</span></div></div></div></div><div><div class="post-preview flex flex-col sm:flex-row gap-4 sm:gap-6 py-4 sm:py-6"><div class="post-thumbnail relative w-full sm:w-48 sm:h-48 pb-1/2 sm:pb-0 sm:flex-shrink-0"><a href="https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-debuggability"><img src="https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/7aXmyMiXV5URxEC1d6UbaK" class="absolute object-cover object-center h-full w-full sm:h-48 rounded" alt=""/></a></div><div class="flex flex-col sm:flex-1 justify-center gap-4 overflow-hidden break-words"><div><a href="https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-debuggability"><h3 class="post-title font-heading font-weight-heading color-heading text-2xl leading-8 hover:underline line-clamp-3 sm:line-clamp-2">Human Who Codes Newsletter - Debuggability</h3></a></div><p class="post-intro font-body font-weight-body color-body text-sm leading-6 line-clamp-4 sm:line-clamp-2">Thoughts on Debuggability In the early days of web browsers, there were no developer tools. From Netscape to Internet Explorer, and the first version of Firefox, if something wasn’t aligning properly or your JavaScript wasn’t behaving as expected, there was little you could do. The browser provided no additional information. Everything changed with the arrival of Firebug, the first real developer tool for web applications. As a Firefox plugin, it exposed the inner workings of a web browser to...</p><div class="post-meta font-body font-semibold color-body flex flex-row gap-4 items-center text-xs"><span>about 2 months ago<!-- --> • <!-- -->4<!-- --> min read</span></div></div></div></div><div><div class="post-preview flex flex-col sm:flex-row gap-4 sm:gap-6 py-4 sm:py-6"><div class="post-thumbnail relative w-full sm:w-48 sm:h-48 pb-1/2 sm:pb-0 sm:flex-shrink-0"><a href="https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-return-to-office"><img src="https://embed.filekitcdn.com/e/2dCejp6yj6tBWKNzNYcedy/7aXmyMiXV5URxEC1d6UbaK" class="absolute object-cover object-center h-full w-full sm:h-48 rounded" alt=""/></a></div><div class="flex flex-col sm:flex-1 justify-center gap-4 overflow-hidden break-words"><div><a href="https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-return-to-office"><h3 class="post-title font-heading font-weight-heading color-heading text-2xl leading-8 hover:underline line-clamp-3 sm:line-clamp-2">Human Who Codes Newsletter - Return-to-Office</h3></a></div><p class="post-intro font-body font-weight-body color-body text-sm leading-6 line-clamp-4 sm:line-clamp-2">Thoughts on Return-to-Office If you’ve been following tech news in the past month, you’ve likely heard about Amazon’s strict return-to-office policy, which will require employees into the office five days per week beginning in January 2025. The climate for tech workers has changed dramatically over the past three years, and Amazon, along with other companies, now shows no fear of losing employees with strict return-to-office mandates. For the first time in a long time, tech companies aren’t...</p><div class="post-meta font-body font-semibold color-body flex flex-row gap-4 items-center text-xs"><span>4 months ago<!-- --> • <!-- -->5<!-- --> min read</span></div></div></div></div></div></div></div><div class="footer flex flex-col sm:flex-row gap-4 items-center flex-wrap justify-center sm:justify-between py-6"><div class="share-buttons flex items-center gap-4"><span class="color-body font-body font-semibold text-sm break-normal">Share this post</span><a class="text-center text-base flex justify-center align-center share-button button color-body w-10 h-10 rounded-full p-3 transition transition-colors ease-in-out duration-200" href="https://x.com/intent/tweet/?text=&url=https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-chrome"><span class="sr-only"></span><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="x-twitter" class="svg-inline--fa fa-x-twitter fa-w-16 " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a><a class="text-center text-base flex justify-center align-center share-button button color-body w-10 h-10 rounded-full p-3 transition transition-colors ease-in-out duration-200" href="https://facebook.com/sharer/sharer.php?u=https://newsletter.humanwhocodes.com/posts/human-who-codes-newsletter-chrome"><span class="sr-only"></span><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook" class="svg-inline--fa fa-facebook fa-w-16 " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z"></path></svg></a><a class="text-center text-base flex justify-center align-center share-button button color-body w-10 h-10 rounded-full p-3 transition transition-colors ease-in-out duration-200" href="mailto:?subject=&body=Visit%20the%20link%20at%20https%3A%2F%2Fnewsletter.humanwhocodes.com%2Fposts%2Fhuman-who-codes-newsletter-chrome"><span class="sr-only"></span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="envelope" class="svg-inline--fa fa-envelope fa-w-16 " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg></a></div><div><a href="https://kit.com/features/forms?utm_campaign=poweredby&utm_content=newsletter_feed&utm_medium=referral&utm_source=dynamic" class="color-badge p-2 flex items-center justify-center transition-transform transform scale-100 hover:scale-105 duration-300" target="_blank" rel="noopener noreferrer"><svg width="172" height="40" viewBox="0 0 172 40" xmlns="http://www.w3.org/2000/svg"><path d="M102.919 17.9569C102.919 18.3602 103.376 18.4139 103.537 18.0645C104.128 16.6666 105.096 15.6182 106.978 15.6182C109.048 15.6182 109.989 17.043 109.989 19.301V29.4354C109.989 29.5967 109.881 29.7043 109.72 29.7043H105.983C105.822 29.7043 105.714 29.5967 105.714 29.4354V20.9139C105.714 19.7311 105.284 19.1666 104.397 19.1666C103.483 19.1666 102.919 19.7311 102.919 20.9139V29.4354C102.919 29.5967 102.811 29.7043 102.65 29.7043H98.9134C98.7521 29.7043 98.6445 29.5967 98.6445 29.4354V10.5645C98.6445 10.4032 98.7521 10.2957 98.9134 10.2957H102.65C102.811 10.2957 102.919 10.4032 102.919 10.5645V17.9569Z"></path><path d="M89.3315 15.9139C89.8423 15.9139 89.9767 15.672 90.0305 15.0537L90.2186 12.473C90.2186 12.3118 90.353 12.2042 90.5143 12.2042H93.767C93.9283 12.2042 94.0358 12.3118 94.0358 12.473V15.6451C94.0358 15.8064 94.1434 15.9139 94.3047 15.9139H96.8315C96.9928 15.9139 97.1004 16.0214 97.1004 16.1827V18.387C97.1004 18.5483 96.9928 18.6558 96.8315 18.6558H94.009V25.2956C94.009 26.344 94.6004 26.6128 95.2724 26.6128C95.81 26.6128 96.4014 26.4247 96.8853 26.129C97.0735 26.0214 97.2079 26.0752 97.2079 26.2902V28.844C97.2079 28.9784 97.1541 29.0859 97.0466 29.1666C96.267 29.6505 95.1649 29.973 93.9552 29.973C91.724 29.973 89.7348 28.9515 89.7348 25.8333V18.6558H88.6057C88.4444 18.6558 88.3369 18.5483 88.3369 18.387V16.1827C88.3369 16.0214 88.4444 15.9139 88.6057 15.9139H89.3315Z"></path><path d="M87.21 29.4355C87.21 29.5968 87.1025 29.7043 86.9412 29.7043H83.2047C83.0434 29.7043 82.9358 29.5968 82.9358 29.4355V16.1828C82.9358 16.0215 83.0434 15.914 83.2047 15.914H86.9412C87.1025 15.914 87.21 16.0215 87.21 16.1828V29.4355ZM85.0326 14.6505C83.6079 14.6505 82.6401 13.629 82.6401 12.3387C82.6401 11.0484 83.6079 10 85.0326 10C86.4305 10 87.3982 11.0484 87.3982 12.3387C87.3982 13.629 86.4305 14.6505 85.0326 14.6505Z"></path><path d="M74.694 15.9139C74.8553 15.9139 74.9628 15.9946 74.9897 16.1559L75.9843 22.4731L76.2262 24.1666C76.28 24.543 76.7101 24.543 76.737 24.1666C76.8176 23.5752 76.8714 23.0107 76.9789 22.4462L77.8929 16.1559C77.9198 15.9946 78.0273 15.9139 78.1886 15.9139H81.4682C81.6563 15.9139 81.737 16.0215 81.7101 16.2096L78.9144 29.4623C78.8875 29.6236 78.78 29.7043 78.6187 29.7043H74.6133C74.452 29.7043 74.3445 29.6236 74.3176 29.4623L73.0811 22.7688L72.7854 20.9139C72.7585 20.672 72.4897 20.672 72.4628 20.9139L72.1671 22.7957L71.0649 29.4623C71.0381 29.6236 70.9305 29.7043 70.7692 29.7043H66.7907C66.6295 29.7043 66.5219 29.6236 66.495 29.4623L63.7262 16.2096C63.6993 16.0215 63.78 15.9139 63.9682 15.9139H67.7585C67.9198 15.9139 68.0273 15.9946 68.0542 16.1559L68.995 22.4462C69.1026 23.0107 69.1832 23.629 69.2639 24.1935C69.3445 24.5967 69.694 24.6236 69.7746 24.1935L70.0434 22.5L71.1456 16.1559C71.1725 15.9946 71.28 15.9139 71.4413 15.9139H74.694Z"></path><path d="M50.4272 15.9139C50.938 15.9139 51.0724 15.672 51.1262 15.0537L51.3143 12.473C51.3143 12.3118 51.4487 12.2042 51.61 12.2042H54.8627C55.024 12.2042 55.1315 12.3118 55.1315 12.473V15.6451C55.1315 15.8064 55.2391 15.9139 55.4004 15.9139H57.9272C58.0885 15.9139 58.1961 16.0214 58.1961 16.1827V18.387C58.1961 18.5483 58.0885 18.6558 57.9272 18.6558H55.1047V25.2956C55.1047 26.344 55.6961 26.6128 56.3681 26.6128C56.9057 26.6128 57.4971 26.4247 57.981 26.129C58.1692 26.0214 58.3036 26.0752 58.3036 26.2902V28.844C58.3036 28.9784 58.2498 29.0859 58.1423 29.1666C57.3627 29.6505 56.2606 29.973 55.0509 29.973C52.8197 29.973 50.8305 28.9515 50.8305 25.8333V18.6558H49.7014C49.5401 18.6558 49.4326 18.5483 49.4326 18.387V16.1827C49.4326 16.0214 49.5401 15.9139 49.7014 15.9139H50.4272Z"></path><path d="M43.2139 10.5645C43.2139 10.4032 43.3214 10.2957 43.4827 10.2957H47.2192C47.3805 10.2957 47.4881 10.4032 47.4881 10.5645V25.2957C47.4881 26.1828 47.6493 26.6129 48.3752 26.6129C48.6171 26.6129 48.859 26.5591 49.0741 26.5053C49.2623 26.4516 49.3967 26.4516 49.3967 26.6666V29.1397C49.3967 29.2741 49.3429 29.4086 49.2354 29.4623C48.5633 29.7311 47.7031 29.9731 46.7891 29.9731C44.3967 29.9731 43.2139 28.6021 43.2139 25.8333V10.5645Z"></path><path d="M41.7105 29.4355C41.7105 29.5968 41.603 29.7043 41.4417 29.7043H37.7051C37.5439 29.7043 37.4363 29.5968 37.4363 29.4355V16.1828C37.4363 16.0215 37.5439 15.914 37.7051 15.914H41.4417C41.603 15.914 41.7105 16.0215 41.7105 16.1828V29.4355ZM39.5331 14.6505C38.1084 14.6505 37.1406 13.629 37.1406 12.3387C37.1406 11.0484 38.1084 10 39.5331 10C40.9309 10 41.8987 11.0484 41.8987 12.3387C41.8987 13.629 40.9309 14.6505 39.5331 14.6505Z"></path><path d="M31.9331 27.6344C31.9331 27.2311 31.5299 27.1505 31.3686 27.5268C30.7235 29.0053 29.6213 30 27.5514 30C25.4009 30 24.4062 28.3871 24.4062 26.129V16.1828C24.4062 16.0215 24.5138 15.9139 24.6751 15.9139H28.4116C28.5729 15.9139 28.6804 16.0215 28.6804 16.1828V24.7849C28.6804 25.9677 29.1106 26.5322 29.9976 26.5322C30.9116 26.5322 31.4761 25.9677 31.4761 24.7849V16.1828C31.4761 16.0215 31.5837 15.9139 31.745 15.9139H35.4815C35.6428 15.9139 35.7503 16.0215 35.7503 16.1828V29.4354C35.7503 29.5967 35.6428 29.7043 35.4815 29.7043H32.2019C32.0407 29.7043 31.9331 29.5967 31.9331 29.4354V27.6344Z"></path><path d="M10.0247 29.7043C9.86339 29.7043 9.75586 29.5967 9.75586 29.4354V10.5645C9.75586 10.4032 9.86339 10.2957 10.0247 10.2957H16.9602C20.5354 10.2957 22.5784 11.7204 22.5784 14.758C22.5784 17.3118 20.7236 18.7365 19.1645 19.1129C18.7881 19.1666 18.7881 19.6236 19.1913 19.7043C21.6107 20.2419 23.1161 21.5322 23.1161 24.3548C23.1161 27.4193 20.9924 29.7043 17.1483 29.7043H10.0247ZM15.8311 26.6129C17.6591 26.6129 18.5462 25.5107 18.5462 23.9516C18.5462 22.258 17.6591 21.3172 15.8311 21.3172H14.2989V26.6129H15.8311ZM15.7236 18.3333C17.2559 18.3333 18.1967 17.4731 18.1967 15.7526C18.1967 14.1935 17.2559 13.3871 15.643 13.3871H14.2989V18.3333H15.7236Z"></path><g clip-path="url(#clip0_838_7217)"><path d="M130.115 18.3222C135.563 19.3772 137.254 24.4236 137.298 29.4992C137.299 29.6134 137.207 29.7066 137.093 29.7066H130.235C130.122 29.7066 130.03 29.6152 130.029 29.5018C130.009 25.564 129.371 22.089 125.472 21.939C125.355 21.9346 125.259 22.0278 125.259 22.1444V29.5012C125.259 29.6146 125.167 29.7066 125.053 29.7066H118.194C118.081 29.7066 117.989 29.6146 117.989 29.5012V10.7558C117.989 10.6424 118.081 10.5504 118.194 10.5504H125.053C125.167 10.5504 125.259 10.6424 125.259 10.7558V17.7778C125.259 17.882 125.343 17.9664 125.447 17.9664C125.53 17.9664 125.603 17.9126 125.627 17.8334C127.394 12.043 130.694 10.587 136.052 10.5512C136.166 10.5504 136.259 10.6428 136.259 10.7566V17.7612C136.259 17.8746 136.167 17.9666 136.054 17.9666H130.149C130.05 17.9666 129.97 18.047 129.97 18.1462C129.97 18.2322 130.031 18.306 130.115 18.3224V18.3222ZM162.244 28.3556C162.244 28.5078 162.16 28.6478 162.025 28.7188C161.38 29.0584 159.385 30 157.103 30C152.41 30 148.961 28.055 148.895 22.7118H148.893V18.1718C148.893 18.0584 148.985 17.9664 149.098 17.9664H154.146C154.245 17.9664 154.326 17.8858 154.326 17.7864C154.326 17.7002 154.264 17.6264 154.18 17.6098C150.231 16.826 148.408 14.5512 148.345 10.756C148.343 10.6432 148.433 10.5504 148.546 10.5504H155.958C156.071 10.5504 156.163 10.6424 156.163 10.7558V14.3584C156.163 14.4718 156.255 14.5638 156.368 14.5638H161.218C161.331 14.5638 161.423 14.6558 161.423 14.7692V17.761C161.423 17.8744 161.331 17.9664 161.218 17.9664H156.368C156.255 17.9664 156.163 18.0584 156.163 18.1718V21.8338C156.163 23.1276 156.956 23.5542 158.01 23.5542C159.662 23.5542 161.291 22.8094 161.945 22.4718C162.082 22.4012 162.244 22.5006 162.244 22.6544V28.3552V28.3556ZM139.245 29.5012V18.1714C139.245 18.058 139.337 17.966 139.45 17.966H146.309C146.423 17.966 146.515 18.058 146.515 18.1714V29.5012C146.515 29.6146 146.423 29.7066 146.309 29.7066H139.45C139.337 29.7066 139.245 29.6146 139.245 29.5012ZM138.857 13.4918C138.857 15.4202 140.218 16.9836 142.832 16.9836C145.447 16.9836 146.808 15.4202 146.808 13.4918C146.808 11.5634 145.447 10 142.832 10C140.218 10 138.857 11.5634 138.857 13.4918Z"></path></g><defs><clipPath id="clip0_838_7217"><rect width="44.2553" height="20" transform="translate(117.989 10)"></rect></clipPath></defs></svg></a></div></div></div></div></div></div></body></html>