<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Weekly Tinkerer]]></title><description><![CDATA[Things I build out of utility for myself. Software some weeks, the farm other weeks. Output first, process as subplot.]]></description><link>https://theweeklytinkerer.com</link><image><url>https://substackcdn.com/image/fetch/$s_!ubT6!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491f2404-dd18-4eeb-9093-fe9046b9dedf_256x256.png</url><title>The Weekly Tinkerer</title><link>https://theweeklytinkerer.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 30 Oct 2026 23:48:08 GMT</lastBuildDate><atom:link href="https://theweeklytinkerer.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Kevin Ebert]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[weeklytinkerer@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[weeklytinkerer@substack.com]]></itunes:email><itunes:name><![CDATA[Kevin Ebert]]></itunes:name></itunes:owner><itunes:author><![CDATA[Kevin Ebert]]></itunes:author><googleplay:owner><![CDATA[weeklytinkerer@substack.com]]></googleplay:owner><googleplay:email><![CDATA[weeklytinkerer@substack.com]]></googleplay:email><googleplay:author><![CDATA[Kevin Ebert]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I Couldn't Afford an Agency, So I Built One in Claude]]></title><description><![CDATA[How seven scheduled agents run my night-shift marketing department on a $1,000 budget&#8212;while I keep final say on everything.]]></description><link>https://theweeklytinkerer.com/p/i-couldnt-afford-an-agency-so-i-built</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/i-couldnt-afford-an-agency-so-i-built</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sat, 24 Oct 2026 12:52:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IxAM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IxAM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IxAM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!IxAM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!IxAM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!IxAM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IxAM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:345793,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/221911464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IxAM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!IxAM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!IxAM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!IxAM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e64b5b-5fc1-437f-a91d-d5059fb88127_1376x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>I&#8217;m evolving. Slowly. I&#8217;ve always been a back of the adoption curve kind of guy, so over the last few years, as AI has stormed the castle so-to-speak, I&#8217;ve taken my time with it.</p><p>Being placed on permanent sabbatical in September of 2024 meant that I&#8217;ve missed the whole AI ultimatum put on employees by employers to adopt AI in their daily tasks. My AI adoption hasn&#8217;t been coerced which has allowed me to explore on my own schedule and focus its use on projects of my own interest. That&#8217;s how the idea of Tinkering started.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Two questions</h2><p>When I started tinkering, I was asking myself <strong>&#8220;how can I do or solve something with AI.&#8221;</strong> The framing of that question pushed me in a direction to opening up an AI chat agent, typing prompts, and getting results. It was fun, exciting, and powerful.</p><p>It allowed me to create three different software apps: bwak.news, bwak.email, and also bwak.money.</p><p>Bwak.news moves email newsletters out of your inbox into a feed. Bwak.email is a new way to bring email alias management to your email accounts. Bwak.money is a budgeting tool designed for those who use credit cards to earn points and pay them off monthly.</p><p>These projects reinvigorated my love of software development and introduced me to product development.</p><p>At the same time, I&#8217;ve been reading about the rapid changes in agentic development and using swarms of agents to accomplish so much more, and that got me curious. I needed to find a way to see what all the chatter was about.</p><p>This simple thought introduced a second question to ask: <strong>&#8220;If I could hire a staff to help me run bwak.news, who would I hire?&#8221;</strong></p><p>Well, I knew I had a sign-up and conversion problem. I had an initial wave of signups, but no conversions. I knew my efforts to get more signups were becoming futile and ineffective. So, with this in mind, I simply started asking AI to help me hire a sales and marketing staff who could help me develop a strategy to gain sign-ups for bwak.news.</p><p>I didn&#8217;t want an unsupervised AI approach though. I wanted to keep myself as a human in the middle in order to stay authentic to who I am and the brand I&#8217;m building.</p><h2>Why not a real agency</h2><p>And here&#8217;s the funny thing: I could absolutely go and hire a physical agency to do this work for me. As an entrepreneur, it would be a logical step. But I&#8217;m not here to turn bwak.news into some massive revenue-generating machine and the cost to hire an agency would devour my modest $1,000 start-up budget.</p><p>Instead, I&#8217;m here to teach myself how to bring a product to market. The goal isn&#8217;t to build a profitable business overnight. The goal is to enjoy the journey and learn what it takes to not only build a business, but also bring a product to market. Surprisingly, these are two different but related tasks.</p><p>So, given the breadth of AI and the low bar of entry I&#8217;ve chosen to make AI integral to that journey.</p><p>I went on a hiring spree. Err, I mean, I went on an AI Agent creation spree with the express purpose to help me find and lure prospects to signing up for bwak.news.</p><h2>Meet the team</h2><p>Before diving in, let me explain what a hire is. A hire is a skill I created in Claude and personified for my own edification and reference. The skill is invoked via a scheduled job that runs on my MacMini for now. The execution of a skill via Claude on a schedule is the AI agent I hired.</p><p>The agents work overnight, Scout starting at 1 am, Page Writer on Tuesdays at 1:30 am, Pitcher at 2:00 am, Notes at 3:30 am, Scorekeeper Mondays at 4 am, and Helios at 4:30 am. Helios writes the daily briefing from the output of the other agents that I read when I wake up.</p><p>No one talks to the agents; they run on their own and drop their output into files that I store in my file vault.</p><p>Each morning, before feeding the chickens and other barn animals, I sit and read my daily briefing.</p><p>On most days, walking through the daily ops note takes about 15 to 20 minutes. The note is setup where I make all the decisions. Nothing goes out that I haven&#8217;t written. I send every pitch, post every Note, and write every comment on my own. Before I publish anything, I run it through Grammarly to check for spelling and grammar.</p><p>Each Monday, Radar gives me a list of article pitches that I work separately from my daily routine.</p><h3>Finding partner prospects (Scout)</h3><p>Greg Roche over at The Introverted Networker (<span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Greg-The Introverted Networker&quot;,&quot;id&quot;:11890434,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/60ac4049-a019-4109-b227-9025d5a82d6b_4480x6720.jpeg&quot;,&quot;uuid&quot;:&quot;460949ea-d9a5-4bd8-9479-c8b48904c5db&quot;}" data-component-name="MentionToDOM"></span>), who took an early interest in bwak.news, generated 147 referrals out of the 274 from all my efforts by mentioning the app in his newsletter. His warm lead and trusted voice did more for my product&#8217;s promotion than all the articles I wrote to date. His warm referral has become the rally cry for my strategy on finding new subscribers.</p><p>This prompted my first hire, Scout, whose job is to find other newsletters and directories whose readers would make good bwak.news users: people subscribed to more newsletters than they can keep up with.</p><h3>Making pitches (Helios, Pitcher)</h3><p>Scout finds the prospects. I subscribe to their newsletters or directories, and then I watch. And read. And interact with the prospective newsletters.</p><p>Scout has found 42 prospects so far and I&#8217;ve subscribed to 28 to date. That&#8217;s a lot of newsletters and articles to read, so I hired a chief-of-staff, Helios to help track the publications and read the articles with me. Helios&#8217;s job is to read an article, and hold it up against my area of expertise and rate if an article is worth commenting on or engaging with, i.e., will I have something valuable to add to the conversation.</p><p>Helios doesn&#8217;t write the comments, it only finds the articles, hands them off to me with why it thinks it&#8217;s a good fit for me to engage with and then I do the rest.</p><p>This is a daily ritual I&#8217;ve adopted and has really taken shape over the last week.</p><p>These actions only serve as a means to develop a relationship with the person behind the newsletter. The goal is to make enough comments and interact with the newsletter enough so when I&#8217;m ready, I can make a pitch to the owner on why I think bwak.news aligns with their audience and see if they&#8217;d be interested in a partner deal.</p><p>I haven&#8217;t made any pitches yet, but when I do, Pitcher, my new hire, will be right there with me with all the data from our research and prospecting.</p><p>I&#8217;ve set minimum requirements around who to pitch which include observing the newsletter for at least a month (ideally get at least 4 editions) and make at least 3 meaningful comments.</p><p>Only then, will I allow Pitcher to put together the data I need to write a short simple, hopefully warm pitch to the operator.</p><p>I won&#8217;t have any pitch candidates until after Oct. 31 when I will have satisfied the requirements.</p><h3>Posting on social media (Notes, Radar)</h3><p>Building a business and a personal brand requires regular posting on social media channels. I hired two AI Agents Notes and Radar to help with this.</p><p>Notes watches over all my tinkering and makes suggestions for quick articles to post on Substack and LinkedIn.</p><p>Radar leverages a curated list of industry news sources, commentators, and newsletters related to my areas of interest (AI, technology, and operations) to help generate longer form articles to post on LinkedIn and Substack.</p><p>This has been the toughest hire yet and there has been a lot of trial and error to get meaningful output from Radar. Hopefully, I&#8217;ve dialed it in and starting on Monday, I&#8217;ll begin the process of publishing pieces from Radar regularly.</p><h3>Showing up in search and AI answers (Page Writer)</h3><p>Page Writer is helping create the SEO pages that are being used to feed Google and AI crawlers. It&#8217;s doing weekly research on what those readers search for and coming up with ideas for the content that will help improve my listing on Google and hopefully get our foot in the door for AI recommendations.</p><p>This hire is a black box to be honest and I hired it just to get started, but need to spend a lot more time pushing buttons and pulling strings to make it effective at its job.</p><h3>Measuring results (Scorekeeper)</h3><p>And what good would any of this work be if I didn&#8217;t have a set of key performance indicators to measure against? I hired Scorekeeper to do just that. Identify the KPIs, gather the metrics daily and weekly. Feed the results along with commentary on what&#8217;s moving the needle, areas I need to focus on, or celebrate wins from prior campaigns.</p><h2>Why it&#8217;s fun again</h2><p>It feels really f**king cool to have this team.</p><p>Before, all the work fell on my shoulders and was too much and became a non-starter for me. With the sales agents, that is changing. I have excitement again, I have direction, and I have the help I need to get this push started in earnest.</p><p>And the best part of all, starting a business, building a product from scratch, marketing the product, and making sales is all new to me. And with it, comes a whole host of problems that require solving.</p><p>The jury is still out. What I described here is where I&#8217;m at now. Swimming in the proverbial deep end of problems is exciting and scary at the same time. Working toward results in a systematic form is priceless.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Whose login owns your business?]]></title><description><![CDATA[One person with AI attacked 17 organizations. How I set up the accounts behind my farm and this newsletter.]]></description><link>https://theweeklytinkerer.com/p/whose-login-owns-your-business</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/whose-login-owns-your-business</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sat, 17 Oct 2026 13:32:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kEeL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Something from a report Anthropic posted last year has bothered me for a while now, and I&#8217;m finally able to put it into words.</p><p>The report outlined how a single person was able to attack 17 different organizations through a variety of large-scale theft and extortion attempts of personal data within a month&#8217;s time frame.</p><p>Not a crime ring. Not a syndicate. One person sitting behind a terminal using AI.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1_cb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1_cb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png 424w, https://substackcdn.com/image/fetch/$s_!1_cb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png 848w, https://substackcdn.com/image/fetch/$s_!1_cb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png 1272w, https://substackcdn.com/image/fetch/$s_!1_cb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1_cb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png" width="1456" height="729" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:729,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66084,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/220831174?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1_cb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png 424w, https://substackcdn.com/image/fetch/$s_!1_cb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png 848w, https://substackcdn.com/image/fetch/$s_!1_cb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png 1272w, https://substackcdn.com/image/fetch/$s_!1_cb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c15bae-2301-4a40-a4f7-7434781e663b_1456x729.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As a small business owner, what this means to me is that cybercriminals no longer have to target any particular organization.</p><p>Instead, all they have to do is find a door into yours.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kEeL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kEeL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png 424w, https://substackcdn.com/image/fetch/$s_!kEeL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png 848w, https://substackcdn.com/image/fetch/$s_!kEeL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png 1272w, https://substackcdn.com/image/fetch/$s_!kEeL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kEeL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png" width="1456" height="729" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:729,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69675,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/220831174?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kEeL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png 424w, https://substackcdn.com/image/fetch/$s_!kEeL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png 848w, https://substackcdn.com/image/fetch/$s_!kEeL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png 1272w, https://substackcdn.com/image/fetch/$s_!kEeL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9816e8e7-f04e-48e5-8a33-6ec1299de149_1456x729.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Using AI, a cybercriminal can &#8220;vibe&#8221; code, automate reconnaissance, harvest victims&#8217; credentials, and penetrate your network and decide what can be exploited for their gain.</p><p>We are all targets now.</p><p>What this has meant to how I run my small business is that I&#8217;ve built some core principles ingrained in me from my days in corporate America.</p><p>Early on, our security team rolled out a least privilege policy for every employee.</p><p>At the time, my team had admin rights to many of the systems they supported, rights they didn&#8217;t need.</p><p>We worked to build automation systems that replaced the need for admin access. The tools were purpose-built with only the permissions needed to do the job.</p><p>We gathered logs in central repositories, stripped of sensitive data, so nobody had to log in to a server and grep through a log anymore.</p><p>It was fine. And other groups followed suit.</p><p>Today, in my own business, the email account I use for all my communication with customers and clients is not the one I use for my bank and payment platforms.</p><p>The email addresses I use to manage my farm&#8217;s YouTube channel and The Weekly Tinkerer Substack are different too.</p><p>On each of these platforms, I keep separate account holder and content creator roles. I never publish content from the account holder role. And I never use the content creator role for account-level changes: monetization settings, security changes, anything destructive.</p><p>And yes, you guessed it, each role has its own email and login.</p><p>I only stay logged in as the content creator, which is also the account I use to interact with other channels and newsletters.</p><p>The logs and metrics from the infrastructure running my applications are sent to a central monitoring system that sends alerts to my phone, so I never have to log in to the servers directly.</p><p>Does this setup feel extreme and obtrusive?</p><p>Not really.</p><p>Using a good password manager to access different resources with the appropriate credentials is seamless and requires minimal thought.</p><p>Whose login owns your business&#8217;s Facebook page, your Google Workspace, your bank portal? Is it the one you answer email from all day?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Now What?]]></title><description><![CDATA[My sister asked it out loud. More than half of my bwak.news early adopters asked it in silence.]]></description><link>https://theweeklytinkerer.com/p/now-what</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/now-what</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sat, 10 Oct 2026 13:03:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2g-K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#8220;Now what?&#8221; The two-word question that has perplexed me for a few months now. It was a question my sister asked me over the phone after she signed up to use bwak.news.</p><p>I thought to myself, what do you mean, now what? You use your newly created Bwak News email address to sign up for your favorite newsletters.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>She actually exposed a hard truth about the onboarding process that I didn&#8217;t understand at the time.</p><p>Until now.</p><p>More than half (57%) of the early adopters of bwak.news said the same thing. The data shows me that people are signing up, but they aren&#8217;t subscribing to any newsletters.</p><p>They are all asking the same question, asked in silence and backed by telemetry data on usage statistics &#8212;one number: zero usage of the app.</p><p>Zero means that after signing up and logging in, they don&#8217;t see anything in their feed except a request to resubscribe to all the newsletters they already read using their newly minted Bwak News email address.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yYUV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yYUV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png 424w, https://substackcdn.com/image/fetch/$s_!yYUV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png 848w, https://substackcdn.com/image/fetch/$s_!yYUV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png 1272w, https://substackcdn.com/image/fetch/$s_!yYUV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yYUV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png" width="1068" height="458" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:458,&quot;width&quot;:1068,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:108658,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/219258965?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yYUV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png 424w, https://substackcdn.com/image/fetch/$s_!yYUV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png 848w, https://substackcdn.com/image/fetch/$s_!yYUV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png 1272w, https://substackcdn.com/image/fetch/$s_!yYUV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ccf2693-0a4c-4bda-88e3-599e0578f84f_1068x458.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Screenshot of what a user sees after registering to use bwak.news for the first time.</figcaption></figure></div><p>In marketing speak, there was no payoff in my subscribers&#8217; zero-to-hero journey after signing up to use the product, only more work.</p><p>My vision for the app was that after signing up, you use the custom email address you create to happily go to your favorite newsletters and update your subscriptions with the new email address.</p><p>This vision gave me a head start over more than half of the early adopters.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2g-K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2g-K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png 424w, https://substackcdn.com/image/fetch/$s_!2g-K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png 848w, https://substackcdn.com/image/fetch/$s_!2g-K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png 1272w, https://substackcdn.com/image/fetch/$s_!2g-K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!2g-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png" width="1456" height="729" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:729,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67750,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/219258965?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2g-K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png 424w, https://substackcdn.com/image/fetch/$s_!2g-K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png 848w, https://substackcdn.com/image/fetch/$s_!2g-K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png 1272w, https://substackcdn.com/image/fetch/$s_!2g-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72cfcd0-78e4-4805-bad7-89bc4cda78cb_1456x729.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The trial users who came after them? 64% followed the initial set of instructions explaining how to subscribe to your first newsletter, Morning Brew, and that was it.</p><p>Nothing more.</p><p>My sister has never had a problem giving me feedback. Sometimes it&#8217;s overt and loving, other times it&#8217;s subtle and unintentional.</p><p>Her words have weighed heavily on me over the last couple of months, until today, when I finally decided to understand exactly what she meant.</p><p>The design of bwak.news is heavily influenced by modern-day social feeds. It&#8217;s a service you sign up for, find some friends to follow. Read the content they produce.</p><p>So, I looked back at the history of one of the original gangsters of this model, the application formerly known as Twitter.</p><p>In 2014, then-CEO Dick Costolo told a group of stock analysts that too many users start with what he called &#8220;unhealthy timelines&#8221; after onboarding to the app.<sup>[1]</sup> Empty feeds characterize these unhealthy timelines or feeds with very little content because they follow only a small number of other accounts.<sup>[2]</sup></p><p>TechCrunch went on to report that new users were &#8220;dumped on a mostly empty timeline,&#8221; and &#8220;until they do [find people to follow], they&#8217;re at risk of churning out and never coming back.&#8221;<sup>[2]</sup></p><p>The answer that Twitter came up with? They unveiled a feature where new users pick categories like sports, TV, and technology and get a feed of tweets right away.<sup>[3]</sup></p><p>There it was. Twitter experienced, albeit at a larger scale, the same problem my numbers were telling me.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!odyj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!odyj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png 424w, https://substackcdn.com/image/fetch/$s_!odyj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png 848w, https://substackcdn.com/image/fetch/$s_!odyj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png 1272w, https://substackcdn.com/image/fetch/$s_!odyj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!odyj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png" width="1456" height="707" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:707,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73214,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/219258965?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!odyj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png 424w, https://substackcdn.com/image/fetch/$s_!odyj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png 848w, https://substackcdn.com/image/fetch/$s_!odyj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png 1272w, https://substackcdn.com/image/fetch/$s_!odyj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1368bad-dc9a-487b-ac71-df804eb7cedb_1456x707.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>More than half of the early adopters never really started using the app, meaning they never received a single newsletter.</p><p>And 100% of all trials I&#8217;ve gotten since rolling out the application have churned after initially signing up.</p><p>Because Twitter&#8217;s success speaks for itself, there is something to be learned here.</p><h2>bwak.news &#8220;For You&#8221; Feed</h2><p>And that gets me back to a new feature I&#8217;m rolling out with bwak.news this week.</p><p>It&#8217;s the &#8220;For You&#8221; feed.</p><p>All users now get two feeds in the app: &#8220;Following&#8221; and &#8220;For You.&#8221; As before, the Following feed consists of newsletters you signed up for using your bwak.news email address.</p><p>The For You feed lets you choose from a list of curated newsletters by topic.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SGjk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SGjk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png 424w, https://substackcdn.com/image/fetch/$s_!SGjk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png 848w, https://substackcdn.com/image/fetch/$s_!SGjk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png 1272w, https://substackcdn.com/image/fetch/$s_!SGjk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!SGjk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png" width="968" height="468" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:468,&quot;width&quot;:968,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:84360,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/219258965?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SGjk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png 424w, https://substackcdn.com/image/fetch/$s_!SGjk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png 848w, https://substackcdn.com/image/fetch/$s_!SGjk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png 1272w, https://substackcdn.com/image/fetch/$s_!SGjk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097b6bfa-9746-43a0-bb58-fef8022c34a7_968x468.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The new For You feed as seen when you access it the first time.</figcaption></figure></div><p>As a new user, this means that after signing up, you don&#8217;t know which newsletters to subscribe to or don&#8217;t have time to port your existing newsletters into bwak.news, you can select a few topics of interest and start reading some of the industry&#8217;s best newsletters related to that topic.</p><p>Existing users, the For You feed offers a unique way to discover newsletters you don&#8217;t already follow.</p><p>Either way, when you come upon a newsletter you&#8217;d like to subscribe to, the application makes it easy by directing you to the signup page with your bwak. news email address. Once you&#8217;re signed up, the newsletter will appear in your Following feed.</p><h2>Why Follow Anything?</h2><p>Viewing the For You feed is like window shopping. It&#8217;s a curated list of newsletters you can preview before you commit.</p><p>The feed allows you to &#8220;try&#8221; a newsletter on before you &#8220;buy.&#8221; If you want to take the tags off and &#8220;wear&#8221; the newsletter, use the built-in feature to follow the newsletter.</p><h2>What&#8217;s Next</h2><p>As you read this newsletter, the For You feed has been enabled.</p><p>If you are already a subscriber, check out the new feature and see if you can find a new newsletter to follow based on your interests.</p><p>And if you haven&#8217;t tried it yet, why not? There is nothing to lose and no credit card necessary.</p><p>Terri&#8217;s feature (what I&#8217;ve decided to call the For You feed) hasn&#8217;t been tested yet, but it offers a different &#8220;now what&#8221; than what I originally built, and I&#8217;m confident she&#8217;ll approve the feature name when she reads this.</p><p>Head over to the website and <a href="https://app.bwak.news/l/for-you">sign up</a> for your free 30-day trial.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Sources</h2><ol><li><p>&#8220;7 Things We Learned At Twitter&#8217;s Analyst Day,&#8221; Martin Beck, Marketing Land (now MarTech), November 12, 2014. <a href="https://martech.org/top-things-learned-twitters-analyst-day/">https://martech.org/top-things-learned-twitters-analyst-day/</a></p></li><li><p>&#8220;Twitter Will Onboard Users With &#8216;Instant Timeline&#8217;, Inject Top Tweets From &#8216;While You Were Away&#8217;,&#8221; TechCrunch, November 12, 2014. <a href="https://techcrunch.com/2014/11/12/twitter-instant-timeline/">https://techcrunch.com/2014/11/12/twitter-instant-timeline/</a></p></li><li><p>&#8220;Twitter Unveils Timeline Highlights, Instant Timeline for New Users,&#8221; Victor Luckerson, TIME, November 12, 2014. <a href="https://time.com/3581714/twitter-timeline-highlights-instant-timeline/">https://time.com/3581714/twitter-timeline-highlights-instant-timeline/</a></p></li></ol>]]></content:encoded></item><item><title><![CDATA[The Toilets Wouldn't Flush]]></title><description><![CDATA[A summer of things breaking taught me the difference between failure and wabi-sabi.]]></description><link>https://theweeklytinkerer.com/p/the-toilets-wouldnt-flush</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/the-toilets-wouldnt-flush</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sat, 19 Sep 2026 13:03:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AQnj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This hasn&#8217;t been the summer it was supposed to be. It started with a new covenant: plant a kitchen garden, sustain our bodies with its fruits, and build a sustainable life. A new life no longer anchored in corporate America, but built upon the freedom of time that is mine to own.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://theweeklytinkerer.com/subscribe?"><span>Subscribe now</span></a></p><p>It was going to be the summer when I solidified my next career move by launching bwak.news and The Weekly Tinkerer newsletter to build my brand and serve as a funnel for building trust with my future customers.</p><p>I had it all planned out; this was going to be my second coming-of-age story.</p><p>And then I woke up one morning to find the toilets wouldn&#8217;t flush. It was the perfect harbinger for things to come.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AQnj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AQnj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AQnj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AQnj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AQnj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AQnj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg" width="480" height="639.8901098901099" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:19865908,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/216414014?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AQnj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AQnj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AQnj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AQnj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fd6b7b-ffdf-4bfc-adba-9945cb228e00_4284x5712.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The toilet where it all began</figcaption></figure></div><p>So, when your septic system guy says pump your tank again in 2025, he means 2025. Not 2026. Failing to pump your septic system regularly can cause it to back up. And, in case you weren&#8217;t aware, all your sewage runs into one location, and when it backs up, it starts to seep out of the drains.</p><p>We were a few flushes away from sewage flowing back into our bathroom and having a bigger mess to clean up.</p><p>Next up, our upstairs AC finally kicked the bucket and needed replacing. I knew it was going to happen; we had already had to charge it with refrigerant twice in 5 years. But there was no more charging; we couldn&#8217;t go into the summer blowing hot air through our vents. Another couple of days lost as we got it replaced.</p><p>And as if right on queue, the tarp covering our newish chicken coop ripped off. This hoop-coop was a new design I tried, and now I don&#8217;t like it. That took a day to repair before all the rain hit during the spring.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AlGx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AlGx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AlGx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AlGx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AlGx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!AlGx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg" width="480" height="622.4875621890548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1564,&quot;width&quot;:1206,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:617193,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/216414014?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AlGx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AlGx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AlGx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AlGx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9e7443-b750-4962-9ae7-a8f2110fe106_1206x1564.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Torn cover on our chickens hoop coop</figcaption></figure></div><p>Then we had the big storm roll through, a lot of lightning and even more rain. RadarScope showed 4 different lightning strikes on our property. It was a storm for the ages. We survived the night, but we woke up facing another calamity. The pergola on our back terrace collapsed. No one was hurt, except my plans for the ideal summer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I6xh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I6xh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I6xh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I6xh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I6xh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!I6xh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg" width="480" height="641.592039800995" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1612,&quot;width&quot;:1206,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:515268,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/216414014?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I6xh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I6xh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I6xh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I6xh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372ccc7b-b8e4-4c4d-b17c-6e5b2c368057_1206x1612.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Collapsed pergola on our terrace after rainstorm</figcaption></figure></div><p>Oh, and I nearly forgot about the shutoff valve in our upstairs bathroom that failed, flooding our main bedroom. Who knew that you should replace those shutoff valves every several years? I do now.</p><p>And not to be outdone, Ada wanted in on the action also. We&#8217;ve known for a while her eyelashes were thick and growing the wrong way, irritating her eyes. We just failed to understand how serious the problem was. Each eye developed an ulcer, with one of them nearly ready to rupture, ruining her vision permanently. This required immediate surgery. We met with the doctor on a Friday; on Monday she was under the knife.</p><p>I could go on with several more surprises that hit us this summer, but you are sensing a theme here, and I won&#8217;t bore you with the rest.</p><p>The mental fatigue of waking up to a new problem each morning started wearing on me. Getting out of bed to face the day&#8217;s crisis was taking longer and longer each morning.</p><p>The lack of motivation to get things done compounded into sleepless nights.</p><p>Eventually, the kitchen garden, which had started with so much promise, was overgrown, with the fruits of my labor dying on the vines in the searing heat of August.</p><p>I needed a reframe, and it just so happened to come from a video<sup>[1]</sup> I watched on a recent sleepless night.</p><p>Until that video, wabi-sabi was not in my vocabulary. As I watched the video, a sense of calm came over me. The toil of everything unplanned that happened over the summer looked different.</p><p>The backed-up septic system was not one step away from catastrophe. It was a lesson to tend to the system that makes the farm work.</p><p>The failed AC was not a crisis; it had been building over time, and I got to choose when to fix it.</p><p>The failed covering on the chicken coop was not a disaster in the middle of the winter, when the chickens would need protection the most. Instead, I replaced it between rainstorms and reinforced it with a velvet underlayment, which improved it.</p><p>The collapsed pergola was a reminder of time&#8217;s passage and the impermanence of man-made structures that require our care. The collapse is simply a passage of time, marking a new beginning for our terrace.</p><p>The plumbing leak, which required new flooring and ceiling repair, was a reminder that I can take care of our property and meet its needs.</p><p>Ada&#8217;s eye is distressing, but she is now on the road to recovery, and her kisses remind me that she&#8217;s going to be just fine.</p><p>And then there is the garden. Despite the record-setting heat and drought we are experiencing in the late summer, this past spring I equipped it with a drip irrigation system, and the lushness of the overgrown garden is a testament to its effectiveness.</p><p>Today, I stand on our front porch looking out over the land with different reverence. Until today, I had been failing to see the beauty in the imperfection, impermanence, and incompleteness of our lives and our land.</p><p>A lesson that usurps the original covenant I made with myself at the beginning of the summer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sgBN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sgBN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sgBN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sgBN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sgBN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!sgBN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg" width="480" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:9225958,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/216414014?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sgBN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sgBN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sgBN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sgBN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46ccb5ba-a70f-4614-9130-122ca8fbbee6_3341x4176.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Our front pasture during sunset</figcaption></figure></div><h2>Sources</h2><ol><li><p>&#8220;6 Simple Wabi-Sabi Habits to Bring Beauty and Peace to Your Life&#8221; Produced by Zen to Manabi. </p></li></ol><div id="youtube2-izclUXE1K-c" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;izclUXE1K-c&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/izclUXE1K-c?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>&#8212;Kevin</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Big Mistake. Big. Huge.]]></title><description><![CDATA[Building a custom email gatekeeper, breaking the cardinal rule of software deployment, and surviving the fallout.]]></description><link>https://theweeklytinkerer.com/p/big-mistake-big-huge</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/big-mistake-big-huge</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sat, 29 Aug 2026 12:51:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ubT6!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491f2404-dd18-4eeb-9093-fe9046b9dedf_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Deploying <a href="https://bwak.news">bwak.news</a> to the public landed differently. The level of abstraction between the users and me lowered the stakes. They are people I don&#8217;t know sitting on the other side of a computer monitor.</p><p>So when I decided to deploy bwak.email to my family&#8217;s email domain, theeberts.us, I was naturally terrified of how my wife, Charlotte, would accept the change.</p><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>There was no hiding behind a screen of anonymity like <a href="https://bwak.news">bwak.news</a> afforded me. This time, the user lives under the same roof.</p><p>She watched me toil over its development. I reported the progress to her as I tested it on my personal email domain, k3bert.net.</p><p>She understands the concept; it&#8217;s a tool for controlling who sends you emails. You get an email from our bank, approve it. You get an email from a Prince from Sub-Saharan Africa; you deny it. The difference is, these decisions are made before the email lands in your inbox.</p><p>Not a spam filter.</p><p>Not inbox rules.</p><p>Just a gate; you control who gets to enter your inbox.</p><p>The software flips the script; instead of anyone with your address emailing you, they have to pass through a gate that you hold the key to. You don&#8217;t let them in; their email never sees the light of day in your inbox.</p><p>Until last week, the concepts were just that, concepts to her. She lacked any hands-on experience. The things I told her about what the software would do had no meaning until now.</p><p>This was the first time I got to launch software where the primary user lived under the same roof as I did. Her ability to understand and operate the software is the litmus test I&#8217;ll use to decide whether to take the software public.</p><p>So, I was excited and nervous.</p><p>I hit the deploy button and in the immortal words of Vivian Ward (played by Julia Roberts) in the movie &#8220;Pretty Woman&#8221;</p><blockquote><p>Big mistake. Big. Huge.</p></blockquote><p>You see, I did something stupid. Not only did I deploy bwak.email to the theeberts.us domain, but I also decided to move our primary email provider from Proton Mail to Apple&#8217;s iCloud Plus (iCloud+) at the same time.</p><p>You never deploy two breaking changes at the same time. Never. Full stop.</p><p>So, it won&#8217;t come as a surprise to you when I tell you that she went to the USPS website and signed up to receive delivery notifications for a package she was receiving later in the week. Bwak.email sent her the approval request, &#8220;Let <a href="mailto:USPostalService@usps.com">USPostalService@usps.com</a> through&#8221; and she clicked the link to approve, and nothing happened.</p><p>I swear you could see the blood leave my face. Something I had tested hundreds of times before didn&#8217;t work.</p><p>Digging through the logs gave me the error.</p><blockquote><p>Blocked due to content: The message was rejected because it contained content that the recipient&#8217;s server doesn&#8217;t allow</p></blockquote><p>And as if the software gods were watching and laughing at me, another approval request came in, this time from our bank alerting us to a new statement.</p><p>She approved it.</p><p>And again, nothing delivered.</p><p>I sent my own test message in from my Gmail account, approved it, and it works!</p><p>After digging through the Resend API documentation and a few expletives later, I found the root cause.</p><p>The way Resend forwarded the email to the inbox after approval broke the email&#8217;s chain of custody and removed the original DKIM signature. Apple was interrogating the message, recognizing it originated from the USPS. But without the original DKIM signature, it flagged the message as spoofed and would not deliver the forwarded message from bwak.email.</p><p>This behavior was different. All my testing to date used Proton Mail as my mail provider, but as part of this changeover, I moved the domain to Apple&#8217;s iCloud+ service for our mail hosting, essentially negating the months of testing I did with k3bert.net.</p><p>I had a choice to make: roll back to the last known good state, which meant moving back to Proton Mail and undeploying bwak.email from theeberts.us domain. This didn&#8217;t excite me; by now it was 1:30 AM and any rollback would be a three- to four-hour process.</p><p>Emails weren&#8217;t being lost; I still had the failed messages in the logs, but my wife couldn&#8217;t see them.</p><p>So I did the next logical thing, I forged ahead.</p><p>Forging ahead meant finding another mailing service, Mailgun, that had an API that supported forwarding original MIME-type messages, which meant the DKIM would remain intact.</p><p>On paper, it should work.</p><p>It took 12+ hours to set up the Mailgun account. There was a verification process I had to go through to prove ownership of the domain I was using, and to describe the system I built, which required a human to review and approve.</p><p>In the end, I swapped out Resend for Mailgun, and I was ready to test again.</p><p>I might be making it up, but I swear I saw the clouds part and the sun come through the moment Charlotte hit approve on the same USPS message from the day before, and bwak.email delivered the message.</p><p>You could hear Katrina and the Waves&#8217; song &#8220;Walking on Sunshine&#8221; start up in the background. That was me, walking on sunshine and partying like you&#8217;d expect a 54-year-old retired technologist would party.</p><p>A few days later, Charlotte is managing our email domain theeberts.us like a boss. I&#8217;ve purposefully stepped back to let her go at it. I spent 60 seconds explaining how to use the app, and here she was a few days later, owning it, approving and blocking senders like the pro she is.</p><div><hr></div><h3>Interesting Read</h3><p>This week, I&#8217;m adding a new section to the newsletter that you&#8217;ll see from time to time. It&#8217;s part experiment and part advertisement for <a href="https://bwak.news">bwak.news</a>, the first app I built to bring to market. </p><p>The whole point of this section is that it&#8217;s a quick take on something I read over the last week that got me thinking, and I want to share.</p><h4>Hiding Out &#8212; Seth Godin</h4><p>Originally published via Seth&#8217;s Blog Newsletter: <a href="https://app.bwak.news/share/aoci2PpJ10w">https://app.bwak.news/share/aoci2PpJ10w</a></p><p><strong>My Take<br></strong>I have a long history of playing things safe, or at least holding things close to my chest.</p><p>Safe works until it doesn&#8217;t.</p><p>Being reminded that time is batting a thousand for outing safety motivates you to bet on yourself.</p><p>Truer words couldn&#8217;t be spoken for where I&#8217;m at in my life at this point. I&#8217;m calling myself retired, but I&#8217;m learning I have a lot more to give. So recoiling into the safety of my home is no longer a stance I&#8217;m taking because time will out me.</p><div><hr></div><p>What&#8217;s something you built, wrote, or made that you didn&#8217;t really trust was good enough? Not until someone picked it up on their own and got it, without you there to explain it?</p><p>&#8212;Kevin</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Who Decides You're the Problem?]]></title><description><![CDATA[A Waymo called the cops on two teenagers. The privacy question turned out to be the wrong one.]]></description><link>https://theweeklytinkerer.com/p/who-decides-youre-the-problem</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/who-decides-youre-the-problem</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sat, 22 Aug 2026 13:02:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/EPxy-25Lefc" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Who is really behind the curtain when an autonomous vehicle decides to pull over under the guise of a &#8220;technical issue?&#8221; But, that &#8220;technical issue&#8221;, may indeed be a ruse set off by an alert and provide the the cover and time for the authorities to arrive on the scene and investigate.</p><p>I had my assumptions, but decided it was worth looking into further.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>My first instinct told me this was a privacy nightmare, a case of false pretense, deceit, lies, or worse entrapment. I was having a visceral reaction of hell no, I&#8217;ll never set foot in a Waymo vehicle. I will not surrender any more of my privacy rights in the name of convenience in the surveillance economy.</p><p>I&#8217;m, of course, talking about the recent incident where Waymo stopped a vehicle and alerted local police because two teenage riders were acting suspiciously in the vehicle during their ride. The passengers were allegedly drinking and waving guns (that turned out to be toys). <sup>[1]</sup></p><p>The story goes that suspicious activity was detected, alerted a Waymo employee who intervened telling the the passengers there was a &#8220;technical issue&#8221; with the car, advising that it was pulling over and that they should remain in the vehicle. Simultaneously, Waymo contacted the police, gave them the vehicle&#8217;s location, and kept it there until they arrived.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zuAt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zuAt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png 424w, https://substackcdn.com/image/fetch/$s_!zuAt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png 848w, https://substackcdn.com/image/fetch/$s_!zuAt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png 1272w, https://substackcdn.com/image/fetch/$s_!zuAt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zuAt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png" width="1080" height="300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:300,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43699,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/212173830?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zuAt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png 424w, https://substackcdn.com/image/fetch/$s_!zuAt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png 848w, https://substackcdn.com/image/fetch/$s_!zuAt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png 1272w, https://substackcdn.com/image/fetch/$s_!zuAt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5098b2-f538-4129-9a07-1632dd775b96_1080x300.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The police officers arrived on the scene and treated it like a high-risk traffic stop and proceeded to remove the passengers from the vehicle and ultimately took them home and didn&#8217;t arrest them.</p><p>After reading the article, I had questions and needed to research this further.</p><h3><strong>Did Waymo play judge, jury, and executioner?</strong></h3><p>Reading the article, that&#8217;s what every fiber in my body was screaming. But I&#8217;ve been known to overreact a time or two, and this was no exception.</p><p>As it turns out, no, not really.</p><p>Nearly a few dozen sensors are installed on each vehicle, both internally and externally. There are the obvious ones you&#8217;d expect any autonomous vehicle to have to drive safely, and there are the internal ones you might think about, but there are a few you may not consider. <sup>[2]</sup></p><p>Internally, there are obviously the cabin cameras, seatbelt, door, and window sensors. Not so obvious are the weight sensors, smoke detectors, and microphones.</p><p>What is missing, though, is facial and voice recognition systems. <sup>[3]</sup></p><p>And, according to the Waymo privacy statement and terms of service, the data collected is used to enhance the rider experience, improve vehicle operations, respond to emergency situations, and protect Waymo&#8217;s property. <sup>[4]</sup></p><p>This data is not shared with law enforcement agencies unless requested through the normal judicial warrant process. They regularly receive and respond to these requests and assert that they follow the relevant laws of the jurisdictions in which they operate. No different of a stance than most technology companies take.</p><p>In the case of the two teenagers, the vehicle&#8217;s machine learning detected an issue from the data collected, involved a Waymo operator who decided there was enough concern to alert local police and suspend the ride so they could investigate.</p><p>So yes, Waymo alerted police, but they didn&#8217;t act as the judge, jury, and executioner. That was left to law enforcement and the district attorney.</p><h3><strong>What about privacy? Isn&#8217;t there a level of privacy you expect when riding in a taxi, ride-share, or autonomous vehicle?</strong></h3><p>At first glance, this screams of a privacy violation of sorts. People&#8217;s behaviors were monitored, someone was alerted, and action was taken.</p><p>But, as I thought through the situation, I found myself asking, what level of privacy do we expect when taking public transportation? Traditional taxi services? Or ride-share services?</p><p>In all of those cases, there is some level of human and autonomous observation, i.e., video recording, a driver, a conductor, an operator, and other safety sensors. So, you shouldn&#8217;t expect any specific level of privacy when using them.</p><p>Thus, I couldn&#8217;t see anything Waymo was doing that isn&#8217;t already being done through other modes of transportation. The primary difference is that the person isn&#8217;t in the same vehicle as you are; they are remote and interact with you in real time when required. But, they aren&#8217;t constantly monitoring the situation, AI is.</p><p>Take, for example, you jump into a cab and light up a cigarette; the cab driver is likely to turn around and tell you to put it out. Is that necessarily any different than an autonomous vehicle detecting the same behavior and asking you to refrain from smoking in the vehicle?</p><p>The more I thought about it, the more I couldn&#8217;t see any difference between the autonomous vehicle experience and other public transportation and taxi services when it comes to the level of privacy you should expect.</p><p>But, you have to admit the obvious, there is the layer of abstraction, filled by AI, that exists between the passenger and the Waymo employee that&#8217;s different.</p><h3><strong>When in a Waymo, are you aware that you are being monitored and recorded?</strong></h3><p>Yes-ish.</p><p>After watching a few different riders&#8217; experiences on YouTube, you hear the car go through a series of instructions and disclosures when the passengers first enter the car and begin the ride.</p><p>The vehicles start with a confirmation of the destination, seat belt requirements, rider support button use, child seat safety, emergency protocol, no interference, and interior monitoring and microphones.</p><p>The announcement also covers the use of interior cameras to check on riders, analyze for product improvements, and <strong>more</strong> (see the next section). That&#8217;s the &#8216;ish&#8217; in yes-ish, b/c what is more? The weight sensors? Door sensors? Window sensors? Other sensors?</p><p>The microphones remain off unless you activate them via a support request or when a situation requires them for two-way dialog with a Waymo operator.</p><p>The disclosure doesn&#8217;t get into how your data is collected and managed, or what your rights are regarding data privacy. For that, you have to use the app or go to their website.</p><p>So technically, you may hear that you are being recorded and monitored, but most people who sit down believe there is a level of privacy because a human is not present. Which is obviously different than when taking a taxi or other ride share service who have humans operators in the vehicle with you.</p><h3><strong>Is it an algorithm or human making the decision on what is suspicious activity?</strong></h3><p>Both.</p><p>Business Insider reports that &#8220;...Waymo hasn&#8217;t publicly disclosed the full range of behaviors its systems can recognize or exactly what prompts an employee to access a live feed.&#8221; <sup>[5]</sup> Nor will they disclose a full list of sensors they have.</p><p>But, Waymo does disclose that they leverage machine learning from the behavior detecting sensors, which trigger alerts to employees.</p><p>Only after anomalous events are detected will the vehicle engage with human operators from Waymo. These operators have access to all the sensors and internal camera feeds and can engage with passengers using the microphones and the car&#8217;s sound system.</p><p>In other videos I&#8217;ve watched, though, it doesn&#8217;t appear that these operators can remotely operate the car per se, like with a remote control car. <sup>[6]</sup> From the video, you can see and hear the operator clearly explaining to the passenger that they are sending recommendations to the car on how to proceed when it became stuck in a parking area. And when finally faced with the fact the vehicle would not continue, the operator had to ask the passenger to exit the vehicle and look for alternative transportation.</p><p>This was a startling finding. So, not only is an algorithm making the initial decisions on anomalous behaviors its sensing inside the car. The remote operators have limited abilities to take control of the cars driving. But, they have every tool available to monitor, observe, and communicate with the passengers, up to suspending the service.</p><h3><strong>Where does this leave me with my thoughts on autonomous vehicles?</strong></h3><p>After looking through the Waymo website, it&#8217;s clear that safety is a top priority. And this makes sense: if the vehicles and service aren&#8217;t perceived as safe, there is no way people will set foot in the vehicle.</p><p>But, for me, this is just as much about trust as it is about safety. There is a level of trust that has to be developed. And feeling save requires trust.</p><p>A vehicle that is instructed to pull over under the pretense of a technical issue when, in fact, authorities are alerted and en route to investigate doesn&#8217;t build trust. Especially when Waymo doesn&#8217;t fully disclose what behaviors or actions will trigger such escalations.</p><p>While the algorithm engages a person, that person hasn&#8217;t been like a driver interacting with you. They step in and review the preponderance of evidence in near real time AND after the fact, making a quick decision without any obvious direct engagement with you about the circumstances.</p><p>I&#8217;ve read enough of Waymo&#8217;s policies and watched plenty of videos to feel they are working with positive intent to build a safe and reliable product. But they are falling short in building a brand you can trust.</p><p>It&#8217;s naive to expect there not to be incidents involving riders in their vehicles, no different from incidents we&#8217;ve heard about with taxi drivers and ride-share services. But the major difference is an algorithm and AI sitting between the passenger and the operators: no dialog or interaction, sensors and an AI model deciding how to proceed. Sure, a human is introduced in the middle. For now. Will that remain the case as the service scales to more markets and the number of daily trips increases? Only time will tell.</p><p>And that makes riding in a Waymo vehicle or other autonomous vehicle service a hard pass for me. What about you?</p><h4><strong>References</strong></h4><ol><li><p><strong>Original incident coverage</strong> &#8212; NPR, &#8220;Waymo called the cops on teen riders, raising privacy concerns&#8221; July 10, 2026: <a href="https://www.npr.org/2026/07/10/nx-s1-5886113/waymo-police-privacy-driverless-autonomous-vehicles">https://www.npr.org/2026/07/10/nx-s1-5886113/waymo-police-privacy-driverless-autonomous-vehicles</a></p></li><li><p><strong>Sensor/camera count</strong> &#8212; Waymo, &#8220;Self-Driving Car Technology for a Reliable Ride&#8221; (&#8221;There are 29 cameras on our Jaguar I-PACEs&#8221;): <a href="https://waymo.com/waymo-driver/">https://waymo.com/waymo-driver/</a></p></li><li><p><strong>No facial/voice recognition; interior camera/microphone policy</strong> &#8212; Waymo Help Center, &#8220;Cameras, microphones, and related data processing&#8221;: <a href="https://support.google.com/waymo/answer/9190819?hl=en">https://support.google.com/waymo/answer/9190819?hl=en</a></p></li><li><p><strong>Data use / privacy statement</strong> &#8212; Waymo Privacy Policy: <a href="https://waymo.com/privacy/">https://waymo.com/privacy/</a></p></li><li><p><strong>ML flagging + Waymo&#8217;s declined comment on full trigger list</strong> &#8212; Business Insider, Lloyd Lee, &#8220;Kids, rowdy riders, don&#8217;t forget: Waymo could be watching,&#8221; July 2026: <a href="https://www.businessinsider.com/waymo-cabin-cameras-monitor-teens-police-san-mateo-incident-2026-7">https://www.businessinsider.com/waymo-cabin-cameras-monitor-teens-police-san-mateo-incident-2026-7</a></p></li><li><p><strong>Sawyer Merritt</strong>, &#8220;I rode a Waymo robotaxi in Nashville. It didn&#8217;t go as planned...&#8221; July, 2026 &#8212; YouTube: </p></li></ol><div id="youtube2-EPxy-25Lefc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;EPxy-25Lefc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/EPxy-25Lefc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Nobody Can Reliably Tell AI Writing From Human Writing]]></title><description><![CDATA[Your chances of getting it right are slightly better than a coin toss. Here's my disclosure anyway.]]></description><link>https://theweeklytinkerer.com/p/nobody-can-reliably-tell-ai-writing</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/nobody-can-reliably-tell-ai-writing</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sat, 15 Aug 2026 13:02:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ubT6!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491f2404-dd18-4eeb-9093-fe9046b9dedf_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m at a crossroads of sorts: should I or should I not disclose the usage of AI within my workflow as it relates to my newly minted The Weekly Tinkerer newsletter?</p><p>And before you start screaming at me, of course you need to disclose it; how can we trust anything you are writing if you are using generative AI for your writing?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I was right there with you 96 hours ago when I started this piece. It was going to be simple; yes, I use AI to help aggregate data on my tinkering. Yes, I fact-check everything I post. Yes, all the ideas I write about are my own. And finally, no, I don&#8217;t mindlessly post AI-generated text.</p><p>But as I researched the topic, I came to understand that this is not a binary conversation, and that the data and reasons behind disclosing the use of AI-generated text are more nuanced than they appear.</p><p>I hope this article helps you think about the topic in a different way.</p><p>You may have seen recent headlines.</p><p>LinkedIn introduces an &#8220;AI Slop&#8221; reporting tool to wage war against content quality on its platform.</p><p>Hank Green, a YouTube creator and educator, inadvertently admitted to using AI in his process during a video he recorded, prompting swift condemnation from many and bringing the generative AI disclosure debate into focus.</p><p>Anthropic is rolling out the ability to watermark AI-generated text in new models, to comply with EU regulation.</p><p>Substack partners with Pangram to provide an AI text scanner.</p><p>For this piece, I&#8217;m going to keep my argument and research centered on LinkedIn, Substack, and YouTube. These are my platforms of choice. I think much of what I&#8217;ll assert is valid in other platforms, but I&#8217;m not going to take the time here to make that point.</p><p>At the time of this writing, none of the platforms have taken a firm stance on outright requiring you to disclose the use of AI-generated content on their respective platforms, except for YouTube, but, as it turns out, their stance is limited to specific use and not necessarily far-reaching.</p><p>YouTube requires disclosure of AI-generated content when it results in realistic content that a viewer could mistake as being real. This includes synthetic voices, altered events, or fabricated photorealistic scenes.</p><p>This makes perfect sense; it&#8217;s a visual platform, and the disclosure focuses on the content displayed.</p><p>But what is exempt from their policy is the use of AI to create scripts, ideas, captions, animated content, or thumbnails. In other words, no need to disclose when using AI to help with structure and research, but required when dealing with voice and visuals.</p><p>LinkedIn and Substack do not have specific terms of use regarding generative AI on their platforms, but both have given readers tools to flag or check for it. LinkedIn gives you an &#8220;AI Slop&#8221; reporting button, and Substack lets you scan a piece using Pangram.</p><p>So, the case for disclosure is more of an ethical/moral/voluntary choice, not compulsory.</p><p>And to throw some fuel on the fire, a research article by Toff and Simon in The International Journal of Press/Politics<sup>[1]</sup> asserts that when it is disclosed that AI was used in the writing of articles, trust in the content drops significantly, even though the articles are factually correct. The research also showed that this drop in trust is reversed when specific sources outside AI are used.</p><p>So, where does this put creators?</p><p>If you disclose your usage of AI, you may be labeled as untrustworthy, even if still factually correct. The damage is mitigated somewhat if you cite sources outside the AI sphere. Creators are also benefiting from using AI in their content creation processes.</p><p>But, as the late-great Paul Harvey liked to say, now for the rest of the story (or something like that).</p><p>Here is an uncomfortable truth that I suspect will have you throwing your shoes at me. Humans are barely more able to reliably identify AI-generated text than using a simple coin toss.</p><p>Yup, your ability to detect AI-generated text is only slightly better than tossing a coin.<sup>[2]</sup></p><p>I know, you don&#8217;t believe me. There&#8217;s the em dashes, the sameness in sentence structure. Lack of rhythm in the work. It&#8217;s not X, it&#8217;s Y. Not an original thought, etc.</p><p>Just head to LinkedIn and ask anyone; they&#8217;ll gladly proclaim they can, without a doubt, identify AI-generated text.</p><p>The data shows otherwise. <strong>People are confident about the wrong signals.</strong></p><p>But there is actually one tell that is obvious and tips the scales in your favor: hallucinated facts and fabricated sources.</p><p>All at the same time now, &#8220;well no sh*t Sherlock.&#8221;</p><p><strong>And that&#8217;s the point: for most people, human detection is more performative art than fact unless the text in question is factually incorrect and the sources are invalid.</strong></p><p>It&#8217;s such a big point that the EU recently enacted the EU AI Act&#8217;s Transparency Code (Article 50(2)).<sup>[3]</sup> It says several things, but most notably as related to this article:</p><p>AI models need to produce a synthetic content marking when it&#8217;s generative AI. This includes having the software machine-mark text, image, audio, and video output so it&#8217;s detectable as AI-generated.</p><p>There&#8217;s one important limitation to this legislation worth noting.<sup>[4]</sup> The watermark ONLY proves the AI touched the content it&#8217;s producing, but doesn&#8217;t indicate who wrote it or how much of the text is generated; i.e., stuff heavily edited by a human after the fact will no longer necessarily bear the watermark. As such, the watermark isn&#8217;t enough to purely indicate that content is AI-generated, and thus any claims to be able to identify AI text are more performative than quantifiable.</p><p>So, this article is getting lengthy; let&#8217;s summarize quickly before moving on.</p><ul><li><p>We are more likely to distrust AI-generated content, even when factually correct.</p></li><li><p>AI is proving to be a very effective tool for generating content and researching topics.</p></li><li><p>People&#8217;s ability to identify AI-generated text is slightly better than a coin toss; the signals we rely on are unreliable. The ability to detect AI-generated text changes when it hallucinates or cites non-existent sources.</p></li><li><p>Disclosing AI usage is more a matter of principle than a compulsory rule.</p></li></ul><p>Where does this leave someone like me, someone without a well-known brand, but liked by my colleagues (for the most part), who is starting on a new journey to publish works in the public space? Should I or should I not disclose the use of AI as part of my workflow?</p><p>Interestingly, it was difficult to find straightforward examples of more well-known creators disclosing their use of AI. The few I found include Katie Harbath, Carlo V. Santiago, Hank Green&#8217;s personal policy, and Complexly&#8217;s institutional policy.<sup>[5]</sup> And that was it. It&#8217;s not to say others don&#8217;t disclose their use, nor does it imply people aren&#8217;t being honest about it, but what it does signal is that the topic, while hot, isn&#8217;t necessarily being addressed by widespread acceptance of disclosing AI use.</p><p>For me, I&#8217;m all for disclosure. I&#8217;m beginning my creator journey, and it&#8217;s not just about publishing my thoughts, but about building trust in what I&#8217;m doing so I can share what I&#8217;m creating with you, and you can see my process.</p><p>In 2025, I started posting on LinkedIn to build a personal brand. It was more of an experiment than driven by a specific cause, and it yielded modest results.</p><p>When I began the process, I was all in, leveraging Claude to help generate content. This included taking my ideal customer profile (which AI helped me create) and asking about the pain points people were experiencing in my areas of expertise. I&#8217;d find a pain point and write my own thoughts around it, more of a brain dump than a structured article.</p><p>I fed my brain dump into an AI process I created, which helped me write two versions of the same article. The first was a story-based arc and the second was a contrarian take on the original idea. A third process compared the dueling articles, scoring them against an opaque rubric (again created by AI) and recommending which version to publish.</p><p>Maybe not ironically, the scores were often 39 out of 50 vs. 37 out of 50. Read into this what you will, but I find it funny that the two different arcs converged into near sameness when quantified by AI. The humor lands hard when looking back on that time.</p><p>Not only was there the sameness, but the articles that were being produced were flat, uninteresting, and void of soul.</p><p>The output I was reading looked eerily similar to so much of what I was seeing on LinkedIn. As it turns out, a peer-reviewed study confirmed that people who frequently use AI for writing are better detectors of AI-generated content.<sup>[6]</sup></p><p>I was producing AI slop. The same slop I rolled my eyes at so often when scrolling.</p><p>What was produced was a sanitized, watered-down version of a brief I fed to the AI that looked like so many other posts.</p><p>I tried to rewrite them to follow the arc of the winning article. If the measure of success for the posting was engagement and views, I had a few land well, but most of the articles posted didn&#8217;t move the needle.</p><p>The frustration was mounting with the lack of results, especially as I started writing more about the business I was starting.</p><p>Thinking the problem was that the output was lacking my voice, I launched into a 100-question interview of me to generate a voice profile to give to AI to make it sound more like me, an idea I took from Ruben Hassid&#8217;s newsletter article titled &#8220;I can be you.&#8221;</p><p>I reworked my dueling agent process to leverage my newly minted voice profile, and while the quality of the drafts improved and sounded more like me, the output was still flat and lacked soul, so I was rewriting it before publishing.</p><p>So, I pivoted my process to where I&#8217;m at today. I trashed the dueling agents and replaced them with a muse process I created that takes the output of my weekly tinkering, considers a backlog of article ideas I&#8217;ve generated based on things I&#8217;m reading, and asks me one question.</p><p>&#8220;What&#8217;s on your mind &#8212; tell me the idea or the moment, like you&#8217;re talking it through.&#8221;</p><p>It takes my long-form brain dump of an idea, often transcribed, and helps identify the threads to pull on, the ones to leave alone, and the ones to cut out altogether. It asks clarifying questions, restates what it understands, and iterates to help fully develop the article&#8217;s scaffolding. Not prose, just a scaffolding that looks like:</p><div class="callout-block" data-callout="true"><ol><li><p><strong>The hot-topic hook</strong> &#8212; AI slop is a live topic right now: LinkedIn&#8217;s AI-slop-reporting tools (verified 2026-08-11, see Research below), the Hank Green LLM controversy and public outcry, and Kevin&#8217;s own read of LinkedIn feeds souring on AI slop and AI comments (this last part stays personal observation, not a cited fact).</p></li><li><p><strong>The turn to nuance</strong> &#8212; the subject is much more nuanced than a binary &#8220;I don&#8217;t use AI&#8221; vs. &#8220;I use AI&#8221; stance.</p></li><li><p><strong>The schism</strong> &#8212; creators find the tools valuable for assistance but shy away from disclosing actual AI-generated/published content, because consumers trust AI-assisted creators and content less. Real friction point that can push people toward silence. Backed by the&#8230;</p></li></ol><p><em>(scaffold continues through 7 points which are left off for brevity)</em></p></div><p>I use scaffolding to craft the article, and when satisfied with the content, I feed it into Grammarly to help with grammar, punctuation, and sentence structure.</p><p>The result of the process is the article you are reading now.</p><p>With the backstory out of the way, it&#8217;s time to formalize my disclosure statement:</p><div class="callout-block" data-callout="true"><ul><li><p>I use Claude AI to assist in the research and data aggregation for the content I produce.</p></li><li><p>I use Claude AI and Gemini to research questions I have related to the ideas I&#8217;m cultivating.</p></li><li><p>All research is validated and cited in my notes, and where appropriate in my finished articles. Nothing that at least three sources can&#8217;t verify is included in my research.</p></li><li><p>AI will never be cited as the sole source of information.</p></li><li><p>I use Claude AI to build the scaffolding for my articles.</p></li><li><p>The words you are reading are my own.</p></li><li><p>I use Grammarly to edit my content for grammar, spelling, and sentence structure.</p></li><li><p>I use Gemini to build infographic and cartoon-style images to accompany some of the articles I&#8217;m producing.</p></li></ul></div><p>What I have learned is that creating content is hard. The urge to find shortcuts in the process is real, and AI genuinely eases friction in it. This creator economy is always in flux, and the idea of AI disclosure, while not new, has taken on renewed vigor due to the proliferation of creators, pressures to produce, recent legal changes, and the high-profile case of Hank Green.</p><p>As I look at what happened with Hank Green, the court of public opinion hasn&#8217;t been kind to him for doing something he never fully explained. Clearly, I don&#8217;t know his intent or how widely AI was used in his process, but for me, I&#8217;m willing to give him the benefit of doubt. I&#8217;ve enjoyed the videos he&#8217;s produced over the years. What I&#8217;m taking away from his situation, disclosing how I use AI early in my creator journey is important to me. And how that disclosure looks includes what tools I use, how I use AI, and when I use AI.</p><h3>Sources</h3><ol><li><p>Toff, B., &amp; Simon, F. M. (2025). &#8220;Or They Could Just Not Use It?&#8221;: The Dilemma of AI Disclosure for Audience Trust in News. The International Journal of Press/Politics, 30(4), 881&#8211;903. <a href="https://doi.org/10.1177/19401612241308697">https://doi.org/10.1177/19401612241308697</a></p></li><li><p>Human detection of AI-generated text hovers near chance &#8212; or worse &#8212; across multiple independent studies:</p><p><br>Penn State News, &#8220;Q&amp;A: The Increasing Difficulty of Detecting AI vs. Human Text&#8221; (May 14, 2024): <a href="https://www.psu.edu/news/information-sciences-and-technology/story/qa-increasing-difficulty-detecting-ai-versus-human">https://www.psu.edu/news/information-sciences-and-technology/story/qa-increasing-difficulty-detecting-ai-versus-human</a></p><p><br>Yale Daily News, &#8220;Readers Can&#8217;t Accurately Distinguish Between AI and Human Essays, Researchers Find&#8221; (Nov. 18, 2024): <a href="https://yaledailynews.com/blog/2024/11/18/readers-cant-accurately-distinguish-between-ai-and-human-essays-researchers-find/">https://yaledailynews.com/blog/2024/11/18/readers-cant-accurately-distinguish-between-ai-and-human-essays-researchers-find/</a></p><p><br>Berber Sardinha, T. (2024). AI-Generated vs Human-Authored Texts: A Multidimensional Comparison. Applied Corpus Linguistics, 4(1). <a href="https://www.sciencedirect.com/science/article/abs/pii/S2666799123000436">https://www.sciencedirect.com/science/article/abs/pii/S2666799123000436</a></p><p><br>&#8220;Bot or Not: Can People Tell the Difference Between Stories Written by a Human or by an AI System?&#8221; Judgment and Decision Making (Cambridge Core): two studies, N=424 and N=481 adults &#8212; 39.39% and 51.97% correct respectively, both at or significantly below chance. <a href="https://www.cambridge.org/core/journals/judgment-and-decision-making/article/bot-or-not-can-people-tell-the-difference-between-stories-written-by-a-human-or-by-an-ai-system/45E6DC0BB90AA648654D5AE243F6C667">https://www.cambridge.org/core/journals/judgment-and-decision-making/article/bot-or-not-can-people-tell-the-difference-between-stories-written-by-a-human-or-by-an-ai-system/45E6DC0BB90AA648654D5AE243F6C667</a></p><p><br>Mili&#269;ka et al. (2025). Learning to Detect AI Texts and Learning the Limits. PLoS One. Baseline (untrained) accuracy 55.4% (N=254), rising to 65.1% with corrective feedback training &#8212; still short of reliable. <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC12527182/">https://pmc.ncbi.nlm.nih.gov/articles/PMC12527182/</a></p></li><li><p>The EU AI Act&#8217;s Transparency Code (Article 50) itself, effective Aug. 2, 2026:</p><p><br>European Commission, &#8220;Safer and More Transparent AI&#8221; (Aug. 2, 2026): <a href="https://commission.europa.eu/news-and-media/news/safer-and-more-transparent-ai-2026-08-02_en">https://commission.europa.eu/news-and-media/news/safer-and-more-transparent-ai-2026-08-02_en</a></p><p><br>EU Artificial Intelligence Act, Article 50 transparency obligations, explainer: <a href="https://artificialintelligenceact.eu/transparency-rules-article-50/">https://artificialintelligenceact.eu/transparency-rules-article-50/</a></p></li><li><p>Anthropic&#8217;s own published limitations on its text watermark:</p><p><br>Anthropic Support, &#8220;How Claude Marks AI-Generated Content&#8221;: <a href="https://support.claude.com/en/articles/16266773-how-claude-marks-ai-generated-content">https://support.claude.com/en/articles/16266773-how-claude-marks-ai-generated-content</a></p><p><br>TechCrunch, &#8220;Anthropic Says It Will Watermark Text Generated by Its AI Models&#8221; (Aug. 11, 2026): <a href="https://techcrunch.com/2026/08/11/anthropic-says-it-will-watermark-text-generated-by-its-ai-models/">https://techcrunch.com/2026/08/11/anthropic-says-it-will-watermark-text-generated-by-its-ai-models/</a></p></li><li><p>Named creators with published AI-disclosure policies:</p><p><br>Katie Harbath, &#8220;How I Use AI&#8221; (Anchor Change newsletter): <a href="https://anchorchange.substack.com/p/how-i-use-ai-newsletter-workflow">https://anchorchange.substack.com/p/how-i-use-ai-newsletter-workflow</a></p><p><br>Carlo V. Santiago, &#8220;Coming Out (AI Edition)&#8221;: <a href="https://carlovsantiago.substack.com/p/coming-out-ai-edition">https://carlovsantiago.substack.com/p/coming-out-ai-edition</a></p><p><br>Hank Green / Complexly AI policy (YouTube Community post, ~2026-08-09): https://www.youtube.com/post/UgkxbXRPEpONUqoIf0Zu2OPNaKBtd95IIgxU</p></li><li><p><strong>Complication &#8212; frequent AI-tool users are a real exception:<br><br></strong>Russell, J., Karpinska, M., &amp; Iyyer, M. (2025). &#8220;People Who Frequently Use ChatGPT for Writing Tasks Are Accurate and Robust Detectors of AI-Generated Text.&#8221; Accepted, ACL 2025. Five annotators who write with ChatGPT frequently reviewed 300 non-fiction articles against multiple frontier LLMs (GPT-4o, Claude, o1); majority vote misclassified only 1 of 300 &#8212; outperforming commercial detection tools, even against paraphrasing/evasion tactics. <a href="https://arxiv.org/abs/2501.15654">https://arxiv.org/abs/2501.15654</a></p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How Email Terrorism Leads to Inbox Colonization]]></title><description><![CDATA[Six approvals for one company, a podcast rant that named the problem, and the domain-level fix that stops it.]]></description><link>https://theweeklytinkerer.com/p/how-email-terrorism-leads-to-inbox</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/how-email-terrorism-leads-to-inbox</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sat, 08 Aug 2026 13:03:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!O5LY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>&#8220;...I&#8217;m in a long lifetime battle with email terrorism... it&#8217;s something that I battle every day, about three or four times a day.&#8221;</p></blockquote><p>I snort laugh when I hear the term <em>email terrorism</em>, but continue listening.</p><blockquote><p>&#8220;I purchased something for my new apartment... I know when I checked out it was like, &#8216;Sign up for our savings email blast.&#8217; And I was like, uncheck. Want no part of this.&#8221;</p><p>&#8220;I&#8217;m talking I&#8217;m like eight emails deep after I purchased like some towel hooks. Something incredibly pedestrian... something you would never write a review about unless you&#8217;re a complete whack job bored to tears.&#8221;</p><p>&#8220;So I unsubscribed. And then it pops up, &#8216;Thank you. We&#8217;re sorry to see you go. Thank you for unsubscribing. This will take 48 hours to update.&#8217; Which is total &#8212; and a pathological lie.&#8221;</p><p>&#8220;In those 48 hours after I declined the survey... I unsubscribe. And in the ensuing 48 hours, six emails per day, 12 additional nukes to my inbox.&#8221;</p><p>&#8220;Here&#8217;s what I hate &#8212; you put the unsubscribe when you&#8217;re checking out, but they have your email for billing. So then they keep emailing you. So you unsubscribe twice.&#8221;</p><p>&#8220;A lot of these retailers are abusive husbands. And the consumers are the battered wives... everything&#8217;s a hustle. Everything&#8217;s a shakedown. Everything&#8217;s a harassment.&#8221;</p><p>&#8221;Will you ever buy anything from that company again?&#8221;</p><p>&#8221;If I need it, I probably will... that&#8217;s the problem. I&#8217;m just being honest... the instant gratification person in me... I&#8217;ll be like, tap the vein, hit it... let&#8217;s go with the emails. I&#8217;m ready. I&#8217;m locked and loaded.&#8221;</p></blockquote><p>It&#8217;s too much. I stopped the lawnmower, turned it off, and then pulled my headphones off. I was belly laughing at what I just heard. I&#8217;d been mowing the yard listening to the podcast &#8220;<strong>I&#8217;ve Had It</strong>&#8221; for the first time, where the hosts Jennifer Welch and Angie Sullivan discuss all things political pop culture.</p><p>Buried in the podcast, the hosts described one of the problems that led me to build bwak email. There is real frustration when you opt out of receiving emails from a company. Most of the time, you opt out of receiving promotional or product updates, but you still receive emails asking you to &#8220;rate the product you bought&#8221; or to &#8220;tell them about your shopping experience.&#8221; And the colonization of your inbox happens as you receive these unwanted emails.</p><p>When it happens, you feel powerless and don&#8217;t know what else to do, nor do you have many good options today other than to write a rule in your inbox or mark the emails as spam.</p><p>And the scary part- not scary like The Amityville Horror kind of scary, but scary like What a coincidence, I was experiencing something similar with emails I was receiving from LinkedIn the other day.</p><p>Bwak email is one of the Tinkers I&#8217;m working on today. It is an email alias gateway that sits in front of my real email address and acts as a gate for emails I receive. The inbound emails require explicit human <strong>opt in</strong> approval before reaching my inbox. I can give anyone an alias that passes through the gate and gets delivered to my email if I&#8217;ve approved the sender.</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OFUj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png 424w, https://substackcdn.com/image/fetch/$s_!OFUj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png 848w, https://substackcdn.com/image/fetch/$s_!OFUj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png 1272w, https://substackcdn.com/image/fetch/$s_!OFUj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OFUj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png" width="1408" height="293" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:293,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:551968,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/210216204?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OFUj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png 424w, https://substackcdn.com/image/fetch/$s_!OFUj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png 848w, https://substackcdn.com/image/fetch/$s_!OFUj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png 1272w, https://substackcdn.com/image/fetch/$s_!OFUj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0853ed2c-b078-4328-8c5d-c28d6fa07e88_1408x293.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div></figure></div><p>Since I began tinkering with this idea, I&#8217;ve approved over 130 senders to different email aliases I&#8217;ve created for my <a href="http://k3bert.net/">k3bert.net</a> domain. And after several weeks, I started to feel like I was experiencing d&#233;j&#224; vu as I approved six different senders from LinkedIn.</p><p>It took the 6th approval to finally catch on to an issue I&#8217;m having with the user experience. Each time I received an email from LinkedIn, I approved it, and each time I thought to myself, I had already approved the sender on LinkedIn, not realizing each approval was for a different sender from LinkedIn. I was only keying on the domain LinkedIn, and that was the missing piece for the application.</p><p>The original design for the app included a per-sender (From) AND per-receiver (To) address approval process, which would mean if I received emails from different senders, albeit the same domain, I&#8217;d have to approve them all explicitly.</p><p>The answer: build a DOMAIN-level approval/denial mechanism.</p><p>In other words, give the user the option to <strong>Opt In</strong> to all emails from a specific domain (a.k.a. website) and forgo the explicit approval process for each sender.</p><p>And this is what I built in version v0.6.0 of bwak email. A unified 5-state approve/block model (sender/domain/alias scopes) replacing the previous asymmetric terminology I developed.</p><p>The five states?</p><ol><li><p>Let newsletters-noreply@linkedin.com through</p></li><li><p>Trust everyone from linkedin.com</p></li><li><p>Block just newsletters-noreply@linkedin.com</p></li><li><p>Block everyone from linkedin.com</p></li><li><p>Block anyone emailing linkedin@k3bert.net (To)</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O5LY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O5LY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png 424w, https://substackcdn.com/image/fetch/$s_!O5LY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png 848w, https://substackcdn.com/image/fetch/$s_!O5LY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png 1272w, https://substackcdn.com/image/fetch/$s_!O5LY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!O5LY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png" width="1408" height="470" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:470,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:845814,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/210216204?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!O5LY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png 424w, https://substackcdn.com/image/fetch/$s_!O5LY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png 848w, https://substackcdn.com/image/fetch/$s_!O5LY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png 1272w, https://substackcdn.com/image/fetch/$s_!O5LY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49fa3bf-1192-4c74-9326-7a8ba0038df3_1408x470.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With this approach, a block action (domain or sender) ALWAYS overrides an approve. Domain-level actions override sender-level approvals.</p><p>This approach creates a streamlined user experience, giving them the control they need over their emails.</p><p>Looking back at the discussion between Jennifer and Angie, if they had bwak email, they wouldn&#8217;t have to worry about unsubscribing; they would potentially have the option to block the &#8220;review the product emails&#8221;, but approve &#8220;order update emails&#8221; because they come from different senders. And if they ever got annoyed to the point of no return, they could go nuclear and block ALL the emails from the sender.</p><p>I just rolled this out last week, and I&#8217;m testing it. I&#8217;ve tested with sample data, but I couldn&#8217;t test all the usage/approval/denial paths due to limitations in my ability to send emails from different senders, so I&#8217;m fishing with bait, waiting to see how the system performs in the real world.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[I've Been a Stubborn Donkey]]></title><description><![CDATA[Two decades on LinkedIn, and I finally figured out I wasn't reading the room.]]></description><link>https://theweeklytinkerer.com/p/ive-been-a-stubborn-donkey</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/ive-been-a-stubborn-donkey</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sun, 02 Aug 2026 17:00:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z1Xm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>They drew the arrow back, took aim at the target, and released the arrow. Whoosh - thump, bullseye. They yelped in excitement and ran to the target to look closer at the arrow they just shot, sitting in the middle of the target.</p><p>Charlotte&#8217;s grandchildren hadn&#8217;t ever shot arrows before, but they instantly fell in love. After a few hours, they were drawing the arrow back and hitting the target like a pro. This is life on the farm. When you visit, we create an experience you take home with you. Charlotte&#8217;s grandchildren now have their own archery range back in Texas, set up by their parents.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z1Xm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z1Xm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Z1Xm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Z1Xm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Z1Xm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z1Xm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg" width="480" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:480,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:678300,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://theweeklytinkerer.com/i/209375594?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Z1Xm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Z1Xm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Z1Xm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Z1Xm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff7d85e6-a35e-431a-abf8-e0d1f9f6504d_480x640.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Visits to our farm are not casual; they are experiences carefully planned, created, curated, and executed by us.</p><p>I&#8217;ve been on LinkedIn for two decades now, and I&#8217;ve been posting regularly for the past several years. More recently, I started posting with a purpose. After experiencing a career disruption, instead of jumping back into the familiar corporate life, I decided to bet on myself and post on LinkedIn with the purpose of promoting a business I started.</p><p>The performance of those posts has been lackluster, and it would be easy to blame the algorithm for killing my reach. I refuse to assert that my posts are flopping. No, I failed to realize the strength of the LinkedIn platform and how to succeed on it. I&#8217;ve been a stubborn donkey not reading the room.</p><p>With new resolve and a shift in focus, I&#8217;m going to refine the work I&#8217;m doing on LinkedIn AND extend my outreach to include Substack.</p><p>LinkedIn is the snack bag you get on a short airline flight. You open the bag and pick through the contents while reading the nutritional information on the back. It&#8217;s the platform you open up at work when you have a few minutes and scroll to kill time. You enjoy the saltiness of the posts; they are quick, tasty hits of time management, leadership development, and other career-growth flavors that reflect your interests.</p><p>Substack, on the other hand, is the dinner you sit down to once you arrive on the farm. It follows a day of activities like archery. It&#8217;s a time where you receive a multi-course meal with an appetizer, main course, dessert, and a relevant drink pairing. It&#8217;s a time to reflect on the day&#8217;s activities and wonder what tomorrow will bring.</p><p>We have a seat waiting for you. Subscribe to The Weekly Tinkerer.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Impotent Inbox]]></title><description><![CDATA[Three companies, one AI trend, and the experiment I'm running to stop giving my inbox away for free.]]></description><link>https://theweeklytinkerer.com/p/the-impotent-inbox</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/the-impotent-inbox</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Wed, 29 Jul 2026 05:47:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ubT6!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491f2404-dd18-4eeb-9093-fe9046b9dedf_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have 1,390 unread messages in my inbox telling me that my inbox is impotent.</p><p>It&#8217;s time to turn the opt-out model of email on its head to fix it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I wanted another Apple HomePod speaker for our home. Found it online for in-store pickup at my local Electronic Express. I added it to the cart, checked out as a guest, and forgot about it.</p><p>A couple of years later, I received a spam message addressed to: electronicexpress-0921@k3bert.net. I was confused; I didn&#8217;t create an account with them. Why am I receiving spam?</p><p>I looked up the address on Have I Been Pwned and found out that in Feb of 2023, Eye4Fraud, an online fraud protection system used during payment transactions, was breached and the data made available to hackers.</p><p>The forgotten email came back to life until I created an inbox rule to delete any messages sent to electronicexpress-0921@k3bert.net permanently<a href="mailto:electronicexpress-0921@k3bert.net.">.</a> <strong>Opt-out</strong>.</p><p>And then there was the time I decided to sign up for updates to my Alma Mater, CU. I opted to receive alum emails at cualumni@k3bert.net related to the engineering school, from which I graduated.</p><p>I received my first few updates, but then there was a shift. It wasn&#8217;t just updates on the School of Engineering; the emails were now boosters for the Alumni Association and covered other clubs and associations within the university. And then, to make matters worse, someone from the Alumni Association started calling. Their whole job is traveling around meeting alumni to &#8220;catch up,&#8221; which I&#8217;m fairly sure means asking for money.</p><p>I tried to opt-out through my mail preferences, but the emails and calls kept coming in.</p><p>I created an inbox rule to delete any messages sent to cualumni@k3bert.net permanently. <strong>Opt-out</strong> and blocked the phone number.</p><p>And then there was Verizon and Heritage Bank and Trust. For a few years, we did business with these companies until we stopped and permanently closed our accounts. Or at least we thought.</p><p>But, for months after closing the accounts, we still received monthly statements of our accounts. Confused, I called several times, explaining the accounts were closed and that there was no need to send us statements anymore. They agreed. The emails kept coming.</p><p>I created an inbox rule to delete any message sent to their aliases permanently. <strong>Opt-out</strong>.</p><p>Today, AI agents are augmenting and supercharging inbox rules and, if you decide, will take over your entire inbox for you. But what&#8217;s the difference between an AI agent managing your inbox for you versus you manually managing the rules? Other than out of sight, out of mind, it&#8217;s still opt-out.</p><p>In the immortal words of Buzz Lightyear: &#8220;This isn&#8217;t flying, it&#8217;s falling with style.&#8221;</p><p>And personally, I&#8217;m not all that comfortable with an AI agent crawling through my inbox and noticing who I shop or bank with, what credit cards I have, when I received my tax return, or when I pay my utility bills. This is all personal information that I would like to keep personal.</p><p>For years, I&#8217;ve been trying to manage the 1,390 unread messages like most everyone else. Giving out my email, receiving unwanted messages, trying to opt-out, giving up, and waving the white flag.</p><p>And now, I&#8217;m tinkering. I&#8217;ve started an experiment with my personal k3bert.net domain that, if successful, I&#8217;ll transition the domain my wife and I share for all our household accounts.</p><p>The experiment started with a declaration of email bankruptcy, archiving off all my messages into cold storage. And a gate slotted in front of the domain that inspects all senders and aliases, comparing them to an allowed list. When a new email arrives and the sender is not in the allowed list, I have a choice to allow the email to land in my inbox; in other words, I <strong>opt-in</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[I thought color was taste. It's a number.]]></title><description><![CDATA[WCAG doesn't care about taste. It cares about a computable number, and mine wasn't hitting it.]]></description><link>https://theweeklytinkerer.com/p/i-thought-color-was-taste-its-a-number</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/i-thought-color-was-taste-its-a-number</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sun, 26 Jul 2026 00:50:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DVP5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was deep into the weeds trying to crack my onboarding dilemma. For a few weeks now, I&#8217;ve been trying to figure out why people are signing up for the Bwak News app, but not onboarding any newsletters.</p><p>And then something caught my attention. The green highlight text I chose for the site was difficult to read.</p><p>I have good color perception. In fact, Charlotte has crowned me the official paint color picker when it comes to decorating our house. So, I figured if the text was difficult for me to read, the roughly 8% of men with red-green color vision deficiency would struggle to read it also.</p><p>That wasn&#8217;t ok with me.</p><p>I was aware of the accessibility guidelines published by the Web Content Accessibility Guidelines (WCAG), but never had to worry about building with them. So I was surprised when I handed the problem off to my AI agent, and it threw up a sample page showing that indeed, the emerald-600 (hex #059669) green color I selected for the website failed the standard.</p><p>Standard? What standard? Up until now, my choice of colors was always based on taste and if it reads fine, ship it. I had no idea that the standard specified a way to calculate the contrast and grade it as a means to quantify accessibility usage of your application.</p><p>Every color has a computable relative luminance, which is a fancier and more accurate way of saying &#8220;how bright it actually reads to the eye.&#8221; Take two colors, compare their luminance, and you get a contrast ratio. Identical colors give you 1:1, invisible against themselves. Pure black on pure white gives you 21:1, the ceiling. Everything else falls somewhere in between, and the formula gives the same answer every time, for every viewer, regardless of taste.</p><p>My green, emerald-600, measured 3.77:1 against white. WCAG&#8217;s baseline standard for normal text is AA, and AA requires 4.5:1. My &#8220;fine, it&#8217;s just a light green&#8221; accent color was failing the accessibility standard I didn&#8217;t know existed.</p><p>There are two levels worth knowing; AA is the baseline most sites are expected to hit: 4.5:1 for normal text, 3:1 for large text (think 18-point-plus, or bold at 14-point-plus). AAA is the stricter tier, not usually a legal requirement but the one that gives you real margin instead of a bare pass: 7:1 for normal text, 4.5:1 for large. My original green wasn&#8217;t even clearing the low bar.</p><p>I went with the recommended emerald-800 (hex #065f46), a 7.68:1 ratio. Not a bare pass over the AA line, but clear of AAA too, with real margin to spare.</p><p>Because the color lived in one config token instead of being copy-pasted into forty places, changing it fixed the accent color across the entire app in one shot: CSS, every transactional email, account and billing pages, badges. All of it, except three admin-only internal tools I left alone on purpose, because nobody outside my team ever sees those.</p><p>The part I want to hand you isn&#8217;t the story. It&#8217;s that this is checkable, right now, on whatever you&#8217;re running, without asking anyone&#8217;s opinion:</p><p>1. <strong>Chrome DevTools</strong> &#8212; inspect any text, click the color swatch next to color in the styles panel, and it shows you the live ratio plus AA/AAA pass or fail, along with a suggested color that would pass. Fastest option, already installed.</p><p>2. <strong>WebAIM Contrast Checker</strong> (webaim.org/resources/contrastchecker) &#8212; paste in two hex codes, get the ratio and pass/fail for both normal and large text. It&#8217;s the tool most accessibility writeups point to first.</p><p>3. <strong>Lighthouse</strong> (also built into Chrome DevTools) &#8212; audits a whole page at once instead of one pair of colors at a time, so it&#8217;ll surface every low-contrast spot you didn&#8217;t think to check.</p><p>4. <strong>An AI coding assistant</strong> &#8212; ask it to build you a side-by-side comparison tool for your candidate colors, with real computed ratios. It&#8217;s not a shortcut around the standard; it&#8217;s a fast way to see the standard applied to your actual palette, which is exactly what got me here.</p><p>You already have a website, an app, a newsletter template, something with text on a background. Open DevTools, click your accent color, and read the number. If it says fail, you now know something concrete instead of something you assumed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DVP5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DVP5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png 424w, https://substackcdn.com/image/fetch/$s_!DVP5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png 848w, https://substackcdn.com/image/fetch/$s_!DVP5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png 1272w, https://substackcdn.com/image/fetch/$s_!DVP5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!DVP5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png" width="979" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0dfc536f-6960-4ed8-9336-58402f151589_979x781.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:979,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105941,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://weeklytinkerer.substack.com/i/208508668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DVP5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png 424w, https://substackcdn.com/image/fetch/$s_!DVP5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png 848w, https://substackcdn.com/image/fetch/$s_!DVP5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png 1272w, https://substackcdn.com/image/fetch/$s_!DVP5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfc536f-6960-4ed8-9336-58402f151589_979x781.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[A bot logged into my app before my friend could]]></title><description><![CDATA[Found it before an appointment. Fixed it on the drive. Shipped it in the waiting room.]]></description><link>https://theweeklytinkerer.com/p/a-bot-logged-into-my-app-before-my</link><guid isPermaLink="false">https://theweeklytinkerer.com/p/a-bot-logged-into-my-app-before-my</guid><dc:creator><![CDATA[Kevin Ebert]]></dc:creator><pubDate>Sat, 25 Jul 2026 02:21:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ubT6!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491f2404-dd18-4eeb-9093-fe9046b9dedf_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Receiving a message from a friend (and former work colleague) telling you they can&#8217;t access the system you built sucks. The kind of suck that one wishes there was a rock I could crawl under. I might be milking the scene a bit for dramatic effect, but it still sucks, no one likes to hear they have a problem.</p><p>That&#8217;s what happened to me today.</p><blockquote><p>&#8220;Hey Kevin, I signed up for your service, but I can&#8217;t login. Here&#8217;s my email address I&#8217;m trying to log in with and the device/browser I&#8217;m using. Can you help?&#8221;</p></blockquote><p>I had 10 minutes before Charlotte and I were to head out for an appointment, so the pressure was on.</p><p>Check the logs, yep, there were the three login attempts made. But no indication of an error in the process nor that they received the message saying the magic link the app sent them to failed.</p><p>This was going to require intuition and an educated guess.</p><p>The difference in the time that the token was created and the time it was used was only a dozen seconds. That seems quick, too quick.</p><p>An AI prompt later, the working theory was developed. Somehow, the token for the magic link was already used before my friend could click the link in the email. But, why?</p><p>AI had an idea. I didn&#8217;t, this was outside of any experience level. I&#8217;ve been around a lot of systems in my career, but authentication and authorization mechanisms was an area I didn&#8217;t spend a lot of time in.</p><p>The most likely cause was that an email security scanner/pre-fetch was loading the link in the email and because the way the /auth end point was written, it was validating the token with the pre-fetch which in turn told the system that the token was valid, and no longer needed and discarded.</p><p>That all happened between the email being delivered and the time my friend clicked the link. When they clicked the link, they received the unfriendly message that they couldn&#8217;t login.</p><p>And to add insult to injury, there was no way in the app for them to reach out and ask for assistance. Luckily, they had my number.</p><p>This was the theory, it was easily tested and confirmed.</p><p>The fix is simple, don&#8217;t validate the token when the /auth end point is called. Instead, put an intermediary step requiring the user to click the link in the email, load a new page with another button to select to finish the login process.</p><p>Yes, the solution adds a bit of friction to the process, there&#8217;s an extra click now. But, it eliminates any pre-fetch or inadvertent previewing of the page assuring that the token will work when the user intends it to work.</p><p>So, the embarrassment is real, I have no way of knowing how many other people have had the issue, more than I&#8217;m willing to admit to b/c I can see the similar usage patterns.</p><p>The embarrassment was replaced with gratitude quickly b/c someone took the time to say, something wasn&#8217;t right and brought it to my attention.</p><p>This isn&#8217;t about not trusting what AI builds. That&#8217;s too easy, and it sidesteps the real responsibility. I understood the design. What I didn&#8217;t have was the experience to know there was a gap in it. And building alone means there&#8217;s no one else around to catch what you don&#8217;t know to look for.</p><p>The counter to that is building a system that expects surprises and handles them gracefully. For me, that means an easy way for someone to reach me when something breaks, and auditing every critical process that could stop a user dead and hardening those first.</p><p>What tips or techniques do you build with to handle the unexpected surprises that will inevitably hit your system?</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://theweeklytinkerer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Weekly Tinkerer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>