<?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: Tyler O'Malley</title>
    <description>The latest articles on DEV Community by Tyler O'Malley (@tyler_omalley__).</description>
    <link>https://dev.to/tyler_omalley__</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%2F3317616%2F52a740d7-5a09-45d1-8957-4eb943424d9a.png</url>
      <title>DEV Community: Tyler O'Malley</title>
      <link>https://dev.to/tyler_omalley__</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tyler_omalley__"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Tyler O'Malley</dc:creator>
      <pubDate>Thu, 31 Jul 2025 00:48:27 +0000</pubDate>
      <link>https://dev.to/tyler_omalley__/-4l37</link>
      <guid>https://dev.to/tyler_omalley__/-4l37</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/marcus_wright__/monitoring-shopify-app-health-without-the-boilerplate-thanks-gadget-1dp" class="crayons-story__hidden-navigation-link"&gt;Monitoring Shopify App Health Without the Boilerplate (Thanks Gadget)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/marcus_wright__" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3317605%2Fe1f3f402-d34b-45ba-a299-d3f667cf3292.png" alt="marcus_wright__ profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/marcus_wright__" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Marcus Wright
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Marcus Wright
                
              
              &lt;div id="story-author-preview-content-2742298" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/marcus_wright__" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3317605%2Fe1f3f402-d34b-45ba-a299-d3f667cf3292.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Marcus Wright&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/marcus_wright__/monitoring-shopify-app-health-without-the-boilerplate-thanks-gadget-1dp" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 30 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/marcus_wright__/monitoring-shopify-app-health-without-the-boilerplate-thanks-gadget-1dp" id="article-link-2742298"&gt;
          Monitoring Shopify App Health Without the Boilerplate (Thanks Gadget)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/shopify"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;shopify&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/monitoring"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;monitoring&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/marcus_wright__/monitoring-shopify-app-health-without-the-boilerplate-thanks-gadget-1dp" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/marcus_wright__/monitoring-shopify-app-health-without-the-boilerplate-thanks-gadget-1dp#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>shopify</category>
      <category>ai</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>why I moved from Supabase to Gadget for my Replit builds</title>
      <dc:creator>Tyler O'Malley</dc:creator>
      <pubDate>Wed, 23 Jul 2025 21:57:09 +0000</pubDate>
      <link>https://dev.to/tyler_omalley__/why-i-moved-from-supabase-to-gadget-for-my-replit-builds-171o</link>
      <guid>https://dev.to/tyler_omalley__/why-i-moved-from-supabase-to-gadget-for-my-replit-builds-171o</guid>
      <description>&lt;p&gt;Wasn’t planning to switch. I’d used Supabase for a few small apps and figured it was “good enough.” But every time I tried to go beyond a prototype, it felt like I was wrestling Postgres instead of building features.&lt;/p&gt;

&lt;p&gt;I use Replit for all my projects (love the instant startup and AI agent), but wiring it up to anything backend-heavy started to feel like duct tape and good intentions.&lt;/p&gt;

&lt;p&gt;Then I found Gadget though a random thread about Shopify devs using it for admin panels.&lt;/p&gt;

&lt;p&gt;Here’s what actually won me over:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;I describe my data model and it builds the API for me. Like actually working endpoints with docs that match my schema.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Built-in auth, file storage, and job runners. No plugin maze.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auto-indexing that just works. Haven’t touched a query plan since.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can keep my frontend entirely in Replit. No need to learn a whole new system just to get an API.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I rebuilt one of my earlier projects (a fantasy league stat visualizer) and shipped more in two evenings than I did in a week with Supabase.&lt;/p&gt;

&lt;p&gt;Gadget’s not for everyone. If you love doing deep SQL optimizations or fine-tuning your infra, you might bounce off it. But if you're like me and want to stay in the frontend lane and not get stuck debugging why your RLS policy broke at midnight, it’s honestly a game changer.&lt;/p&gt;

&lt;p&gt;Happy to share how I wired it up with Replit if anyone’s curious. Let me know.&lt;/p&gt;

</description>
      <category>replit</category>
      <category>supabase</category>
      <category>vibecoding</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Pretty much my experience too. Supabase was great until I needed to scale beyond a weekend build.</title>
      <dc:creator>Tyler O'Malley</dc:creator>
      <pubDate>Tue, 15 Jul 2025 14:08:24 +0000</pubDate>
      <link>https://dev.to/tyler_omalley__/pretty-much-my-experience-too-supabase-was-great-until-i-needed-to-scale-beyond-a-weekend-build-19l2</link>
      <guid>https://dev.to/tyler_omalley__/pretty-much-my-experience-too-supabase-was-great-until-i-needed-to-scale-beyond-a-weekend-build-19l2</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/nate_sharma_/why-i-switched-from-supabase-to-gadget-for-my-replit-projects-3pgi" class="crayons-story__hidden-navigation-link"&gt;Why I Switched from Supabase to Gadget for My Replit Projects&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/nate_sharma_" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3354660%2F4e9e890e-6086-4dfc-b476-8f186a09fb60.png" alt="nate_sharma_ profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/nate_sharma_" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Nate Sharma
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Nate Sharma
                
              
              &lt;div id="story-author-preview-content-2687813" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/nate_sharma_" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3354660%2F4e9e890e-6086-4dfc-b476-8f186a09fb60.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Nate Sharma&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/nate_sharma_/why-i-switched-from-supabase-to-gadget-for-my-replit-projects-3pgi" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 14 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/nate_sharma_/why-i-switched-from-supabase-to-gadget-for-my-replit-projects-3pgi" id="article-link-2687813"&gt;
          Why I Switched from Supabase to Gadget for My Replit Projects
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/replit"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;replit&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/vibecoding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;vibecoding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/gadget"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;gadget&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/nate_sharma_/why-i-switched-from-supabase-to-gadget-for-my-replit-projects-3pgi" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;7&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/nate_sharma_/why-i-switched-from-supabase-to-gadget-for-my-replit-projects-3pgi#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>replit</category>
      <category>vibecoding</category>
      <category>webdev</category>
      <category>gadget</category>
    </item>
  </channel>
</rss>
