<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects on Home</title><link>https://glsngr.xyz/tags/projects/</link><description>Recent content in Projects on Home</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 20 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://glsngr.xyz/tags/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>hide-em: A personal attention filter for the web</title><link>https://glsngr.xyz/posts/hide-em/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://glsngr.xyz/posts/hide-em/</guid><description>&lt;img src="https://glsngr.xyz/posts/hide-em/hero.png" alt="Featured image of post hide-em: A personal attention filter for the web" /&gt;&lt;p&gt;You add a name, keyword, or phrase. Anything matching disappears from any page you visit - YouTube tiles, Reddit cards, search results, articles, feeds. One universal content script. Zero site-specific code.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s the whole product.&lt;/p&gt;
&lt;hr&gt;
&lt;div class="video-wrapper"&gt;
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/yLgz1yb6FKg"
allowfullscreen
title="YouTube Video"
&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="what-it-does"&gt;What it does
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Block by name&lt;/strong&gt; - a creator, a person, an ex&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Block by keyword or phrase&lt;/strong&gt; - a topic, a spoiler, a product category&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Block by regex&lt;/strong&gt; - for when you need more control&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Works on every site&lt;/strong&gt; - YouTube, Reddit, news sites, Twitter/X, Google search results, anything&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Import and export rules as JSON&lt;/strong&gt; - move your blocklist between machines&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The extension finds the nearest content card around any matching text and hides it cleanly. Not just the matching word - the whole tile, post, or article.&lt;/p&gt;
&lt;h2 id="what-it-isnt"&gt;What it isn&amp;rsquo;t
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Not an AI filter.&lt;/strong&gt; There&amp;rsquo;s no model guessing what you probably want to see. Exact text matching, with proper Unicode handling for names with diacritics and other edge cases. If you added the rule, it fires. If you didn&amp;rsquo;t, it doesn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not a thumbnail blocker.&lt;/strong&gt; Text only. If the title doesn&amp;rsquo;t contain the keyword, the card stays visible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not a tracker.&lt;/strong&gt; No analytics, telemetry, accounts, or backend. Your blocklist lives in your browser&amp;rsquo;s own storage and never leaves. The full source is on GitHub - audit it yourself.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not a community platform.&lt;/strong&gt; Your rules are yours. There&amp;rsquo;s no sharing layer, no suggested blocklists, no social features. JSON import and export is the extent of it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not an auto-suggester.&lt;/strong&gt; It will never suggest something to block based on your browsing behavior.&lt;/p&gt;
&lt;h2 id="why-i-built-it"&gt;Why I built it
&lt;/h2&gt;&lt;p&gt;I kept running into the same problem: I wanted to mute one specific creator on YouTube, one specific topic on Reddit, and one specific name across news sites - and every existing tool was either limited to one site, phoning home, or had quietly added an AI to decide what I &amp;ldquo;probably&amp;rdquo; wanted filtered.&lt;/p&gt;
&lt;p&gt;hide-em is the simplest version of the tool I wanted. A list of rules, and anything matching disappears. Same engine everywhere.&lt;/p&gt;
&lt;h2 id="privacy"&gt;Privacy
&lt;/h2&gt;&lt;p&gt;Your blocklist lives in &lt;code&gt;chrome.storage.sync&lt;/code&gt;, which means it follows your Chrome sign-in across your own devices through Google&amp;rsquo;s standard browser sync. Nothing goes to any server I operate - there is no server. No remote code is loaded. The extension has no backend.&lt;/p&gt;
&lt;p&gt;Source: &lt;a class="link" href="https://github.com/mgelsinger/hide-em" target="_blank" rel="noopener"
&gt;github.com/mgelsinger/hide-em&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="faq"&gt;FAQ
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Does it work on [specific site]?&lt;/strong&gt;
Almost certainly. There&amp;rsquo;s no site-specific code - the scanner runs on everything. If you find a site where it misses something, &lt;a class="link" href="https://github.com/mgelsinger/hide-em/issues" target="_blank" rel="noopener"
&gt;open an issue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What if it breaks something?&lt;/strong&gt;
Open DevTools and run &lt;code&gt;__heDebug.kill()&lt;/code&gt; - disables the scanner on the current page immediately, no reload needed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is it really free?&lt;/strong&gt;
Yes. MIT-licensed, no paid tier, no business model. If that changes I&amp;rsquo;ll say so.&lt;/p&gt;</description></item></channel></rss>