<?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>Forem: Kevin G</title>
    <description>The latest articles on Forem by Kevin G (@cafe_roamer).</description>
    <link>https://forem.com/cafe_roamer</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%2F3733675%2Fdafbf776-b6f5-4d5e-b2ae-54b105f239ce.png</url>
      <title>Forem: Kevin G</title>
      <link>https://forem.com/cafe_roamer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/cafe_roamer"/>
    <language>en</language>
    <item>
      <title>I spent a year building a PWA to track 150 cafe workspaces. Did AI actually help, or did it just give me a "Tinder for Coffee"?</title>
      <dc:creator>Kevin G</dc:creator>
      <pubDate>Wed, 28 Jan 2026 15:47:31 +0000</pubDate>
      <link>https://forem.com/cafe_roamer/i-spent-a-year-building-a-pwa-to-track-150-cafe-workspaces-did-ai-actually-help-or-did-it-just-59jn</link>
      <guid>https://forem.com/cafe_roamer/i-spent-a-year-building-a-pwa-to-track-150-cafe-workspaces-did-ai-actually-help-or-did-it-just-59jn</guid>
      <description>&lt;h3&gt;
  
  
  The Premise I’m a remote worker.
&lt;/h3&gt;

&lt;p&gt;I spent the last year working from 150+ cafes in Denver because I was tired of "Google Maps Roulette"—where a 5-star review means great lattes, but zero outlets and a "no laptops" policy.&lt;/p&gt;

&lt;p&gt;To solve this, I built 

&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://caferoamer.com" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;caferoamer.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


 a Vanilla JS/PHP/MySQL PWA. Along the way, I leaned on AI to "speed things up." Looking back at the repo, I’m not actually sure if it saved me time or just gave me new ways to procrastinate.

&lt;p&gt;The "Cool(ish)" UI Trap One afternoon, I decided the site needed a "discovery mode." Instead of a boring list, I thought: “What if it was like Tinder, but for cafes?”&lt;/p&gt;

&lt;p&gt;With an AI coding assistant, I knocked out the basic swiping logic in minutes. It felt like magic. But then came the "jank":&lt;/p&gt;

&lt;p&gt;Handling touch-start vs. mouse-down events across different mobile browsers.&lt;/p&gt;

&lt;p&gt;Getting the "swipe-away" animation to feel fluid and not like a PowerPoint transition.&lt;/p&gt;

&lt;p&gt;Managing the state so that a "swiped" cafe didn't immediately reappear in the main feed.&lt;/p&gt;

&lt;p&gt;I spent three days polishing a feature that took 30 minutes to draft. It’s "cool," but does anyone actually want to swipe right on a coffee shop? Probably not. AI lowered the barrier to entry for a "fun" feature, which lured me into a week of UI polishing I never planned for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When AI Became a Time-Sink:&lt;/strong&gt; I used AI to help build my "Accidental Backend"—a custom firewall, an email server from scratch, and a sophisticated weighted-randomization algorithm for the feed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The AI was great at generating the "boilerplate" for things like:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PHP rate-limiting logic.&lt;/li&gt;
&lt;li&gt;SQL cleanup queries for my 150+ messy field notes.&lt;/li&gt;
&lt;li&gt;PWA manifest configurations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the friction started when the "boring" stack (Vanilla PHP) met "complex" AI-generated logic. Because the AI didn't have the full context of my custom-built, dependency-free architecture, it kept suggesting solutions that required libraries I didn't want to use. I spent a significant amount of time "un-hallucinating" the code back into raw PHP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Verdict:&lt;/strong&gt; Net Gain or Net Loss? If I'm being honest:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Wins:&lt;/strong&gt; AI was a beast at data transformation. Moving my "old person" screenshots and messy notes into a structured MySQL schema was 10x faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Losses:&lt;/strong&gt; It encouraged "Feature Creep." Because I could generate a merchant-claiming dashboard or a payment-integrated ad engine in an afternoon, I did.&lt;/p&gt;

&lt;p&gt;I built a solution for a 1,000-city platform before I even had 50 users in Denver.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Real Validation&lt;/strong&gt; now that the "AI-fueled" build phase is over, I’m back to the hard part: human validation. I’m looking for 500 beta users to tell me if the "vibe" metrics I collected (like lighting and food variety) are actually useful, or if I should have spent less time on the "Tinder-swipe" UI and more time on the basics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To my fellow devs:&lt;/strong&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Have you found that AI actually shortens your time-to-launch, or does it just make it easier to build "janky" features you don't actually need?
&lt;/h3&gt;

&lt;p&gt;Leave a comment on what you'd like to see in the evolving remote worker ecosystem over the next 10 years.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>workplace</category>
      <category>ai</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
