<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ben Halpern</title>
    <description>The latest articles on DEV Community by Ben Halpern (@ben).</description>
    <link>https://dev.to/ben</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1%2Fbabb96d0-9cd2-49bc-a412-2dc4caf94c2a.png</url>
      <title>DEV Community: Ben Halpern</title>
      <link>https://dev.to/ben</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ben"/>
    <language>en</language>
    <item>
      <title>Meme Monday</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Mon, 21 Sep 2026 13:17:30 +0000</pubDate>
      <link>https://dev.to/ben/meme-monday-6km</link>
      <guid>https://dev.to/ben/meme-monday-6km</guid>
      <description>&lt;p&gt;&lt;strong&gt;Meme Monday!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today's cover image comes from &lt;a href="https://dev.to/ben/meme-monday-38bf"&gt;the last thread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;DEV is an inclusive space! Humor in poor taste will be downvoted by mods.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>jokes</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Meme Monday</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Mon, 14 Sep 2026 13:08:59 +0000</pubDate>
      <link>https://dev.to/ben/meme-monday-38bf</link>
      <guid>https://dev.to/ben/meme-monday-38bf</guid>
      <description>&lt;p&gt;&lt;strong&gt;Meme Monday!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today's cover image comes from &lt;a href="https://dev.to/ben/meme-monday-k1"&gt;the last thread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;DEV is an inclusive space! Humor in poor taste will be downvoted by mods.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>jokes</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>No Meme Monday</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Mon, 07 Sep 2026 15:23:29 +0000</pubDate>
      <link>https://dev.to/ben/no-meme-monday-56l5</link>
      <guid>https://dev.to/ben/no-meme-monday-56l5</guid>
      <description>&lt;p&gt;Labor Day in the US ✌️&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>jokes</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>💎 Introducing Community Gems: Celebrating Human Curation and the Best of Our Community</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Wed, 02 Sep 2026 19:28:32 +0000</pubDate>
      <link>https://dev.to/devteam/introducing-community-gems-celebrating-human-curation-and-the-best-of-our-community-58c8</link>
      <guid>https://dev.to/devteam/introducing-community-gems-celebrating-human-curation-and-the-best-of-our-community-58c8</guid>
      <description>&lt;p&gt;In an internet full of noise, infinite scrolls, and algorithmically generated content, finding genuinely great, thoughtful writing can feel like searching for a needle in a haystack. &lt;strong&gt;We are introducing a new feature we hope will do a bit to make our community more community-oriented&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Algorithms and engagement metrics have their place, but they will never replace human taste. Some of the most valuable articles and comments across our platform aren't necessarily the ones with the loudest headlines or the most clicks—they're the pieces offering deep technical insight, nuanced perspectives, thoughtful answers, and genuine craft.&lt;/p&gt;

&lt;p&gt;Today, we're introducing &lt;strong&gt;Community Gems&lt;/strong&gt;: a human-first curation system designed to spotlight, celebrate, and reward exceptional contributions.&lt;/p&gt;

&lt;p&gt;We have always had, and will continue to have folks doing &lt;em&gt;moderation&lt;/em&gt;, but this is a new dynamic which just takes a different approach. It complements our moderation systems in general, but we also be pruning and simplifying how moderation works as part of the march forward for a healthier ecosystem.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Community Gems Work
&lt;/h2&gt;

&lt;p&gt;We've granted a small, hand-selected group of trusted tastemakers and community leaders the &lt;strong&gt;Community Curator&lt;/strong&gt; privilege. &lt;/p&gt;

&lt;p&gt;Here is how the system works:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Limited Daily Curation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A Daily Ceiling of 5 Gems&lt;/strong&gt;: Each designated curator gets up to 5 gems to award per day. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scarcity by Design&lt;/strong&gt;: By capping the daily allowance, every gem given is intentional and meaningful. We aren't creating another generic "+1" or like button—gems represent a deliberate nod from a respected peer that a post or comment is truly exceptional.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic, Balanced Groups&lt;/strong&gt;: Only designated curators receive daily recurring gem allowances. Over time, we may expand, rotate, or refine this curator group to preserve balance, diverse points of view, and high community quality.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. What Happens When Your Post Gets Picked?
&lt;/h3&gt;

&lt;p&gt;If community curators pick your post or comment as a gem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💎 &lt;strong&gt;Milestone Profile Badges&lt;/strong&gt;: You’ll receive real-time notifications tracking your gem journey. Earning gems unlocks a sequential milestone badge system on your profile (starting at 2 gems, followed by 4, 8, 16, 32, and 64).&lt;/li&gt;
&lt;li&gt;📈 &lt;strong&gt;Increased Trust &amp;amp; Reputation&lt;/strong&gt;: Recognition by curators directly boosts your author trust score across the platform.&lt;/li&gt;
&lt;li&gt;✨ &lt;strong&gt;Curated Visibility&lt;/strong&gt;: Gem-awarded posts will appear in a dedicated feed which members can switch to at any point. Our feed discovery algorithm is also taking curation signals into account (with the exact long-term weighting evolving as we learn).&lt;/li&gt;
&lt;li&gt;🎁 &lt;strong&gt;Passing It Forward&lt;/strong&gt;: Earning a gem also grants you the ability to award a gem to another author's post. This does not mean you become a community curator, but you accumulate a stock of gems you can pass along. &lt;strong&gt;This feature is not fully live yet&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The "Why": Leaning Into Human Taste
&lt;/h2&gt;

&lt;p&gt;Our platform already has mechanisms to help separate signal from noise—reactions, comments, bookmarks, and search algorithms. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community Gems&lt;/strong&gt; operates under the hood on a different philosophy: valuing human taste and the &lt;em&gt;scarcity&lt;/em&gt; of quality. By empowering trusted community members to curate the best hidden gems, we're returning the focus to craft, thoughtful sharing, and authentic discovery.&lt;/p&gt;

&lt;p&gt;Keep writing, sharing, and commenting—we can't wait to see which gems you discover and create! 💎&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>meta</category>
      <category>community</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Fixing Delicate Cache Mismatches in a Brownfield SPA: A Pragmatic Solution</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Mon, 31 Aug 2026 19:21:38 +0000</pubDate>
      <link>https://dev.to/devteam/fixing-delicate-cache-mismatches-in-a-brownfield-spa-a-pragmatic-solution-dk9</link>
      <guid>https://dev.to/devteam/fixing-delicate-cache-mismatches-in-a-brownfield-spa-a-pragmatic-solution-dk9</guid>
      <description>&lt;p&gt;Building in public often means talking about shiny new features, but in mature production applications, the most critical engineering work is usually &lt;strong&gt;brownfield problem solving&lt;/strong&gt;—iterating on top of years and years of code logic and/or production system decisions.&lt;/p&gt;

&lt;p&gt;On &lt;a href="https://dev.to"&gt;DEV&lt;/a&gt; (powered by the open-source &lt;a href="https://github.com/forem/forem" rel="noopener noreferrer"&gt;Forem&lt;/a&gt; codebase), we have a hybrid architecture that blends Rails server rendering, Fastly edge caching, and lightweight client-side navigation (via &lt;a href="https://github.com/forem/forem" rel="noopener noreferrer"&gt;InstantClick&lt;/a&gt;). This setup delivers sub-100ms page transitions, but partial page swaps combined with aggressive edge caching create delicate deployment challenges.&lt;/p&gt;

&lt;p&gt;We shipped a fix &lt;a href="https://github.com/forem/forem/pull/23789" rel="noopener noreferrer"&gt;PR #23789&lt;/a&gt; which helps solve for an inherently delicate caching mismatch issue in web navigation. This is something that has existed practically since the beginning of DEV, and we have had several flakey fixes for the problem at times, but I feel good about this being a step in the right direction — albeit not a perfectly complete fix by any means.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: Cache Mismatches Across Deployments
&lt;/h2&gt;

&lt;p&gt;When we deploy new CSS updates, Rails generates new asset digest hashes (e.g., &lt;code&gt;views-v2.css&lt;/code&gt; replaces &lt;code&gt;views-v1.css&lt;/code&gt;).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Full Page Load:&lt;/strong&gt; A user loads an updated homepage. The browser receives full HTML and loads the latest &lt;code&gt;v2&lt;/code&gt; stylesheets in &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internal Navigation (Partial Page Swap):&lt;/strong&gt; The user clicks an article link. Rather than performing a full browser reload, InstantClick requests the article in the background and swaps only the inner &lt;code&gt;#page-content&lt;/code&gt; container into the existing DOM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Edge Cache Trap:&lt;/strong&gt; DEV aggressively caches article HTML fragments at Fastly with surrogate keys. Many articles were cached &lt;em&gt;before&lt;/em&gt; the latest deploy, meaning the cached HTML fragment still referenced &lt;code&gt;v1&lt;/code&gt; stylesheets.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Why the Previous Solution Was Fragile
&lt;/h3&gt;

&lt;p&gt;To prevent pages from rendering with outdated CSS, we had previously added client-side logic to inspect the incoming page's expected stylesheet paths and swap &lt;code&gt;&amp;lt;link rel="stylesheet"&amp;gt;&lt;/code&gt; elements in the DOM dynamically.&lt;/p&gt;

&lt;p&gt;In practice, this was brittle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When navigating from the fresh homepage (&lt;code&gt;v2&lt;/code&gt;) to an older edge-cached article (&lt;code&gt;v1&lt;/code&gt;), the client script compared &lt;code&gt;currentHref (v2) !== expectedHref (v1)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;It assumed the incoming page represented the "target" state and initiated an &lt;strong&gt;involuntary downgrade&lt;/strong&gt; of the DOM back to &lt;code&gt;v1&lt;/code&gt; stylesheets.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;v1&lt;/code&gt; asset files had been pruned after deployment, the browser failed with 404s; if they loaded, new UI components suddenly broke because their updated CSS was ripped out mid-session.&lt;/li&gt;
&lt;li&gt;Attempting to asynchronously swap multiple stylesheet tags across both &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; introduced CSS cascade race conditions and flashes of unstyled content (FOUC).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Solution: Repurposing Internal Navigation Parameters
&lt;/h2&gt;

&lt;p&gt;Instead of treating this as a client-side DOM mutation problem, we realized it was fundamentally a &lt;strong&gt;cache partitioning problem&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For years, Forem has quietly passed an internal query parameter—&lt;code&gt;?i=i&lt;/code&gt;—on background AJAX requests so Rails knows to render a lightweight partial layout instead of the full HTML document shell.&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://github.com/forem/forem/pull/23789" rel="noopener noreferrer"&gt;PR #23789&lt;/a&gt;, we repurposed this parameter:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Combined Style Fingerprinting:&lt;/strong&gt; On initial full-page load, Rails computes a deterministic 10-character hash from the combined digests of the core stylesheets (&lt;code&gt;minimal&lt;/code&gt;, &lt;code&gt;views&lt;/code&gt;, and &lt;code&gt;crayons&lt;/code&gt;) and places it on &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; as &lt;code&gt;data-style-fingerprint&lt;/code&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;   &lt;span class="nt"&gt;&amp;lt;body&lt;/span&gt; &lt;span class="err"&gt;...&lt;/span&gt; &lt;span class="na"&gt;data-style-fingerprint=&lt;/span&gt;&lt;span class="s"&gt;"cc9ed033eb"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Parameterizing Internal Navigation:&lt;/strong&gt; When InstantClick preloads or fetches a link, it reads the active session's fingerprint and appends it to the internal URL:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   https://dev.to/user/post?i=cc9ed033eb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;(If &lt;code&gt;data-style-fingerprint&lt;/code&gt; is missing—such as on tabs open during deploy cutover—it gracefully falls back to &lt;code&gt;?i=i&lt;/code&gt;).&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Natural Cache Partitioning at Fastly:&lt;/strong&gt; Fastly's edge configuration already whitelists &lt;code&gt;i&lt;/code&gt; in its safe parameter list. Because the query parameter is part of the cache key:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a user on a &lt;code&gt;v2&lt;/code&gt; session requests &lt;code&gt;/post?i=v2_fingerprint&lt;/code&gt;, Fastly checks for a cached &lt;code&gt;v2&lt;/code&gt; fragment.&lt;/li&gt;
&lt;li&gt;If missing, Fastly fetches a fresh fragment from Rails compiled with &lt;code&gt;v2&lt;/code&gt; styles.&lt;/li&gt;
&lt;li&gt;Stale &lt;code&gt;v1&lt;/code&gt; cached fragments are simply bypassed and eventually expire naturally.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deleting the DOM Swapping Logic:&lt;/strong&gt; With cache partitioning in place, incoming partial fragments are guaranteed to match the active DOM's stylesheet version. We &lt;strong&gt;completely deleted&lt;/strong&gt; the client-side stylesheet replacement script. The browser's active &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; tags remain static throughout the user session.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Brownfield Development Takeaways
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Solve at the Cache Layer, Not the DOM Layer:&lt;/strong&gt; Trying to coordinate DOM mutations, asynchronous CSS loading, and cascade precedence in client-side JavaScript is almost always more fragile than letting the edge cache serve the right HTML version from the start.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repurpose Existing Primitives:&lt;/strong&gt; We didn't need a new router, an edge computing rewrite, or custom HTTP headers. Repurposing our existing &lt;code&gt;?i=...&lt;/code&gt; internal parameter gave us exact cache keying with zero extra infrastructure overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pragmatic Improvements Over Perfect Rewrites:&lt;/strong&gt; This fix doesn't magically prevent every theoretical edge-case during rolling deploys, but it definitively solves the most disruptive issue. The system is far less delicate, and we now have a clean, predictable pattern to build upon.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>architecture</category>
      <category>webperf</category>
      <category>rails</category>
    </item>
    <item>
      <title>Meme Monday</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Mon, 31 Aug 2026 13:02:53 +0000</pubDate>
      <link>https://dev.to/ben/meme-monday-k1</link>
      <guid>https://dev.to/ben/meme-monday-k1</guid>
      <description>&lt;p&gt;&lt;strong&gt;Meme Monday!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today's cover image comes from &lt;a href="https://dev.to/ben/meme-monday-385f"&gt;the last thread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;DEV is an inclusive space! Humor in poor taste will be downvoted by mods.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>jokes</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Introducing AI Disclosure on DEV: Tools for Nuance, Clarity, and Better Feeds</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Wed, 26 Aug 2026 18:05:39 +0000</pubDate>
      <link>https://dev.to/devteam/introducing-ai-disclosure-on-dev-tools-for-nuance-clarity-and-better-feeds-34mk</link>
      <guid>https://dev.to/devteam/introducing-ai-disclosure-on-dev-tools-for-nuance-clarity-and-better-feeds-34mk</guid>
      <description>&lt;p&gt;We are working on revised DEV AI guidelines for the community to help ensure the most authentic content rises to the top. We will also be launching new features on DEV which put more weight on human curation by community leaders, to further help the best stuff rise to the top.&lt;/p&gt;

&lt;p&gt;Human connection, authentic discussions, and direct peer-to-peer knowledge sharing remain the heart of our community. At the same time, people are using AI tools to help craft their posts, and to an extent there is allowance for autonomous posting by creatively developed bots — as long as it is done without deception, and we provide tools for authors and readers to navigate this to their desired intentions.&lt;/p&gt;

&lt;p&gt;To bring transparency and nuance to how content is created and consumed, we’re introducing &lt;strong&gt;AI Disclosure&lt;/strong&gt; on DEV. Disclosure has been part of our &lt;a href="https://dev.to/guidelines-for-ai-assisted-articles-on-dev"&gt;AI policy&lt;/a&gt; since we first wrote them.&lt;/p&gt;

&lt;p&gt;Our AI policy was first crafted in 2024, with some small updates along the way. We will be making updates to this policy with this disclosure feature as a complement to how we can collectively work together as a community. With &lt;a href="https://hacktoberfest.com/" rel="noopener noreferrer"&gt;Hacktoberfest&lt;/a&gt; having a focus on open source AI, we see it as especially important that our tooling and policies are as up-to-date as possible for the benefit of the community and larger ecosystem.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Three Tiers of Disclosure
&lt;/h3&gt;

&lt;p&gt;When creating or editing an article, authors can now select an explicit AI disclosure tier:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hand Written (No AI)&lt;/strong&gt;: Written entirely by a human without meaningful assistance from AI text-generation tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-Assisted (Some AI)&lt;/strong&gt;: Written by a human with the aid of AI tooling (e.g., rough drafting with an agent while coding, generating code samples, major copyedits, or translations).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fully Autonomous&lt;/strong&gt;: Content generated primarily or entirely by automated agents or LLMs.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Nuance Over Dogmatism
&lt;/h3&gt;

&lt;p&gt;We want to provide the right framework for different use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Helpful Assistance is Normal&lt;/strong&gt;: Brainstorming with an LLM while debugging, generating boilerplate, or using an agent to outline your notes is a standard workflow. If you use AI to assist your writing, disclose it as &lt;strong&gt;AI-Assisted&lt;/strong&gt;. You are still the author and maintain full accountability for the accuracy and quality of what you publish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous Bots Have Value—When Transparent&lt;/strong&gt;: An automated bot that summarizes CVE security alerts, tracks open-source release logs, or compiles benchmark digests can be genuinely useful. But &lt;strong&gt;undisclosed autonomy is problematic and deceptive&lt;/strong&gt;. Disclosing autonomous generation allows readers to evaluate the context appropriately. This is clearly the area with the most uncertainty, and/or controversy, but as a community of creative toolmakers, it is critical to us that we address it with skill and intent.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Authorship and Guidelines
&lt;/h3&gt;

&lt;p&gt;Disclosure is not a loophole around our core community standards. Quality, original insight, and human accountability still matter. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deception is not permitted&lt;/strong&gt;: Publishing low-effort, undisclosed AI-generated content or presenting synthetic output as firsthand human experience violates our guidelines and may result in account suspension.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progressive rollout&lt;/strong&gt;: The introduction of this tool does not represent an overnight shift in moderation enforcement, but rather the foundation for clear expectations and fair community standards.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  What’s Next: Feed Preferences &amp;amp; Reader Controls
&lt;/h3&gt;

&lt;p&gt;Transparency is only step one. We are currently building &lt;strong&gt;Feed Preferences&lt;/strong&gt; that will allow you to customize your reading experience—including options to reduce or filter out AI-assisted or autonomous posts from your home feed based on your personal preferences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Content in Feed&lt;/strong&gt; is now an option you can select from &lt;a href="https://dev.to/settings/customization"&gt;in your settings&lt;/a&gt;. The ways in which this will affect your feed exactly will be an evolution over time. Of course since our codebase is open source via &lt;a href="https://github.com/forem/forem" rel="noopener noreferrer"&gt;Forem&lt;/a&gt;, you are welcome to peruse the implementation exactly.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>announcements</category>
      <category>ai</category>
      <category>community</category>
    </item>
    <item>
      <title>Meme Monday</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Mon, 24 Aug 2026 12:38:36 +0000</pubDate>
      <link>https://dev.to/ben/meme-monday-385f</link>
      <guid>https://dev.to/ben/meme-monday-385f</guid>
      <description>&lt;p&gt;&lt;strong&gt;Meme Monday!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today's cover image comes from &lt;a href="https://dev.to/ben/meme-monday-1abg"&gt;the last thread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;DEV is an inclusive space! Humor in poor taste will be downvoted by mods.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>jokes</category>
    </item>
    <item>
      <title>Meme Monday</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Mon, 17 Aug 2026 12:34:23 +0000</pubDate>
      <link>https://dev.to/ben/meme-monday-1abg</link>
      <guid>https://dev.to/ben/meme-monday-1abg</guid>
      <description>&lt;p&gt;&lt;strong&gt;Meme Monday!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today's cover image comes from &lt;a href="https://dev.to/ben/meme-monday-3n1d"&gt;the last thread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;DEV is an inclusive space! Humor in poor taste will be downvoted by mods.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>jokes</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>It's always Doom https://ood.dev/posts/doom/</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Thu, 13 Aug 2026 20:04:27 +0000</pubDate>
      <link>https://dev.to/ben/its-always-doom-httpsooddevpostsdoom-4fpi</link>
      <guid>https://dev.to/ben/its-always-doom-httpsooddevpostsdoom-4fpi</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://ood.dev/posts/doom/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Food.dev%2Fog-default.png" height="" class="m-0" width=""&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://ood.dev/posts/doom/" rel="noopener noreferrer" class="c-link"&gt;
            Doom, compiled into a transformer — Out of Distribution
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            No training anywhere: a compiler sets the weights of a stock Phi-3-architecture checkpoint so autoregressive generation executes Doom's classic renderer.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Food.dev%2Ffavicon.svg" width="48" height="48"&gt;
          ood.dev
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>gamedev</category>
      <category>programming</category>
      <category>software</category>
    </item>
    <item>
      <title>Meme Monday</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Mon, 10 Aug 2026 12:28:50 +0000</pubDate>
      <link>https://dev.to/ben/meme-monday-3n1d</link>
      <guid>https://dev.to/ben/meme-monday-3n1d</guid>
      <description>&lt;p&gt;&lt;strong&gt;Meme Monday!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today's cover image comes from &lt;a href="https://dev.to/ben/meme-monday-52p7"&gt;the last thread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;DEV is an inclusive space! Humor in poor taste will be downvoted by mods.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>jokes</category>
    </item>
    <item>
      <title>Meme Monday</title>
      <dc:creator>Ben Halpern</dc:creator>
      <pubDate>Mon, 03 Aug 2026 12:48:29 +0000</pubDate>
      <link>https://dev.to/ben/meme-monday-52p7</link>
      <guid>https://dev.to/ben/meme-monday-52p7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Meme Monday!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today's cover image comes from &lt;a href="https://dev.to/ben/meme-monday-mm5"&gt;the last thread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;DEV is an inclusive space! Humor in poor taste will be downvoted by mods.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>jokes</category>
      <category>watercooler</category>
    </item>
  </channel>
</rss>
