<?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: Alessandro Macanha</title>
    <description>The latest articles on DEV Community by Alessandro Macanha (@alessandro_macanha_2a3b16).</description>
    <link>https://dev.to/alessandro_macanha_2a3b16</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4134556%2F0fb7f40d-b9ed-4c42-989e-d2e128daf68c.png</url>
      <title>DEV Community: Alessandro Macanha</title>
      <link>https://dev.to/alessandro_macanha_2a3b16</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alessandro_macanha_2a3b16"/>
    <language>en</language>
    <item>
      <title>I Built a Pet Health Tracker That Doesn't Need an Account to Work</title>
      <dc:creator>Alessandro Macanha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 12:21:02 +0000</pubDate>
      <link>https://dev.to/alessandro_macanha_2a3b16/i-built-a-pet-health-tracker-that-doesnt-need-an-account-to-work-5d62</link>
      <guid>https://dev.to/alessandro_macanha_2a3b16/i-built-a-pet-health-tracker-that-doesnt-need-an-account-to-work-5d62</guid>
      <description>&lt;p&gt;Picture this: you're at the vet, they ask when your dog's last rabies shot was, and you open the app you downloaded for exactly this reason... and it's stuck on a login screen. Because of course the waiting room wifi is trash.&lt;/p&gt;

&lt;p&gt;That moment is basically why &lt;strong&gt;MyPet&lt;/strong&gt; exists. It's a React Native app (iOS + Android) for tracking your dog or cat's vaccines, meds, walks, feeding, health stuff, grooming, vet visits the whole routine. And the one opinionated decision I made early on: &lt;strong&gt;it works fully offline, on-device, no account needed to even open it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Long-term, I want &lt;strong&gt;MyPet&lt;/strong&gt; to grow into something bigger a place where pet tutors connect, not just log data solo. But phase one, the part that's live today, is deliberately just about nailing pet management. Get the boring, essential stuff rock-solid before building anything social on top of it.&lt;/p&gt;

&lt;p&gt;Here's the actual build story why I went local-first, what it cost me, and what I'd still change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why local-first, really
&lt;/h2&gt;

&lt;p&gt;Think about when you actually need this kind of data. Not while relaxing on the couch with great wifi it's in the car on the way to an emergency vet, in a clinic with zero bars, at 2am trying to remember if you already gave the second dose. Making people wait on a network call (or worse, a signup form) to see their own data just felt backwards for this use case.&lt;/p&gt;

&lt;p&gt;So: data lives on the device first. Full stop. Cloud stuff is a bonus layer, not a gate.&lt;/p&gt;

&lt;h2&gt;
  
  
  The actual stack
&lt;/h2&gt;

&lt;p&gt;Nothing exotic here. It's React Native, and for local storage I went with &lt;br&gt;
react-native-mmkv it's stupidly fast, which matters more than you'd think for an app like this. Logging a walk or a meal needs to feel instant, not like "saving." If it lags even a little, people stop bothering to log things, and then the whole app is pointless.&lt;/p&gt;

&lt;p&gt;Cloud sync, backup, and sharing across devices sit on top as an optional premium layer Supabase on the backend, RevenueCat (react-native-purchases) handling subscriptions. The tricky bit wasn't wiring that up, it was making sure the local data model didn't quietly assume the cloud was the source of truth. That's a different design problem than "build an app with a database," and I didn't fully appreciate that until I was halfway through it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it's at
&lt;/h2&gt;

&lt;p&gt;MyPet's live now on iOS and Android. Everything vaccines, meds, walks, feeding, conditions, grooming, vet visits, notes. Works offline, no signup required. Sync/backup/sharing is there if you want it, behind a subscription. There's also a little companion site at &lt;a href="//mypet.codeswift.com.br"&gt;mypet.codeswift.com.br&lt;/a&gt; if you want the lowdown or a public pet passport page.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;None of this exists yet, so take it as direction rather than a promise but the plan is for MyPet to eventually be more than a solo tracking tool. Think tutors swapping advice, maybe connecting around shared experiences with their pets. Right now that's just a vision in my head and a few notes in a doc. Phase one had to be "does the core app actually work and hold up offline" before any of that makes sense to build.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Available at &lt;a href="https://play.google.com/store/apps/details?id=br.com.codeswift.mypet" rel="noopener noreferrer"&gt;Google Play&lt;/a&gt; and &lt;a href="https://apps.apple.com/app/6773159666" rel="noopener noreferrer"&gt;App Store&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fujn05wneq6e3el9scofr.png" alt="Slide1" width="800" height="1738"&gt;&lt;/td&gt;
&lt;td&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxeh3qahw31faxsso9vyn.png" alt="Slide2" width="800" height="1738"&gt;&lt;/td&gt;
&lt;td&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7vkyg56wjearmaomv8uw.png" alt=" " width="800" height="1738"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>reactnative</category>
      <category>sideprojects</category>
      <category>mobile</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
