<?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: Ahmed J. (Wardin Studio)</title>
    <description>The latest articles on DEV Community by Ahmed J. (Wardin Studio) (@wardin_support_a4df49ed25).</description>
    <link>https://dev.to/wardin_support_a4df49ed25</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%2F4239888%2F8b906cd9-0cda-4269-b68e-b81be2ee29af.png</url>
      <title>DEV Community: Ahmed J. (Wardin Studio)</title>
      <link>https://dev.to/wardin_support_a4df49ed25</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wardin_support_a4df49ed25"/>
    <language>en</language>
    <item>
      <title>I built a free warranty tracker alone from Tunisia with Expo and Supabase</title>
      <dc:creator>Ahmed J. (Wardin Studio)</dc:creator>
      <pubDate>Wed, 11 Nov 2026 21:30:03 +0000</pubDate>
      <link>https://dev.to/wardin_support_a4df49ed25/i-built-a-free-warranty-tracker-alone-from-tunisia-with-expo-and-supabase-1b3k</link>
      <guid>https://dev.to/wardin_support_a4df49ed25/i-built-a-free-warranty-tracker-alone-from-tunisia-with-expo-and-supabase-1b3k</guid>
      <description>&lt;p&gt;Hi DEV. I'm a solo developer from Tunisia, and this is my first post here.&lt;/p&gt;

&lt;p&gt;I kept losing receipts and forgetting when warranties ended. When something broke, I never knew if it was still covered. So I built &lt;strong&gt;Wardin&lt;/strong&gt;, a free warranty tracker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it in the browser, no account needed:&lt;/strong&gt; &lt;a href="https://warranty-9ze.pages.dev" rel="noopener noreferrer"&gt;https://warranty-9ze.pages.dev&lt;/a&gt;&lt;br&gt;
(It opens with sample products so you can see how it works. There's also an Android app.)&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Take a photo of a receipt and it fills in the product, store, date and price&lt;/li&gt;
&lt;li&gt;Shows how much warranty time is left on everything you own&lt;/li&gt;
&lt;li&gt;Reminds you before a warranty ends&lt;/li&gt;
&lt;li&gt;Helps you write a claim when something breaks&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Expo + Expo Router&lt;/strong&gt; for Android and the web from one codebase&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase&lt;/strong&gt; for accounts, sync and file storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An AI model behind a Supabase Edge Function&lt;/strong&gt; to read receipts, with a daily limit per user so it stays free&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EAS Build&lt;/strong&gt; for the Android APK, &lt;strong&gt;Cloudflare Pages&lt;/strong&gt; for the web version&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Three things I learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Let people try it before asking them to sign up.&lt;/strong&gt;&lt;br&gt;
The first version started on a login screen and almost nobody went further. Now guests get sample products right away, and an account is only needed to sync between devices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Save locally first, sync later.&lt;/strong&gt;&lt;br&gt;
Everything is saved on the phone first and uploaded when there's a connection. One bug I had to fix: if a photo failed to upload, the app still marked it as uploaded, so it was missing on other devices. Now a photo is only marked as uploaded when the upload really worked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Small details matter for users outside the US.&lt;/strong&gt;&lt;br&gt;
New users in Tunisia were seeing prices in dollars. Now the app picks the currency from the phone's region.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting users with no budget
&lt;/h2&gt;

&lt;p&gt;I have no marketing budget, so I make a daily animated Shorts series called "Sam vs. Warranties" about a guy who keeps losing to warranties. One episode got 1,100 views and most got under 50. The lesson so far: the first two seconds decide almost everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  I'd love your feedback
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Would you use something like this, or is a folder of receipts enough?&lt;/li&gt;
&lt;li&gt;What breaks or confuses you when you try it?&lt;/li&gt;
&lt;li&gt;How would you find the first 100 users with zero budget?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'll answer every comment. Thanks for reading!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I wrote this post with help from an AI assistant.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>reactnative</category>
      <category>expo</category>
      <category>supabase</category>
    </item>
  </channel>
</rss>
