{"slug": "i-m-12-i-don-t-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone", "title": "I'm 12. I don't have a laptop. I built a full-stack AI SaaS on my Android phone.", "summary": "Harun, a 12-year-old developer without a laptop, built KODA, a full-stack AI coding mentor, entirely on his POCO C55 Android phone using the Acode editor. He overcame mobile-specific challenges such as viewport height issues and Supabase Row Level Security permissions, and deployed the app on Netlify. His older brother's playful interaction with the AI confirmed the product felt alive.", "body_md": "Hi everyone! 👋\n\nMy name is Harun. I am 12 years old.\n\nI don't own a laptop or a PC. My entire development environment is a **POCO C55 Android phone** and a free code editor called **Acode**.\n\nToday, on my school holiday, I decided to stop watching tutorials and actually ship something. I built **KODA**, a full-stack AI coding mentor.\n\n`llama-3.1-70b-versatile`\n\nmodel for speed).Building on mobile is hard. The screen is small, and debugging is painful.\n\n**1. The Mobile Viewport Trap:**\n\nI used `height: 100vh`\n\nfor 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!\n\n*The Fix:* I had to switch to `height: 100%`\n\non the `html, body`\n\nand use `env(safe-area-inset-bottom)`\n\nto glue the input area above the navigation bar.\n\n**2. The Supabase RLS Silent Killer:**\n\nMy `profiles`\n\ntable was updating, but my `chats`\n\ntable was empty. No errors in the console.\n\n*The Fix:* I realized RLS (Row Level Security) was blocking inserts because I hadn't granted permissions to the `authenticated`\n\nrole. I wrote a SQL script to `GRANT ALL ON public.chats TO authenticated`\n\nand suddenly, the data started flowing.\n\nMy older brother (an engineering student) was my first beta tester.\n\nHe opened the app and typed: *\"Vanakam da mapila\"* (Hello friend/brother-in-law in Tamil).\n\nWhen I teased him for treating the AI like a person, he replied: **\"THAT'S MY FRIEND TEXTING YOU, IDIOT.\"** 😂\n\nThat was the moment I knew the product felt \"alive.\"\n\nI deployed it live on Netlify. It has multi-chat history, code syntax highlighting, and a \"Panic\" button that explains things \"Like I'm 5.\"\n\n**Live Link:** [koda-aicodementor.netlify.app](https://koda-aicodementor.netlify.app)\n\nSince I am learning solo, I would love for senior developers to roast my code or tell me what to build next.\n\nThanks for reading my story!", "url": "https://wpnews.pro/news/i-m-12-i-don-t-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone", "canonical_source": "https://dev.to/koda2026/im-12-i-dont-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone-2o2l", "published_at": "2026-08-22 13:45:41+00:00", "updated_at": "2026-08-22 14:43:52.081272+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-products", "developer-tools"], "entities": ["Harun", "KODA", "POCO C55", "Acode", "Supabase", "Netlify", "llama-3.1-70b-versatile"], "alternates": {"html": "https://wpnews.pro/news/i-m-12-i-don-t-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone", "markdown": "https://wpnews.pro/news/i-m-12-i-don-t-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone.md", "text": "https://wpnews.pro/news/i-m-12-i-don-t-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone.txt", "jsonld": "https://wpnews.pro/news/i-m-12-i-don-t-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone.jsonld"}}