<?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: Harun - solo dev </title>
    <description>The latest articles on DEV Community by Harun - solo dev  (@koda2026).</description>
    <link>https://dev.to/koda2026</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%2F4089803%2F1c9aa9af-f5cd-4465-8570-01266a69fd97.jpg</url>
      <title>DEV Community: Harun - solo dev </title>
      <link>https://dev.to/koda2026</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/koda2026"/>
    <language>en</language>
    <item>
      <title>I'm 12. I don't have a laptop. I built a full-stack AI SaaS on my Android phone.</title>
      <dc:creator>Harun - solo dev </dc:creator>
      <pubDate>Sat, 22 Aug 2026 13:45:41 +0000</pubDate>
      <link>https://dev.to/koda2026/im-12-i-dont-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone-2o2l</link>
      <guid>https://dev.to/koda2026/im-12-i-dont-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone-2o2l</guid>
      <description>&lt;p&gt;Hi everyone! 👋&lt;/p&gt;

&lt;p&gt;My name is Harun. I am 12 years old.&lt;/p&gt;

&lt;p&gt;I don't own a laptop or a PC. My entire development environment is a &lt;strong&gt;POCO C55 Android phone&lt;/strong&gt; and a free code editor called &lt;strong&gt;Acode&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Today, on my school holiday, I decided to stop watching tutorials and actually ship something. I built &lt;strong&gt;KODA&lt;/strong&gt;, a full-stack AI coding mentor.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ The Stack (100% Free Tier)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Frontend:&lt;/strong&gt; Vanilla HTML, CSS, and JavaScript (Hand-coded on a 6.7" screen).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Backend &amp;amp; Auth:&lt;/strong&gt; Supabase (PostgreSQL + Row Level Security).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;AI Brain:&lt;/strong&gt; Groq (using the &lt;code&gt;llama-3.1-70b-versatile&lt;/code&gt; model for speed).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Hosting:&lt;/strong&gt; Netlify (Drag-and-drop deploy).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Mobile Wrapper:&lt;/strong&gt; Median (to turn it into a native Android app with a splash screen).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 The "Boss Fight" Bugs
&lt;/h3&gt;

&lt;p&gt;Building on mobile is hard. The screen is small, and debugging is painful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The Mobile Viewport Trap:&lt;/strong&gt;&lt;br&gt;
I used &lt;code&gt;height: 100vh&lt;/code&gt; for my app container. On desktop, it's fine. On mobile Chrome, the address bar hides part of the screen, pushing my input box off the bottom!&lt;br&gt;
&lt;em&gt;The Fix:&lt;/em&gt; I had to switch to &lt;code&gt;height: 100%&lt;/code&gt; on the &lt;code&gt;html, body&lt;/code&gt; and use &lt;code&gt;env(safe-area-inset-bottom)&lt;/code&gt; to glue the input area above the navigation bar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The Supabase RLS Silent Killer:&lt;/strong&gt;&lt;br&gt;
My &lt;code&gt;profiles&lt;/code&gt; table was updating, but my &lt;code&gt;chats&lt;/code&gt; table was empty. No errors in the console.&lt;br&gt;
&lt;em&gt;The Fix:&lt;/em&gt; I realized RLS (Row Level Security) was blocking inserts because I hadn't granted permissions to the &lt;code&gt;authenticated&lt;/code&gt; role. I wrote a SQL script to &lt;code&gt;GRANT ALL ON public.chats TO authenticated&lt;/code&gt; and suddenly, the data started flowing.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏆 User #1
&lt;/h3&gt;

&lt;p&gt;My older brother (an engineering student) was my first beta tester.&lt;br&gt;
He opened the app and typed: &lt;em&gt;"Vanakam da mapila"&lt;/em&gt; (Hello friend/brother-in-law in Tamil).&lt;br&gt;
When I teased him for treating the AI like a person, he replied: &lt;strong&gt;"THAT'S MY FRIEND TEXTING YOU, IDIOT."&lt;/strong&gt; 😂&lt;/p&gt;

&lt;p&gt;That was the moment I knew the product felt "alive."&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Try KODA
&lt;/h3&gt;

&lt;p&gt;I deployed it live on Netlify. It has multi-chat history, code syntax highlighting, and a "Panic" button that explains things "Like I'm 5."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Link:&lt;/strong&gt; &lt;a href="https://koda-aicodementor.netlify.app" rel="noopener noreferrer"&gt;koda-aicodementor.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🙏 I Need Your Feedback
&lt;/h3&gt;

&lt;p&gt;Since I am learning solo, I would love for senior developers to roast my code or tell me what to build next.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Should I add Streaming (typewriter effect)?&lt;/li&gt;
&lt;li&gt;  Should I add a PWA manifest?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading my story!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>supabase</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
