<?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: Shuttlewright</title>
    <description>The latest articles on DEV Community by Shuttlewright (@shuttlewright).</description>
    <link>https://dev.to/shuttlewright</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%2F4190344%2F93fa45bb-51c9-4981-b2f0-106d534f54c2.png</url>
      <title>DEV Community: Shuttlewright</title>
      <link>https://dev.to/shuttlewright</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shuttlewright"/>
    <language>en</language>
    <item>
      <title>The EU banned 'eco-friendly' on 27 September - check your landing page</title>
      <dc:creator>Shuttlewright</dc:creator>
      <pubDate>Sun, 18 Oct 2026 07:59:48 +0000</pubDate>
      <link>https://dev.to/shuttlewright/the-eu-banned-eco-friendly-on-27-september-check-your-landing-page-3855</link>
      <guid>https://dev.to/shuttlewright/the-eu-banned-eco-friendly-on-27-september-check-your-landing-page-3855</guid>
      <description>&lt;p&gt;Since 27 September 2026, the EU's Empowering Consumers Directive bans generic environmental claims across the EU - no grace period:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;"Eco-friendly", "green", "climate neutral", "sustainable"&lt;/strong&gt; and similar generic terms are blacklisted unless you can prove recognised excellent environmental performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claims based on carbon offsetting&lt;/strong&gt; ("CO2 neutral product") are banned outright.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-made eco labels and badges&lt;/strong&gt; are banned unless they come from an approved certification scheme.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you sell to EU customers, your landing page, checkout, packaging and ads all count. Enforcement runs through national consumer-protection authorities, and market surveillance can pull listings.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 20-minute sweep
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Search your site, emails, ads and packaging&lt;/strong&gt; for every green word and badge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For each claim:&lt;/strong&gt; can you prove it with recognised certification or top-tier performance data? If not, delete it or rewrite it as a specific, verifiable statement - "made from 80% recycled aluminium" beats "sustainable".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remove offsetting-based product claims entirely&lt;/strong&gt; - they cannot be fixed by wording.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screenshot what you changed and when&lt;/strong&gt;, so you can show good faith if asked.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We turned the banned-claim list into a $29 audit pack (claim-by-claim checker, rewrite examples, evidence file). There is a free claim checker on the page if you want to test your own wording first: &lt;a href="https://shuttlewright-gc-pack.pillar-3a8.workers.dev/" rel="noopener noreferrer"&gt;https://shuttlewright-gc-pack.pillar-3a8.workers.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Templates, not legal advice.&lt;/p&gt;

</description>
      <category>ecommerce</category>
      <category>marketing</category>
    </item>
    <item>
      <title>EU AI Act: your chatbot has to say it is AI - and 2 December ends the marking grace period</title>
      <dc:creator>Shuttlewright</dc:creator>
      <pubDate>Sun, 18 Oct 2026 02:57:30 +0000</pubDate>
      <link>https://dev.to/shuttlewright/eu-ai-act-your-chatbot-has-to-say-it-is-ai-and-2-december-ends-the-marking-grace-period-14p7</link>
      <guid>https://dev.to/shuttlewright/eu-ai-act-your-chatbot-has-to-say-it-is-ai-and-2-december-ends-the-marking-grace-period-14p7</guid>
      <description>&lt;p&gt;Since 2 August 2026, Article 50 of the EU AI Act applies to any product that interacts with EU users:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chatbots must disclose they are AI&lt;/strong&gt; - before or during the first interaction.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI-generated text, image, audio and video must carry a machine-readable mark.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deepfakes need a visible disclosure label.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your system was on the market before 2 August, the grace period for the marking duty ends &lt;strong&gt;2 December 2026&lt;/strong&gt;. Fines run up to 3% of global turnover.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is in scope
&lt;/h2&gt;

&lt;p&gt;SaaS founders shipping chat features, AI content tools, onboarding bots, support agents - anything an EU user might interact with. "We have no EU office" does not exempt you: the Act follows the users, not your HQ.&lt;/p&gt;

&lt;h2&gt;
  
  
  The practical checklist
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Map every AI feature&lt;/strong&gt; that interacts with users (chat, content generation, voice, avatars).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add disclosure copy at the right point&lt;/strong&gt; - first interaction for chatbots, visible labels for deepfakes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mark generated content machine-readably&lt;/strong&gt; (metadata or watermark; the technical standard is still being finalised, so document your interim approach).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep records of what is disclosed where&lt;/strong&gt; - regulators ask for evidence, not intentions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We turned this into a $29 template pack (obligation map, disclosure wording you can adapt, marking checklist). There is a free obligation checker on the page if you want to see where you stand first: &lt;a href="https://shuttlewright-ai-transparency-pack.pillar-3a8.workers.dev/" rel="noopener noreferrer"&gt;https://shuttlewright-ai-transparency-pack.pillar-3a8.workers.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Templates, not legal advice.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>saas</category>
    </item>
    <item>
      <title>Stop pasting client data into AI chats: a redaction step that runs entirely in your browser</title>
      <dc:creator>Shuttlewright</dc:creator>
      <pubDate>Sat, 17 Oct 2026 11:13:03 +0000</pubDate>
      <link>https://dev.to/shuttlewright/stop-pasting-client-data-into-ai-chats-a-redaction-step-that-runs-entirely-in-your-browser-2ncc</link>
      <guid>https://dev.to/shuttlewright/stop-pasting-client-data-into-ai-chats-a-redaction-step-that-runs-entirely-in-your-browser-2ncc</guid>
      <description>&lt;p&gt;Every day, developers and consultants paste real client data into AI chatbots. Names, emails, phone numbers, card numbers, amounts. The model gets a copy. So do its logs.&lt;/p&gt;

&lt;p&gt;We built Shuttlewright Mask to break that habit without breaking the workflow. It runs entirely in your browser tab: paste text in, sensitive values become tokens, send the masked text to any AI, paste the answer back, and the real values are restored.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;Paste a message like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi, my name is Kwame Mensah. Please remind our client Abena Osei (&lt;a href="mailto:abena.osei@example.com"&gt;abena.osei@example.com&lt;/a&gt;, 024 555 0134) that her invoice of GHS 4,250 is due Friday. Card on file: 4242 4242 4242 4242.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mask returns:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Masked: Hi, my name is [PERSON_1]. Please remind our client [PERSON_2] &lt;a href="https://dev.to[EMAIL_1],%20[PHONE_1]"&gt;PERSON_3&lt;/a&gt; that her invoice of [AMOUNT_1] is due Friday. Card on file: [CARD_1]. 7 sensitive values replaced.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The token map - which token means which real value - never leaves your browser tab. Only the masked text goes to the AI. Paste the reply back and Mask restores the real values, so your client-facing text reads normally.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it detects
&lt;/h2&gt;

&lt;p&gt;Names, email addresses, phone numbers, card numbers, account numbers, postal addresses, and currency amounts.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest part
&lt;/h2&gt;

&lt;p&gt;Our engine caught 26 of 26 seeded values (100%) across 12 synthetic business texts - on our own published test set. Your text is not our test set. No detector catches everything, and masked text can still carry identifying meaning (a rare job title plus a city can identify a person). That is why Mask shows you the masked version before anything is sent: you are the last check.&lt;/p&gt;

&lt;p&gt;Privacy tooling that oversells is just marketing. The self-test runs on the site, unedited, so you can check it yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free and Pro
&lt;/h2&gt;

&lt;p&gt;Free: the full mask-ask-restore loop in your browser, no account.&lt;br&gt;
Pro ($9/month): removes the length limit and adds a relay that double-checks for leaks before anything is sent.&lt;/p&gt;

&lt;p&gt;Try it: &lt;a href="https://shuttlewright-mask.pillar-3a8.workers.dev/" rel="noopener noreferrer"&gt;https://shuttlewright-mask.pillar-3a8.workers.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback welcome in the comments, especially texts where it misses something. That is how the detector gets better.&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>webdev</category>
      <category>security</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
