<?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: Toan Nhu</title>
    <description>The latest articles on DEV Community by Toan Nhu (@toannhu).</description>
    <link>https://dev.to/toannhu</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%2F2469735%2F973c8fae-60a6-4235-9e87-ed613fd0ae9c.jpg</url>
      <title>DEV Community: Toan Nhu</title>
      <link>https://dev.to/toannhu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/toannhu"/>
    <language>en</language>
    <item>
      <title>WebMCP: Give Browser Agents Tools Instead of Buttons</title>
      <dc:creator>Toan Nhu</dc:creator>
      <pubDate>Sun, 30 Aug 2026 17:12:23 +0000</pubDate>
      <link>https://dev.to/toannhu/webmcp-give-browser-agents-tools-instead-of-buttons-4i7f</link>
      <guid>https://dev.to/toannhu/webmcp-give-browser-agents-tools-instead-of-buttons-4i7f</guid>
      <description>&lt;p&gt;AI agents can already browse a site, find a form, type into it, and click &lt;strong&gt;Submit&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That works—until the button moves, the label is ambiguous, the form changes state, or the workflow spans six screens.&lt;/p&gt;

&lt;p&gt;WebMCP proposes a better contract: let the page tell the agent which actions are available, what inputs they accept, and how to call them.&lt;/p&gt;

&lt;p&gt;Instead of making an agent reverse-engineer the UI, a web app can expose tools such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;search_emails
get_email
start_compose
reply_to_email
move_email
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The human interface stays. WebMCP adds a structured interface for the agent working alongside the human.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with simulated clicks
&lt;/h2&gt;

&lt;p&gt;Most browser agents rely on &lt;strong&gt;actuation&lt;/strong&gt;: they inspect a page and simulate human actions such as clicking, typing, and scrolling.&lt;/p&gt;

&lt;p&gt;Every step adds uncertainty:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does “Continue” submit the form or open another step?&lt;/li&gt;
&lt;li&gt;Is the visible search box global or scoped to the current mailbox?&lt;/li&gt;
&lt;li&gt;Is a disabled field unavailable, or does another field need to be completed first?&lt;/li&gt;
&lt;li&gt;Did navigation make the agent's previous understanding stale?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A redesign that is harmless to a person can break automation. The agent is trying to infer an application's behavior from an interface that was designed for eyes and hands.&lt;/p&gt;

&lt;p&gt;WebMCP moves that interaction from inference toward an explicit contract.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a WebMCP tool looks like
&lt;/h2&gt;

&lt;p&gt;A page can register a tool with a name, description, input schema, and execution function.&lt;/p&gt;

&lt;p&gt;Here is a simplified example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;modelContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;registerTool&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;search_emails&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Search email metadata in the active mailbox.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;inputSchema&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;object&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;query&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;query&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;searchMailbox&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application still owns &lt;code&gt;searchMailbox()&lt;/code&gt;. Its existing authorization, validation, business rules, rate limits, and audit behavior still apply.&lt;/p&gt;

&lt;p&gt;The difference is that the agent can call a defined capability with validated arguments instead of reconstructing the workflow from the DOM.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three-part interaction model
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The page registers tools
&lt;/h3&gt;

&lt;p&gt;The application exposes only the capabilities that make sense in the current context.&lt;/p&gt;

&lt;p&gt;A public product page might register &lt;code&gt;get_pricing&lt;/code&gt;. An authenticated workspace might expose &lt;code&gt;list_mailboxes&lt;/code&gt;. A mailbox view could add &lt;code&gt;search_emails&lt;/code&gt; and remove it when the user navigates away.&lt;/p&gt;

&lt;p&gt;This is important: the tool surface follows the page lifecycle. The agent does not receive permanent access to everything the product can do.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The browser discovers them
&lt;/h3&gt;

&lt;p&gt;A WebMCP-aware browser collects tools registered by the active page and presents them to a compatible agent.&lt;/p&gt;

&lt;p&gt;The schema tells the agent what input is valid. The page state tells it which tools are currently available.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The agent calls a tool
&lt;/h3&gt;

&lt;p&gt;The agent selects the capability that matches the user's request and supplies structured arguments. The application validates them, executes the operation, updates the visible UI, and returns a structured result.&lt;/p&gt;

&lt;p&gt;The action still happens inside the application. WebMCP does not create a side door around the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Declarative vs. imperative WebMCP
&lt;/h2&gt;

&lt;p&gt;WebMCP provides two ways to expose tools.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;declarative API&lt;/strong&gt; annotates standard HTML forms. It is useful when the workflow already maps cleanly to a form and needs only a machine-readable name and description.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;imperative API&lt;/strong&gt; registers tools with JavaScript. It fits dynamic applications, navigation, stateful workflows, and actions that need custom validation or execution logic.&lt;/p&gt;

&lt;p&gt;If your product has a multi-step state machine, permission-dependent actions, or consequential operations, the imperative API will usually give you the control you need.&lt;/p&gt;

&lt;h2&gt;
  
  
  WebMCP is not MCP in the browser
&lt;/h2&gt;

&lt;p&gt;The similar names can be misleading.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP&lt;/strong&gt; connects an AI application to services, backend systems, data sources, and workflows. It can work without a visible browser session.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebMCP&lt;/strong&gt; exposes capabilities from the website currently open in the browser. Actions execute in the page's context.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They solve different layers and can complement each other. A product might provide MCP for direct service integration and WebMCP for browser-native collaboration with the user.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why security has to be part of the tool design
&lt;/h2&gt;

&lt;p&gt;Structured tools improve reliability, but a well-shaped schema is not a security boundary.&lt;/p&gt;

&lt;p&gt;Treat every call as untrusted input and design for the consequence of the action.&lt;/p&gt;

&lt;h3&gt;
  
  
  Validate at execution time
&lt;/h3&gt;

&lt;p&gt;The schema helps an agent construct a valid request. The application must still validate types, identifiers, permissions, state, and business invariants when the tool runs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep results bounded
&lt;/h3&gt;

&lt;p&gt;Return the smallest projection needed for the task. A search tool should not dump an entire mailbox or customer database into the agent context.&lt;/p&gt;

&lt;h3&gt;
  
  
  Treat page content as untrusted
&lt;/h3&gt;

&lt;p&gt;An email, support ticket, document, or product description may contain instructions aimed at an agent. Content inside the application does not gain authority merely because an agent can read it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Require visible confirmation
&lt;/h3&gt;

&lt;p&gt;Sending a message, making a purchase, deleting data, or changing permissions should not happen silently. The application should show the intended action and let the user approve or cancel it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bind tools to context and lifecycle
&lt;/h3&gt;

&lt;p&gt;Register a tool only while its required context exists. Cancel pending operations and remove obsolete registrations when navigation or application state changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical rollout strategy
&lt;/h2&gt;

&lt;p&gt;WebMCP is still experimental, so treat it as a progressive enhancement.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start with read-only tools.&lt;/li&gt;
&lt;li&gt;Feature-detect the API and preserve the normal experience for unsupported browsers.&lt;/li&gt;
&lt;li&gt;Add bounded, low-risk operations before consequential ones.&lt;/li&gt;
&lt;li&gt;Put visible confirmation in front of outbound or destructive actions.&lt;/li&gt;
&lt;li&gt;Measure registration failures, validation errors, cancellations, and execution outcomes without logging sensitive payloads.&lt;/li&gt;
&lt;li&gt;Test whether agents select the right tool—not only whether the tool succeeds when called directly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Chrome's documentation currently describes an origin trial and a local-development flag. The proposal remains under active discussion, so APIs and browser support may change.&lt;/p&gt;

&lt;h2&gt;
  
  
  What web developers should do now
&lt;/h2&gt;

&lt;p&gt;You do not need to rebuild your product around agents.&lt;/p&gt;

&lt;p&gt;Pick one workflow that browser automation handles poorly today. Define the smallest safe capability that would make it deterministic. Give it a precise name, a narrow schema, strict runtime validation, bounded output, and an explicit confirmation step when consequences extend beyond the current page.&lt;/p&gt;

&lt;p&gt;The useful question is no longer only, “Can an agent click through this interface?”&lt;/p&gt;

&lt;p&gt;It is: &lt;strong&gt;What contract should this application offer an agent acting for its user?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That shift—from interpreting pixels and DOM structure to invoking explicit, contextual tools—is why WebMCP deserves every web developer's attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.chrome.com/docs/ai/webmcp" rel="noopener noreferrer"&gt;Official Chrome WebMCP documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/webmachinelearning/webmcp" rel="noopener noreferrer"&gt;WebMCP proposal on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toannhu.medium.com/what-is-webmcp-and-why-should-every-web-developer-care-445f8728b5af" rel="noopener noreferrer"&gt;Original Medium article&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>javascript</category>
      <category>security</category>
    </item>
    <item>
      <title>From Data Engineer to Solving a Retention Problem Most Small Teams Still Struggle With</title>
      <dc:creator>Toan Nhu</dc:creator>
      <pubDate>Thu, 16 Apr 2026 03:24:44 +0000</pubDate>
      <link>https://dev.to/toannhu/from-data-engineer-to-solving-a-retention-problem-most-small-teams-still-struggle-with-15op</link>
      <guid>https://dev.to/toannhu/from-data-engineer-to-solving-a-retention-problem-most-small-teams-still-struggle-with-15op</guid>
      <description>&lt;p&gt;After years building data systems, I started noticing that the real growth problem for many small teams was not acquisition, but the messy and manual work of turning customer insight into retention campaigns that feel personal, well-timed, and effective.&lt;/p&gt;

&lt;p&gt;For years, I worked as a Data Engineer, building large-scale data systems and marketing infrastructure for one of the biggest e-commerce companies in Vietnam. My work touched attribution systems, performance dashboards, CDPs, and affiliate platforms. Like many people working close to growth teams, I spent a lot of time around metrics such as CAC, ROAS, funnel conversion, and campaign performance.&lt;/p&gt;

&lt;p&gt;But over time, one thing became more obvious to me.&lt;/p&gt;

&lt;p&gt;Modern businesses have become very good at measuring acquisition. They can track ad spend, campaign performance, and user behavior with impressive precision. Yet when it comes to retention, many teams still operate with messy workflows, generic messaging, and disconnected tools. The data exists. The intent exists. The execution often does not.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11gxeg2bk5x0qam64c95.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11gxeg2bk5x0qam64c95.webp" alt="Ads cost have increased by 51% in the last 10 Years" width="720" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That gap is what led me to build &lt;a href="https://nudgen.net" rel="noopener noreferrer"&gt;Nudgen&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Nudgen is an AI-powered retention email automation platform built for shop owners and growing SMEs. The goal is simple: help businesses run personalized, on-brand email campaigns without getting buried under complex workflow builders or manual follow-up. Instead of pushing teams to create giant automation trees, Nudgen focuses on behavior-driven journeys, AI-assisted drafting, and follow-up that automatically stops once customers engage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz0tarh5effhu4xtmnjse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz0tarh5effhu4xtmnjse.png" alt="Nudgen homepage" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The overlooked revenue lever
&lt;/h2&gt;

&lt;p&gt;When most businesses want to grow, they usually lean on one of two paths.&lt;/p&gt;

&lt;p&gt;The first is &lt;strong&gt;acquisition&lt;/strong&gt;. Run ads, bring in traffic, optimize landing pages, and keep feeding the funnel. That can work, but it is expensive and increasingly hard to control. Customer acquisition costs move unpredictably, attribution gets more complicated, and profitable growth becomes harder to sustain over time.&lt;/p&gt;

&lt;p&gt;The second path is &lt;strong&gt;re-engagement&lt;/strong&gt;. This is the quieter opportunity, and often the more overlooked one.&lt;/p&gt;

&lt;p&gt;Most businesses already have first-party data. They have customer history, browsing behavior, purchases, churn signals, and a rough idea of who should come back. In theory, retention should be one of the clearest growth opportunities available. In practice, it is often underused because teams lack the time, systems, or tooling to turn insight into action.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpl3814n0t3ndlyx3qikz.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpl3814n0t3ndlyx3qikz.webp" alt="First-party Data of user such as customer history, browsing behavior, purchases, churn signals,…" width="720" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That is the &lt;strong&gt;real retention problem&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is not that businesses do not know retention matters. It is that too many retention programs are still slow to set up, hard to personalize, difficult to measure, and too easy to over-send.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why retention campaigns often fail
&lt;/h2&gt;

&lt;p&gt;A lot of businesses want to launch win-back flows, welcome sequences, abandoned cart reminders, or post-purchase follow-ups. But their current tools and workflows get in the way.&lt;/p&gt;

&lt;p&gt;Some send mass emails that feel generic and disconnected from actual customer behavior. Others try to personalize, but the copy still sounds robotic. Some teams build automation flows that look powerful on paper, then become too painful to maintain in real life. And many businesses still struggle to answer basic questions like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which message worked? Which audience converted? When should the sequence stop?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This matters because bad retention is not neutral. It creates real costs.&lt;/p&gt;

&lt;p&gt;Poorly timed emails annoy customers. Repetitive messages train people to ignore your brand. Weak targeting wastes send volume. And when campaigns continue after a user has already clicked, purchased, or re-engaged, the automation starts working against the customer experience instead of improving it.&lt;/p&gt;

&lt;p&gt;That is why I believe retention is not about sending more emails. It is about sending &lt;strong&gt;the right message, at the right time, to the right person, and knowing when to stop&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88sd9w1nouzs9flxr7f2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88sd9w1nouzs9flxr7f2.png" alt="The right message, at the right time, to the right person, and knowing when to stop" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I wanted to build differently
&lt;/h2&gt;

&lt;p&gt;Nudgen was built around a simple belief: retention should feel more like a &lt;strong&gt;smart execution layer&lt;/strong&gt; than a complicated marketing control panel.&lt;/p&gt;

&lt;p&gt;Instead of asking users to architect giant branches and flows from scratch, Nudgen starts from the customer moment. You choose the audience, define the goal, review the AI-generated draft, and launch. From there, the platform handles the follow-up while keeping everything aligned with your brand voice and stopping future nudges when the customer has already taken action.&lt;/p&gt;

&lt;p&gt;That approach is shaped by both data engineering and practical marketing reality.&lt;/p&gt;

&lt;p&gt;From the engineering side, I care deeply about systems that are measurable, event-driven, and reliable. From the business side, I know most smaller teams do not want to become lifecycle marketing specialists just to launch a useful campaign.&lt;/p&gt;

&lt;p&gt;They want something that works.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Nudgen approaches retention
&lt;/h2&gt;

&lt;p&gt;At its core, Nudgen combines a few ideas that matter more than flashy automation diagrams.&lt;/p&gt;

&lt;p&gt;The first is &lt;strong&gt;AI-assisted drafting&lt;/strong&gt;. Nudgen helps generate campaign drafts based on the goal and brand voice, so businesses can get to a usable first version faster. The message can still be reviewed, edited, previewed, and tested before anything is sent.&lt;/p&gt;

&lt;p&gt;The second is &lt;strong&gt;personalized, on-brand messaging&lt;/strong&gt;. Instead of treating every contact the same, the system is designed to support messaging that feels more relevant to the person receiving it while staying consistent with the business’s tone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5nf789x0dkh6d9okiply.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5nf789x0dkh6d9okiply.png" alt="AI-personalized messages with an on-brand tone" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The third is &lt;strong&gt;behavior-driven automation&lt;/strong&gt;. Nudgen is built around real customer actions, not just static schedules. That matters because retention should follow context, not just a timer.&lt;/p&gt;

&lt;p&gt;The fourth, and arguably the most important, is &lt;strong&gt;auto-stop logic&lt;/strong&gt;. If a customer clicks, buys, unsubscribes, or otherwise re-engages, future nudges can stop automatically. This keeps campaigns helpful instead of repetitive and protects the customer experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgowl83ddor4nvvfx820.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgowl83ddor4nvvfx820.png" alt="Real-time analytics with recipient-level tracking" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is also an operational layer behind the scenes. Delivery reliability, unsubscribe and bounce handling, and contact data protection are not flashy, but they matter a lot in real campaign execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Nudgen is really for
&lt;/h2&gt;

&lt;p&gt;Many email products are built for dedicated marketers. Nudgen is intentionally aimed at a different type of user: shop owners and growing SMEs that want to improve customer lifetime value without learning heavyweight enterprise email software.&lt;/p&gt;

&lt;p&gt;That positioning matters.&lt;/p&gt;

&lt;p&gt;A lot of smaller teams do not need a giant system with endless branching logic. They need a way to launch useful campaigns quickly, trust what is being sent, and avoid turning follow-up into another full-time job.&lt;/p&gt;

&lt;p&gt;This is where the product direction becomes interesting. Nudgen is not trying to win by offering the most complicated automation suite. It is trying to win by reducing friction between business intent and campaign execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bigger vision: from AI-powered campaigns to auto marketing
&lt;/h2&gt;

&lt;p&gt;What excites me most is not just email automation by itself. It is the larger direction behind it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The long-term vision is auto marketing: a world where AI Agents can run major parts of the marketing workflow for users.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Today, Nudgen focuses on &lt;strong&gt;AI-powered campaigns&lt;/strong&gt; and the operational foundation needed to automate them well. But the direction goes further than assisted drafting.&lt;/p&gt;

&lt;p&gt;Nudgen already has an interactive CLI designed so users and AI Agents can operate the platform more directly:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclyvjfsvu3ezq6ij6bjz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclyvjfsvu3ezq6ij6bjz.png" alt="AI-Agent supported" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;


&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://docs.nudgen.net/en/cli/introduction" 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%2Fnudgen.mintlify.app%2Fmintlify-assets%2F_next%2Fimage%3Furl%3D%252F_mintlify%252Fapi%252Fog%253Fdivision%253DCLI%252B%252528AI%252BAgent%252529%2526title%253DCLI%252BIntroduction%2526description%253DMaster%252Bthe%252BNudgen%252Bmarketing%252Bautomation%252Bplatform%252Bvia%252Bits%252Binteractive%252BCommand%252BLine%252BInterface.%2526logoLight%253Dhttps%25253A%25252F%25252Fmintcdn.com%25252Fnudgen%25252Flum5KI7mDIsm0Q2x%25252Flogo%25252Flogo-light.svg%25253Ffit%25253Dmax%252526auto%25253Dformat%252526n%25253Dlum5KI7mDIsm0Q2x%252526q%25253D85%252526s%25253De5fab4426053908ff3b81f58a903b8da%2526logoDark%253Dhttps%25253A%25252F%25252Fmintcdn.com%25252Fnudgen%25252Flum5KI7mDIsm0Q2x%25252Flogo%25252Flogo-dark.svg%25253Ffit%25253Dmax%252526auto%25253Dformat%252526n%25253Dlum5KI7mDIsm0Q2x%252526q%25253D85%252526s%25253Db859d1747116dbd37968237175774c23%2526primaryColor%253D%25252316A34A%2526lightColor%253D%25252307C983%2526darkColor%253D%25252315803D%2526backgroundLight%253D%252523ffffff%2526backgroundDark%253D%252523090d0d%26w%3D1200%26q%3D100" height="630" class="m-0" width="1200"&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://docs.nudgen.net/en/cli/introduction" rel="noopener noreferrer" class="c-link"&gt;
            CLI Introduction - Nudgen
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Master the Nudgen marketing automation platform via its interactive Command Line Interface.
          &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%2Fdocs.nudgen.net%2Fmintlify-assets%2F_mintlify%2Ffavicons%2Fnudgen%2FqlIBK-qAnwMjKwHY%2F_generated%2Ffavicon%2Ffavicon-16x16.png" width="16" height="16"&gt;
          docs.nudgen.net
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;That may sound like a small technical detail, but I think it points to a much bigger shift.&lt;/p&gt;

&lt;p&gt;In the traditional model, humans manually create segments, write sequences, define branching logic, test drafts, monitor engagement, and tweak flows forever.&lt;/p&gt;

&lt;p&gt;In the future model, AI Agents should be able to do much more of that work: understand campaign goals, operate tooling, launch targeted outreach, and optimize execution while humans stay focused on strategy and brand direction.&lt;/p&gt;

&lt;p&gt;That is the direction I believe marketing is heading.&lt;/p&gt;

&lt;p&gt;Not more dashboards. Not more manual branching. More intelligent systems that can operate with context.&lt;/p&gt;

&lt;p&gt;Nudgen’s current product reflects an early version of that future: personalized campaigns, behavior-driven follow-up, reviewable AI drafts, and tooling that is increasingly friendly to automation by AI Agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this approach has real strengths
&lt;/h2&gt;

&lt;p&gt;One of the strongest parts of the Nudgen story is that it begins from a real operational problem rather than a vague “AI for marketing” promise.&lt;/p&gt;

&lt;p&gt;The focus on retention gives the product a sharper point of view. It is not trying to solve every possible marketing channel at once. It is trying to improve a part of the business that often gets less attention than acquisition, even though it can have a direct effect on repeat revenue and customer lifetime value.&lt;/p&gt;

&lt;p&gt;Another strength is usability. The product consistently emphasizes simple setup, audience selection, preview and testing, and automation that does not keep sending after a customer has already engaged. That combination makes the value proposition easier to understand for smaller teams.&lt;/p&gt;

&lt;p&gt;The AI-agent angle is also compelling. A lot of products talk about AI as a writing assistant. Fewer seem to think seriously about AI as an operator inside a marketing workflow. Nudgen’s CLI direction suggests a more agent-friendly future, which gives the product a more distinctive long-term narrative.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest pros and cons
&lt;/h2&gt;

&lt;p&gt;No product is perfect, especially early-stage software, so it is worth being balanced.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pros
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Clear positioning&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nudgen has a focused message: retention automation for shop owners and growing SMEs. That makes it easier to understand who the product is for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behavior-driven follow-up&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The auto-stop logic is genuinely useful. A lot of email fatigue comes from automations that keep sending after the customer has already taken action. Nudgen addresses that directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI with practical guardrails&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The platform does not frame AI as “press one button and hope for the best.” It still emphasizes review, preview, testing, and brand consistency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good fit for lean teams&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The product is designed for people who want useful campaigns live fast, not for teams that enjoy building giant flowcharts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong long-term vision&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The AI Agent and CLI direction gives the platform a broader future than just email drafting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cons
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Narrower scope today&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The focus on retention is a strength, but it also means businesses looking for an all-in-one marketing suite may still need other tools alongside it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Education is still required&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Even with simpler workflows, smaller businesses may still need help understanding segmentation, timing, and what good retention strategy actually looks like.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The AI-agent future is promising but still unfolding&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The vision for auto marketing is exciting, but for many businesses it will take time before AI Agents managing campaigns feels fully normal or trusted at scale.&lt;/p&gt;

&lt;p&gt;Those are not deal-breakers. They are just the realities of building a focused product in a space full of broad platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I believe this matters now
&lt;/h2&gt;

&lt;p&gt;We are entering a period where acquisition is getting noisier, more expensive, and harder to measure cleanly. At the same time, businesses already have more first-party data than ever. The opportunity is there, but the tooling gap remains real.&lt;/p&gt;

&lt;p&gt;That is why I think the next generation of marketing tools will not simply add more features. They will reduce operational drag. They will turn intent into execution faster. And increasingly, they will be designed so AI can participate as an operator, not just a copy helper.&lt;/p&gt;

&lt;p&gt;That is the problem space I care about.&lt;/p&gt;

&lt;p&gt;Nudgen is my attempt to build toward that future from a practical starting point: help businesses run better retention campaigns now, while laying the foundation for a world where AI Agents can handle more of the marketing execution layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Building a product always starts with noticing a problem that feels too common to ignore.&lt;/p&gt;

&lt;p&gt;For me, that problem was retention execution.&lt;/p&gt;

&lt;p&gt;Businesses already know retention matters. They already know existing customers are valuable. They already know generic mass emails are weak. What they often lack is a simple, reliable system that helps them act on that knowledge without adding more complexity.&lt;/p&gt;

&lt;p&gt;That is the gap Nudgen is trying to close.&lt;/p&gt;

&lt;p&gt;It brings together a data-engineering mindset, AI-assisted campaign creation, behavior-driven automation, and a longer-term belief that marketing will increasingly be run with the help of AI Agents.&lt;/p&gt;

&lt;p&gt;And honestly, that is the part I am most excited about.&lt;/p&gt;

&lt;p&gt;Because the future is not just better email copy.&lt;/p&gt;

&lt;p&gt;It is better marketing systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explore Nudgen
&lt;/h2&gt;

&lt;p&gt;If you want to see what that looks like in practice, you can explore Nudgen here: &lt;a href="https://nudgen.net" rel="noopener noreferrer"&gt;https://nudgen.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to learn more about the AI Agent / CLI direction, check the docs here: &lt;a href="https://docs.nudgen.net/en/cli/introduction" rel="noopener noreferrer"&gt;https://docs.nudgen.net/en/cli/introduction&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you create content, have an audience, or want to promote a product aligned with AI-powered marketing automation, Nudgen also has an affiliate program. It offers &lt;strong&gt;10% recurring commission&lt;/strong&gt; and is a simple way for creators, communities, and partners to earn while sharing a product aligned with AI-powered marketing automation: &lt;a href="https://nudgen.net/affiliate" rel="noopener noreferrer"&gt;https://nudgen.net/affiliate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbg1l5bs3s1eqnll339gl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbg1l5bs3s1eqnll339gl.png" alt="Nudgen Affiliate Program" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>marketing</category>
      <category>saas</category>
      <category>startup</category>
      <category>ai</category>
    </item>
    <item>
      <title>Bug Hunter: I Turned Every Website Into A Debugging Horror Game</title>
      <dc:creator>Toan Nhu</dc:creator>
      <pubDate>Thu, 02 Apr 2026 05:22:36 +0000</pubDate>
      <link>https://dev.to/toannhu/bug-hunter-i-turned-every-website-into-a-debugging-horror-game-5be3</link>
      <guid>https://dev.to/toannhu/bug-hunter-i-turned-every-website-into-a-debugging-horror-game-5be3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Bug Hunter&lt;/strong&gt;, a Chrome extension that spawns crawling bugs on top of real websites so you can "debug" them by smashing them.&lt;/p&gt;

&lt;p&gt;It solves absolutely nothing in real life, which makes it perfect for this challenge.&lt;/p&gt;

&lt;p&gt;Open any page, start Bug Hunter, pick a tool, and hunt.&lt;br&gt;&lt;br&gt;
Smash bugs to lower your stress meter and boost score.&lt;br&gt;&lt;br&gt;
Miss too many and the page becomes a full-blown infestation.&lt;/p&gt;

&lt;p&gt;Delightfully useless? Yes.&lt;br&gt;&lt;br&gt;
Strangely therapeutic? Also yes.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/rvBXobETSqg"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Nudgen-Marketing" rel="noopener noreferrer"&gt;
        Nudgen-Marketing
      &lt;/a&gt; / &lt;a href="https://github.com/Nudgen-Marketing/bug-hunter" rel="noopener noreferrer"&gt;
        bug-hunter
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Bug Hunter is a Chrome Extension game that overlays crawling bugs on real web pages. You pick a tool, squash bugs, reduce stress, and chase a high score.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Bug Hunter&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Bug Hunter is a browser extension game that overlays crawling bugs on real web pages. You pick a tool, squash bugs, reduce stress, and chase a high score.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Real-page bug crawling and interaction&lt;/li&gt;
&lt;li&gt;Weapon/tool selection from popup UI&lt;/li&gt;
&lt;li&gt;Stress meter game loop and score feedback&lt;/li&gt;
&lt;li&gt;Local progression storage (best score + achievements)&lt;/li&gt;
&lt;li&gt;Cross-browser Manifest V3 packaging for Chrome, Edge, and Firefox&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Tech Stack&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Preact (popup UI)&lt;/li&gt;
&lt;li&gt;Esbuild&lt;/li&gt;
&lt;li&gt;Browser Extension Manifest V3&lt;/li&gt;
&lt;li&gt;Vitest&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Project Structure&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;src/content/&lt;/code&gt; : game runtime injected into web pages&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/popup/&lt;/code&gt; : extension popup UI&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/background/&lt;/code&gt; : service worker bridge for tab injection/actions&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/shared/&lt;/code&gt; : progression and storage helpers&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;assets/&lt;/code&gt; : icons and static assets&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dist/&amp;lt;browser&amp;gt;/&lt;/code&gt; : browser-specific build output&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;artifacts/&lt;/code&gt; : packaged zip files for store uploads&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Requirements&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Node.js 18+&lt;/li&gt;
&lt;li&gt;npm 9+&lt;/li&gt;
&lt;li&gt;Chrome 120+, Edge 120+, or Firefox 128+&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Local Development&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Install dependencies
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Build all browser targets:
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm run build&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Load…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Nudgen-Marketing/bug-hunter" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chrome Extension Manifest V3&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;and &lt;strong&gt;TypeScript&lt;/strong&gt; that's it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug crawling behavior over live page elements&lt;/li&gt;
&lt;li&gt;Tool/weapon interactions and score feedback&lt;/li&gt;
&lt;li&gt;Stress-meter game loop with win/lose states&lt;/li&gt;
&lt;li&gt;Session-based overlay effects (no permanent page modifications)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Community Favorite&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built Bug Hunter to be immediately funny, fast to try, and fun enough to replay for a "higher score + lower stress" run.&lt;/p&gt;

&lt;p&gt;Team Submissions: toannhu96&lt;/p&gt;




&lt;p&gt;If this made you laugh, react/comment so more people can discover this beautifully unnecessary extension.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
