{"id":19897,"date":"2026-06-29T10:04:59","date_gmt":"2026-06-29T09:04:59","guid":{"rendered":"https:\/\/www.20i.com\/blog\/?p=19897"},"modified":"2026-08-06T13:01:06","modified_gmt":"2026-08-06T12:01:06","slug":"link-round-up-012","status":"publish","type":"post","link":"https:\/\/www.20i.com\/blog\/link-round-up-012\/","title":{"rendered":"Link Round Up (012)"},"content":{"rendered":"\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Welcome to Link Round-Up, our series where we share the interesting, useful and fun things on the web that caught our eye each month.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this edition, we\u2019ve got everything from AI-powered code exploration and personalised search experiments to local-first tools, open-source security work, Linux desktop ambition and a handy way to bring familiar terminal muscle memory to Windows.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">If you work in web design then you\u2019ll have inherited client sites where the original developer is uncontactable, the documentation is lacking and a \u201cquick change\u201d request means hours of digital detective work.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac46d1046650&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac46d1046650\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1080\" height=\"709\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Change-colour-6-weeks.webp\" alt=\"Junior Developer - &quot;I can rewrite the project in one weekend&quot;.\nSenior Developer &quot;Changing the label colour? That'll be 6 weeks&quot;.\" class=\"wp-image-19907\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Change-colour-6-weeks.webp 1080w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Change-colour-6-weeks-300x197.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Change-colour-6-weeks-768x504.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Change-colour-6-weeks-400x263.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Change-colour-6-weeks-800x525.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Change-colour-6-weeks-832x546.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Change-colour-6-weeks-150x98.webp 150w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/understand-anything.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Understand Anything<\/a>&nbsp;immediately makes sense if you\u2019ve ever opened a large codebase and wondered where on earth to begin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of leaving you to manually decipher files, functions, classes and comments, projects are turned into an interactive knowledge graph where you can explore the structure, search across relationships and ask questions about how everything fits together.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac46d1047709&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac46d1047709\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot.png\" alt=\"Understand Anything homepage screenshot\" class=\"wp-image-19908\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot.png 1920w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-300x169.png 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-768x432.png 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-1536x864.png 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-400x225.png 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-800x450.png 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-832x468.png 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-1664x936.png 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-1248x702.png 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-1320x743.png 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Understand-Anything-homepage-screenshot-150x84.png 150w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It is especially interesting for developers joining new teams, agencies taking over client projects and anyone trying to make sense of inherited code and fits neatly into the way AI coding tools are evolving.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Have you heard of the&nbsp;<a href=\"https:\/\/blog.google\/innovation-and-ai\/products\/gemini-app\/personal-intelligence\/\" target=\"_blank\" rel=\"noreferrer noopener\">Google Personal Intelligence<\/a>&nbsp;experiment?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/ipullrank.com\/google-personal-intelligence-experiment\" target=\"_blank\" rel=\"noreferrer noopener\">iPullRank<\/a>&nbsp;looked at whether personal context from connected Google services could influence AI Mode recommendations and tested whether signals seeded into Gmail and Google Photos changed which brands appeared in personalised AI responses.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac46d1048950&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac46d1048950\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1900\" height=\"983\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study.png\" alt=\"iPullRank's Google Personal Intelligence Study\" class=\"wp-image-19909\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study.png 1900w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-300x155.png 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-768x397.png 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-1536x795.png 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-400x207.png 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-800x414.png 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-832x430.png 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-1664x861.png 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-1248x646.png 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-1320x683.png 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/iPullRank-Google-Personal-Intelligence-Study-150x78.png 150w\" sizes=\"auto, (max-width: 1900px) 100vw, 1900px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The results are fascinating&nbsp;<em>and<\/em>&nbsp;unsettling: Gmail signals appeared to have a measurable effect on which brands were surfaced.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That means AI search may not only be shaped by the public web, backlinks, entities, reviews and content quality &#8211; but also by what sits inside a user\u2019s own private context.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For marketers, that poses significant questions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What does visibility mean when two users may receive different recommendations based on their inboxes?<\/li>\n\n\n\n<li>How do you measure AI search if personal context becomes part of the ranking environment?<\/li>\n\n\n\n<li>How do brands build trust when some of the most influential signals may be hidden from public view?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/gemini.google\/overview\/personalization\/\" target=\"_blank\" rel=\"noreferrer noopener\">This Gemini feature<\/a>&nbsp;is in early development, opt-in, experimental and points towards a future where SEO is about being meaningfully present in all places people already interact with brands.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Open-source software underpins almost everything, from hobby projects to enterprise infrastructure, which makes it a tempting target.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.20i.com\/blog\/link-round-up-011\/#gigamon\" target=\"_blank\" rel=\"noreferrer noopener\">As AI makes vulnerability discovery faster and cheaper<\/a>, the pressure on maintainers, security teams and software vendors is only going to increase.&nbsp;<a href=\"https:\/\/www.redhat.com\/en\/lightwell\" target=\"_blank\" rel=\"noreferrer noopener\">Project Lightwell<\/a>&nbsp;is IBM and Red Hat\u2019s attempt to respond at scale.&nbsp;<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac46d1049f15&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac46d1049f15\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1900\" height=\"687\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell.webp\" alt=\"Screenshot of RedHat and IBM's Project Lightwell\" class=\"wp-image-19910\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell.webp 1900w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-300x108.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-768x278.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-1536x555.webp 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-400x145.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-800x289.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-832x301.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-1664x602.webp 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-1248x451.webp 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-1320x477.webp 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Introducing-Project-Lightwell-150x54.webp 150w\" sizes=\"auto, (max-width: 1900px) 100vw, 1900px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The project is positioned as an enterprise clearinghouse for open-source software, combining AI-assisted vulnerability review with a very large engineering force to identify, fix, backport, test, sign and deliver secure patches for open-source components.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What caught our attention is the balance of automation and human expertise. Red Hat is presenting this as \u201cAI helps accelerate the work, while experienced engineers make the judgement calls.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That feels like a more realistic model for high-stakes AI. Automation can help find, triage and process issues faster than humans, but open-source security still needs context, disclosure discipline, upstream relationships and people who understand why a patch is safe in one version but risky in another.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Of course, when AI starts operating around private data, security and account-level decisions, the stakes become very real.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Manga artist&nbsp;<a href=\"https:\/\/x.com\/masahiroitosugi\/status\/2055495103309840853\" target=\"_blank\" rel=\"noreferrer noopener\">Masahiro Itosugi<\/a>&nbsp;recently posted that he had been banned from his Google account after uploading data from an old comic he had drawn to Google Drive.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac46d104b0d0&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac46d104b0d0\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"470\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Matsahiro-Itosugi-gets-locked-out-of-his-Google-account.png\" alt=\"Screenshot of Matsahiro Itosugi's post on X gets locked out of his Google account\" class=\"wp-image-19911\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Matsahiro-Itosugi-gets-locked-out-of-his-Google-account.png 598w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Matsahiro-Itosugi-gets-locked-out-of-his-Google-account-300x236.png 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Matsahiro-Itosugi-gets-locked-out-of-his-Google-account-400x314.png 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/Matsahiro-Itosugi-gets-locked-out-of-his-Google-account-150x118.png 150w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">According to his post, he received a warning, appealed the review, had that appeal rejected and then lost access to the account.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is a nightmare scenario, not only because of the files themselves, but because Google accounts often sit at the centre of a person\u2019s digital life.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Email, Drive, Photos, app logins, website accounts, authentication and years of work can all be tied to one identity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We don\u2019t know the full details of the case and aren\u2019t drawing sweeping conclusions from one post &#8211; but as a warning story, it lands hard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cloud storage is someone else\u2019s platform, governed by someone else\u2019s rules, automated systems and appeal process. If those systems get something wrong, the human cost can be enormous.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">That brings us to a self-hosted AI workspace with a very different philosophy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Felix Kjellberg, better known by his YouTube alias&nbsp;<a href=\"https:\/\/www.youtube.com\/@PewDiePie\" target=\"_blank\" rel=\"noreferrer noopener\">PewDiePie<\/a>, recently released Odysseus with a local-first, privacy-first, open-source and a refreshingly direct \u201cno telemetry\u201d pitch.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac46d104c4ad&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac46d104c4ad\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus.webp\" alt=\"Screenshot of YouTuber PewDiePie and his free, open-source AI workspace tool Odysseus.\" class=\"wp-image-20185\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus.webp 1920w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-300x169.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-768x432.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-1536x864.webp 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-400x225.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-800x450.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-832x468.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-1664x936.webp 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-1248x702.webp 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-1320x743.webp 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/PewDiePie-Odysseus-150x84.webp 150w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/odysseusai.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">Odysseus<\/a> gives you an interface for talking to language models, using agents, running tools, serving models, working with email and carrying out research on your own hardware.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">As AI tools are becoming more agentic and more involved in our files, messages and workflows there is something very appealing about that.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Not every user wants to piece together a local AI stack and not every team has the hardware, patience or appetite for self-hosting &#8211; but projects like this show that control and privacy don\u2019t have to be casualties of the AI boom.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Control becomes more important as local AI hardware continues to grow in market share. We\u2019ve seen&nbsp;<a href=\"https:\/\/www.amd.com\/en\/blogs\/2026\/amd-powers-next-generation-agent-computers-with-new-ryzen-ai-hal.html\" target=\"_blank\" rel=\"noreferrer noopener\">AMD Ryzen AI Max<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/www.apple.com\/uk\/newsroom\/2026\/03\/apple-debuts-m5-pro-and-m5-max-to-supercharge-the-most-demanding-pro-workflows\/\" target=\"_blank\" rel=\"noreferrer noopener\">Apple Silicon<\/a>&nbsp;chips with 128GB of memory in the portable, personal computing space.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NVIDIA have now joined the fray, showcasing their&nbsp;<a href=\"https:\/\/nvidianews.nvidia.com\/news\/nvidia-microsoft-windows-pcs-agents-rtx-spark\" target=\"_blank\" rel=\"noreferrer noopener\">RTX Spark lineup of laptop chips<\/a>&nbsp;just before Computex this month.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A portable system powered by Qualcomm\u2019s Snapdragon ARM processors, Blackwell graphics, up to 128GB of RAM and with reportedly strong battery life is a compelling proposition for AI processing on the go!<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac46d104d880&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac46d104d880\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image.png\" alt=\"NVIDIA RTX Spark promotional image\" class=\"wp-image-19913\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image.png 1920w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-300x169.png 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-768x432.png 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-1536x864.png 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-400x225.png 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-800x450.png 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-832x468.png 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-1664x936.png 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-1248x702.png 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-1320x743.png 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/nvidia-rtx-spark-promo-image-150x84.png 150w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Capable AI agents need fast access to a lot of memory, plus a software stack that AI developers already support.&nbsp;CUDA&nbsp;is a major NVIDIA advantage and is already central to a huge amount of AI tooling, creative and productivity workflows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What this means for the future of desktop GeForce GPUs is uncertain, but we hope that the next generation of consumer cards won\u2019t be as constrained as the 50 series which, except for the RTX 5090, were limited to 16GB or less.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Regarding desktops,&nbsp;<a href=\"https:\/\/linux.kde.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">KDE Linux<\/a>&nbsp;is shaping up to be a particularly promising project.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To be clear, this is not the same thing as&nbsp;<a href=\"https:\/\/kde.org\/plasma-desktop\/\" target=\"_blank\" rel=\"noreferrer noopener\">KDE Plasma<\/a>. KDE Linux is a full operating system being built by KDE to show Plasma and KDE apps in what it sees as their ideal environment.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac46d104eac0&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac46d104eac0\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1902\" height=\"896\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot.png\" alt=\"Screenshot of KDE Linux homepage\" class=\"wp-image-19914\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot.png 1902w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-300x141.png 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-768x362.png 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-1536x724.png 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-400x188.png 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-800x377.png 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-832x392.png 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-1664x784.png 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-1248x588.png 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-1320x622.png 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/KDE-Linux-homepage-screenshot-150x71.png 150w\" sizes=\"auto, (max-width: 1902px) 100vw, 1902px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The upcoming distribution&nbsp;<a href=\"https:\/\/blogs.kde.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">has made progress<\/a>&nbsp;around performance, testing and security. Moving away from Arch package generation to KDE\u2019s own kde-builder tool will speed up builds, improve caching and reduce reliance on single upstream distribution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The security changes are also notable. KDE developers carried out an audit after recent&nbsp;<a href=\"https:\/\/www.zdnet.com\/article\/third-major-linux-kernel-flaw-in-two-weeks-found-by-ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">Linux kernel security issues<\/a>, removing unused and risky components, switching back to the vanilla Linux kernel,&nbsp;<a href=\"https:\/\/invent.kde.org\/kde-linux\/kde-linux\/-\/merge_requests\/535\" target=\"_blank\" rel=\"noreferrer noopener\">dropping unmaintained Fuse2 support<\/a>&nbsp;and removing various unnecessary packages and modules.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While the beta is very much&nbsp;<a href=\"https:\/\/linux.kde.org\/docs\/roadmap\/\" target=\"_blank\" rel=\"noreferrer noopener\">still in active development<\/a>, the direction is promising with the developers taking testing, build reliability and security seriously rather than simply being another \u201cnice Plasma desktop on top of someone else\u2019s base\u201d project.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">And while KDE is building a more controlled home for Linux desktop, Microsoft is doing something unexpected in the other direction: bringing the Unix command-line experience to Windows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/microsoft\/coreutils\" target=\"_blank\" rel=\"noreferrer noopener\">Coreutils for Windows<\/a>&nbsp;is now generally available, giving developers native Windows versions of familiar Linux-like command-line utilities. It is built from the open-source uutils project, a Rust-based reimplementation of GNU Coreutils.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>winget install Microsoft.Coreutils<\/code><\/pre>\n<figcaption class=\"wp-element-caption\">Coreutils can be installed with one, simple command (shown above)<\/figcaption>\n\n\n\n<p class=\"wp-block-paragraph\">This solves a very real annoyance for developers who have to constantly move between Windows, Linux, macOS, WSL, containers and cloud environments &#8211; friction builds when familiar commands behave differently or are missing entirely from environments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft\u2019s wider&nbsp;<a href=\"https:\/\/blogs.windows.com\/windowsdeveloper\/2026\/06\/02\/build-2026-furthering-windows-as-the-trusted-platform-for-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">Build 2026 developer push<\/a>&nbsp;is all about reducing that friction: better dev environment setup, deeper WSL integration, more familiar workflows and local AI tooling.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/ko-fi.tools\/\" target=\"_blank\" rel=\"noreferrer noopener\">Ko-fi.tools<\/a>&nbsp;is a neat third-party resource for creators who want more control over how content appears on their own website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It provides widgets and an API for showing&nbsp;<a href=\"https:\/\/ko-fi.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Ko-fi<\/a>&nbsp;content directly on your own site. That includes things like shop items, commissions, top supporters, gallery content and feed updates.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac46d105036d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac46d105036d\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1901\" height=\"1065\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot.png\" alt=\"Screenshot of ko-fi tools homepage\" class=\"wp-image-19915\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot.png 1901w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-300x168.png 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-768x430.png 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-1536x861.png 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-400x224.png 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-800x448.png 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-832x466.png 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-1664x932.png 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-1248x699.png 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-1320x740.png 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/06\/ko-fi-tools-homepage-screenshot-150x84.png 150w\" sizes=\"auto, (max-width: 1901px) 100vw, 1901px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We love tools like this because they sit in the practical middle ground of the indie web where artists, writers, crafters and small creators want their own site to feel more alive and more connected to the places where supporters actually interact with them.<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Have you found a brilliant tool, fascinating website, impressive open-source project or niche internet rabbit hole we should include next time? <a href=\"#comments\">Let us know in the comments<\/a>!<\/strong><\/p>\n\n\n<div class='code-block code-block-4' style='margin: 8px 0; clear: both;'>\n<hr>\n<br \/><a href=\"https:\/\/www.20i.com\/wordpress-hosting\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/03\/Blog-Ad-WordPress-1200x625-1.png\" loading=\"lazy\" alt=\"Managed WordPress Hosting\"><\/a><\/div>\n\n","protected":false},"excerpt":{"rendered":"Welcome to Link Round-Up, our series where we share the interesting, useful and fun things on the web&hellip;","protected":false},"author":36,"featured_media":19927,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[51],"tags":[],"class_list":["post-19897","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology","cs-entry"],"_links":{"self":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/19897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/comments?post=19897"}],"version-history":[{"count":9,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/19897\/revisions"}],"predecessor-version":[{"id":20219,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/19897\/revisions\/20219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/media\/19927"}],"wp:attachment":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/media?parent=19897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/categories?post=19897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/tags?post=19897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}