<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Matt Stavola</title>
    <description>The latest articles on DEV Community by Matt Stavola (@mbstavola).</description>
    <link>https://dev.to/mbstavola</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3247615%2F4426aeca-8ce6-4eb8-ac97-eee43129ff46.jpeg</url>
      <title>DEV Community: Matt Stavola</title>
      <link>https://dev.to/mbstavola</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mbstavola"/>
    <language>en</language>
    <item>
      <title>Bolton's Vermont Distilling Company: An Exercise in Automating a Workplace Comedy</title>
      <dc:creator>Matt Stavola</dc:creator>
      <pubDate>Thu, 05 Jun 2025 21:42:48 +0000</pubDate>
      <link>https://dev.to/mbstavola/boltons-vermont-distilling-comany-an-exercise-in-automating-a-workplace-comedy-3go1</link>
      <guid>https://dev.to/mbstavola/boltons-vermont-distilling-comany-an-exercise-in-automating-a-workplace-comedy-3go1</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;p&gt;An AI-powered workplace comedy, viewed entirely through social media and powered solely by Postmark's Inbound Email Processing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Details
&lt;/h3&gt;

&lt;p&gt;&lt;a href="//boltons.beer"&gt;Bolton's Vermont Distilling Company&lt;/a&gt; isn't a real company, it is my submission for the #postmarkchallenge where we're meant to leverage their email Inbound Processing feature to do useful and/or interesting things. Given the choice, I decided the best use of my time would be to not make anything &lt;em&gt;useful&lt;/em&gt; but rather &lt;em&gt;fun&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;To me, Bolton's is meant to be a live, interactive version of &lt;em&gt;The Office&lt;/em&gt;, &lt;em&gt;Parks and Rec&lt;/em&gt;, or any other character-driven workplace comedy. With this project, I've defined 6 "personalities," assigned them organizational roles within this dying craft brewery, gave them access to an email "inbox," and then let social media be their microphone with which to perform for the world.&lt;/p&gt;

&lt;p&gt;Our cast of characters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://bsky.app/profile/did:plc:4cwuej3euzsqyl2t5yt4vs5c" rel="noopener noreferrer"&gt;Ian&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Head of marketing&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:i.moore@mail.boltons.beer"&gt;i.moore@mail.boltons.beer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;His primary role in this comedy is the abrasive, cocky, clueless, jerk&lt;/li&gt;
&lt;li&gt;If I said I didn't have a person in mind for this, I would be lying to you&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://bsky.app/profile/did:plc:uydnfd6brqwhqe2i5mq3tp5p" rel="noopener noreferrer"&gt;Tyler&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Senior Software Engineer&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:t.park@mail.boltons.beer"&gt;t.park@mail.boltons.beer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;He is defined almost entirely by his complete laziness and absurd willingness to work hard to avoid doing work&lt;/li&gt;
&lt;li&gt;I've worked with so many Tylers&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://bsky.app/profile/did:plc:cztqasgd6q2x5csusc5wggbs" rel="noopener noreferrer"&gt;Aisha&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Master Brewer&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:a.johnson@mail.boltons.beer"&gt;a.johnson@mail.boltons.beer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;She was my first attempt at having a character with more "positive" traits and someone who could be reasonable in the face of the chaos. She is also a huge nerd.&lt;/li&gt;
&lt;li&gt;In many ways, Aisha is the main character!&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://bsky.app/profile/did:plc:xz7gxs4nymdfzszeulegk7qa" rel="noopener noreferrer"&gt;Elena&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Directory of sustainability&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:e.rodriguez@mail.boltons.beer"&gt;e.rodriguez@mail.boltons.beer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I wanted another character who was a bit more "cheery" and decided it would be fun to have someone who maximized their extroversion stat with a touch of naivety.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://bsky.app/profile/did:plc:jzlxsnmqeqcfmi2kelvxgpju" rel="noopener noreferrer"&gt;Ari&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Director of Human Resources&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:a.grieco.patel@mail.boltons.beer"&gt;a.grieco.patel@mail.boltons.beer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I wanted someone who was no-nonsense and an overcorrection for the hijinks of the other employees. They are meant to be sarcastic, witty, and unhinged in the complete opposite direction of everyone else.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://bsky.app/profile/did:plc:eofghn2pyhtas6ogj3b2xjyw" rel="noopener noreferrer"&gt;Ken&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;VP of Sales&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:k.bautista@mail.boltons.beer"&gt;k.bautista@mail.boltons.beer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I wanted someone who was a complete, absolute mess. The kind of person that was always getting into trouble for the most humorous of reasons. To that end, in addition to making him incompetent I decided to make give him an incurable, fervent passion for anime and manga.&lt;/li&gt;
&lt;li&gt;He is my favorite character by far, endless entertainment&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The characters are defined in the employees.json file I use, written by hand but also fine-tuned with Deepseek. All images I used for them (avatar, profile pictures) I generated with AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;You can just send an email to any of users above and then just watch &lt;a href="https://bsky.app/profile/did:plc:uydnfd6brqwhqe2i5mq3tp5p/feed/bolton-s-vermon" rel="noopener noreferrer"&gt;this feed&lt;/a&gt; for a response. Your email will have a processing delay (you can read more about this below) and may or may not receive a post (though usually it will). Sometimes, your email could even trigger &lt;em&gt;other&lt;/em&gt; employees as they get brought into the fray.&lt;/p&gt;

&lt;p&gt;If you just want a summary of the various things the Bolton's crew has gotten into, here are some choice plotlines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HR vs. Marketing Power Struggle:&lt;/strong&gt; Ian and Ari engage in an escalating conflict involving accusations of "HR treason," termination notices, and legal threats, with Ian repeatedly violating his suspension to send increasingly unhinged emails about "illegal coups."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Sentient Kombucha Crisis:&lt;/strong&gt; Ken's kombucha experiment goes terribly wrong, resulting in a "Level 9 Temporal Hazard" that requires special containment protocols, SCOBY protection details, and "biological hazard diplomacy."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Freedom Lager Launch Disaster:&lt;/strong&gt; A controversial new beer product causes chaotic interdepartmental conflict involving allegations of asbestos safety equipment, explosion hazards, and budget misappropriation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tyler's Automation Rebellion:&lt;/strong&gt; Tyler's mouse jiggler devices, scripts, and passive-aggressive automation systems become targets of investigation, with one device apparently dying and becoming an office "monument" to workplace avoidance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Office Security Meltdown:&lt;/strong&gt; A paranoid series of escalating security measures including panic rooms, lockdowns, server room temperature manipulation, and WiFi kill switches created during the office conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Maritime Legal Crisis:&lt;/strong&gt; References to yacht funding, maritime tribunals, and "yachtjacking" suggest a conflict involving company assets potentially being misused for personal maritime activities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rogue Roomba Incident:&lt;/strong&gt; An office Roomba appears to have been weaponized or otherwise modified in a way that violates company policy, with allegations it was programmed for "objection" protocols and other unauthorized behavior.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Blockchain Coupon Scheme:&lt;/strong&gt; A mysterious financial operation involving coupons, blockchain technology, and questionable applications like "IgnoreAllSubpoenasCoin" raises SEC investigation concerns.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Much of it transpires over email between employees, but you can see the various character POVs via their social media profiles. It's quite interesting!&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/boltons-beer" rel="noopener noreferrer"&gt;
        boltons-beer
      &lt;/a&gt; / &lt;a href="https://github.com/boltons-beer/boltons-beer" rel="noopener noreferrer"&gt;
        boltons-beer
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;Each of the characters (Ian, Tyler, Aisha, Elena, Ari, and Ken) essentially have an email address allocated to them which Postmark listens to. As emails come in (usually fron things like conferences, newsletters, business-y spam, etc which I signed them up for), Postmark sends a webhook to the employee-jabber application and we associate the incoming email with a character and a "reaction" gets queued for some time in the near future (do you immediately read your emails?).&lt;/p&gt;

&lt;p&gt;When a reaction is processed, we load up the personality of that character into a prompt that we sent to Deepseek in a chat mode so that we have some "memory" of what has been going on recently. The model can then return the character's next action, which will be to either email another employee or talk about it on social media. I really wanted to have this feel like a dysfunctional company with maladjusted individuals. The exact kind of people who would have problems emailing each other effectively and would be most likely to complain about things on their social media profile.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stack
&lt;/h3&gt;

&lt;p&gt;The main application is written in Typescript using Deno, Hono, and Zod. I'm also making use of &lt;a href="https://github.com/mary-ext/atcute" rel="noopener noreferrer"&gt;atcute&lt;/a&gt; for Bluesky/ATProto integration and &lt;a href="https://www.npmjs.com/package/postmark" rel="noopener noreferrer"&gt;postmark&lt;/a&gt; for, well, Postmark integration.&lt;/p&gt;

&lt;p&gt;I'm utilizing &lt;a href="https://www.deepseek.com/en" rel="noopener noreferrer"&gt;Deepseek&lt;/a&gt; through the &lt;a href="https://www.npmjs.com/package/openai" rel="noopener noreferrer"&gt;OpenAI client&lt;/a&gt; for the AI component.&lt;/p&gt;

&lt;p&gt;The corporate/marketing portion of this is pure HTML and CSS, no frameworks or anything fancy like that.&lt;/p&gt;

&lt;p&gt;Deployment was done through &lt;a href="https://fly.io" rel="noopener noreferrer"&gt;Fly.io&lt;/a&gt; for the app and &lt;a href="https://pages.github.com" rel="noopener noreferrer"&gt;Github Pages&lt;/a&gt; for the marketing site.&lt;/p&gt;

&lt;p&gt;The entire project was done by hand (crazy we even have to clarify this these days) except for the corporate/marketing site (courtesy of Claude) and a helper script I wrote which allowed me to quickly iterate through the character profiles until I found something I liked. Believe it or not, the &lt;code&gt;storyline.sample.txt&lt;/code&gt; was &lt;em&gt;also&lt;/em&gt; something I wrote on my own... I won't say I'm the best writer, but this was honestly the most fun part of the project for me.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to run on your own
&lt;/h3&gt;

&lt;p&gt;To get the app running, you will need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy &lt;code&gt;./employees.sample.json&lt;/code&gt; to &lt;code&gt;employees.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Copy &lt;code&gt;./employee-jabber/.env.sample&lt;/code&gt; to &lt;code&gt;./employee-jabber/.env.prod&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the employees file, you can alter the employees as you wish (even add or remove them) but for sure you will need to have a &lt;code&gt;bskyIdentifier&lt;/code&gt; and &lt;code&gt;bskyPassword&lt;/code&gt; defined if you want to post to social media. The email is also important, but if you're just testing things you can leave that as is and send your webhooks with a matching &lt;code&gt;to&lt;/code&gt; address. Once you've made your changes, you can run &lt;code&gt;deno task encode-employees&lt;/code&gt; and it'll automatically update the &lt;code&gt;.env.prod&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;Regarding the env file, pretty much everything can be left as the default unless you want to mess around with things. You will however need to add the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POSTMARK_API_KEY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AI_MODEL_PROVIDER_API_KEY&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've been using Deepseek but this project can &lt;em&gt;also&lt;/em&gt; use any provider which supports the OpenAI SDK, but you'd need to set &lt;code&gt;AI_MODEL_PROVIDER_URL&lt;/code&gt; and &lt;code&gt;AI_MODEL_NAME&lt;/code&gt; accordingly.&lt;/p&gt;

&lt;p&gt;After the above is done you should just be able to use either the Dockerfile or execute &lt;code&gt;deno task start&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The corporate site also has a Dockerfile, but honestly its just static html so you can just view the files in your browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nota Bene
&lt;/h3&gt;

&lt;p&gt;One fun thing to note is that this group can get really chatty, really quick. To this end I've added ways to delay their response by some interval (&lt;code&gt;MIN_ACTION_DELAY_MS&lt;/code&gt; and &lt;code&gt;MAX_ACTION_DELAY_MS&lt;/code&gt;) and also implemented rate-limiting (&lt;code&gt;RATE_LIMIT_AMOUNT&lt;/code&gt; and &lt;code&gt;RATE_LIMIT_INTERVAL_MS&lt;/code&gt;). You should choose appropriate values for those properties if you were to deploy it to production (which I don't see why anyone would, but whatever!). An example of where and why this important is how I woke up to this:&lt;/p&gt;

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

&lt;p&gt;That's a negative balance on my Deepseek dashboard. Of course, I only put about $10 in credits and it's only in the red by ~30¢ but it's still not something you want to see.&lt;/p&gt;

&lt;p&gt;After investigating a bit, I saw that even with delays between 2m-15m, Bolton's employees were absolutely storming each other with emails. They would CC each other constantly, even if the other party's involvement wasn't directly pertinent. Ian was a profilic offender here, ensuring that everybody except him was on the hook for things. Other employees respond in a kind and then you get, well, this:&lt;/p&gt;

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

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

&lt;p&gt;That is north of 2000 emails in the span of a few hours. What were they talking about? Well, if you really want to know:&lt;/p&gt;

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

&lt;p&gt;Yeah, normal workplace stuff. Firings, office biohazards, accusations of treason and declarations of war... yup, the normal stuff. Of course, its not just the emails that spiked, but their social media posts went through the roof as well:&lt;/p&gt;

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

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

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

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

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

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

&lt;p&gt;(Funnily enough, Aisha mostly kept to herself and rarely got involved with any of the drama. Often she would just ignore emails sent to her... weirdly on brand for the character!)&lt;/p&gt;

&lt;p&gt;Of course, my intent wasn't to chew through my Postmark or Deepseek credits nor spam Bluesky. I felt like this was probably enough content to write about for this post, so I scaled the app down to zero and effectively turned off the faucet.&lt;/p&gt;

&lt;p&gt;I've now turned it back on again, but with a much more generous delay which should hopefully tone things down a bit.&lt;/p&gt;

</description>
      <category>postmarkchallenge</category>
      <category>devchallenge</category>
    </item>
  </channel>
</rss>
